Hi Michael,
Can you change the hadoop version from 3.3.2 to 3.3.3 and then try, Most
probably this is due to missing shaded classes in the 3.3.2 version from
the hadoop-client jar.

-Ayush

On Sat, 21 May 2022 at 20:57, Michael Gao <michael.ga...@hotmail.com> wrote:

> Hi all
>
> I try to build some application on windows to access my hdfs on linux.
>
>
>
> Here is my code:
>
> package com.michael.hdfs;
>
>
>
> import org.apache.hadoop.conf.Configuration;
> import org.apache.hadoop.fs.FileSystem;
>
> import org.junit.Test;
> import java.io.IOException;
> import java.net.URI;
> import java.net.URISyntaxException;
>
>
> public class HdfsClient {
>     @Test
>     public void testmkdir() throws IOException, URISyntaxException, 
> InterruptedException {
>         URI url = new URI("hdfs://192.18.3.31:8020");
>         Configuration conf = new Configuration();
>         String user="michael";
>         FileSystem fs = FileSystem.*get*(url,conf,user);
>
>         // do some thing
>
>         fs.close();
>     }
> }
>
>
>
> And here is my porm.xml
>
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0";
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
>     <modelVersion>4.0.0</modelVersion>
>
>     <groupId>org.michael</groupId>
>     <artifactId>hdfs</artifactId>
>     <version>1.0-SNAPSHOT</version>
>     <properties>
>         <maven.compiler.source>18</maven.compiler.source>
>         <maven.compiler.target>18</maven.compiler.target>
>     </properties>
>     <dependencies>
>         <dependency>
>             <groupId>junit</groupId>
>             <artifactId>junit</artifactId>
>             <version>4.13.2</version>
>         </dependency>
>         <dependency>
>             <groupId>org.slf4j</groupId>
>             <artifactId>slf4j-log4j12</artifactId>
>             <version>1.7.36</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.hadoop</groupId>
>             <artifactId>hadoop-client</artifactId>
>             <version>3.3.2</version>
>         </dependency>
>     </dependencies>
> </project>
>
>
>
> But each time I fail at
>
> Configuration conf = new Configuration();
>
>
>
> Here is error info:
>
> *java.lang.NoClassDefFoundError:
> org/apache/hadoop/shaded/com/ctc/wstx/io/InputBootstrapper*
>
>
>
> *       at com.michael.hdfs.HdfsClient.testmkdir(HdfsClient.java:18)*
>
> *       at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)*
>
> *       at java.base/java.lang.reflect.Method.invoke(Method.java:577)*
>
> *       at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)*
>
> *       at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)*
>
> *       at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)*
>
> *       at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)*
>
> *       at
> org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)*
>
> *       at
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)*
>
> *       at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)*
>
> *       at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)*
>
> *       at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)*
>
> *       at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)*
>
> *       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)*
>
> *       at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)*
>
> *       at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)*
>
> *       at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)*
>
> *       at
> org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)*
>
> *       at org.junit.runners.ParentRunner.run(ParentRunner.java:413)*
>
> *       at org.junit.runner.JUnitCore.run(JUnitCore.java:137)*
>
> *       at
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)*
>
> *       at
> com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)*
>
> *       at
> com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)*
>
> *       at
> com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)*
>
> *       at
> com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)*
>
> *       at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)*
>
> *Caused by: java.lang.ClassNotFoundException:
> org.apache.hadoop.shaded.com.ctc.wstx.io.InputBootstrapper*
>
> *       at
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)*
>
> *       at
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)*
>
> *       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)*
>
> *       ... 26 more*
>
>
>
> What’s the problem and how to fix it?
>
> Thanks!
>
>
>
>
>

Reply via email to