解决Hadoop客户端不能连接HDFS的方法(Caused by: java.lang.ClassNotFoundException)

解决Hadoop不能连接HDFS的方法

public class HdfsClient{
    @Test
    public void testMkdirs() throws Exception {

        // 1 获取文件系统
        Configuration configuration = new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://hadoop101:9000"), configuration, "root");

        // 2 创建目录
        fs.mkdirs(new Path("/1108/aa/bb"));

        // 3 关闭资源
        fs.close();
      }
    }

当启动Test的时候报了下面的错:

Caused by: java.lang.ClassNotFoundException: com.google.common.base.Preconditions

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.

Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuratio

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.Platform

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

java.lang.NoSuchMethodError: org.apache.hadoop.security.HadoopKerberosName.s

Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.Charsets

我上百度找了一个下午的方法,解决的方案就是自己去阿里云的仓库或者中央仓库下载对应的jar包
阿里云:

https://maven.aliyun.com/mvn/search

项目的对应jar包如下:
解决Hadoop客户端不能连接HDFS的方法(Caused by: java.lang.ClassNotFoundException)_第1张图片

把自己缺失的jar构建到项目中,然后再启动Test,这时bug终于解决了!

你可能感兴趣的:(大数据,Hadoop,大数据学习)