我怎样才能使用java HDFS一个新的目录? [英] How can i make a new directory in hdfs with java?

查看:447
本文介绍了我怎样才能使用java HDFS一个新的目录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

public static void main(String[] args) throws IOException, URISyntaxException 

{
            配置配置=新配置();

{ Configuration config = new Configuration();

  config.set("fs.default.name","hdfs://127.0.0.1:50070/dfshealth.jsp");

  FileSystem dfs = FileSystem.get(config);
  String dirName = "TestDirectory";

  Path src = new Path(dfs.getWorkingDirectory()+"/"+dirName);

  dfs.mkdirs(src); 

}
}

} }

Thier是一个例外
异常线程mainjava.lang.NoClassDefFoundError的:组织/阿帕奇/共享/配置/配置
    在org.apache.hadoop.metrics2.lib.DefaultMetricsSystem(DefaultMetricsSystem.java:37)
    在org.apache.hadoop.metrics2.lib.DefaultMetricsSystem(DefaultMetricsSystem.java:34)
    在org.apache.hadoop.security.UgiInstrumentation.create(UgiInstrumentation.java:51)
    在org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:217)
    在org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:185)
    在org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:237)
    在org.apache.hadoop.security.KerberosName(KerberosName.java:79)
    在org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:210)
    在org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:185)
    在org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:237)
    在org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:482)
    在org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:468)
    在org.apache.hadoop.fs.FileSystem $缓存$键(FileSystem.java:1519)
    在org.apache.hadoop.fs.FileSystem $ Cache.get(FileSystem.java:1420)
    在org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254)
    在org.apache.hadoop.fs.FileSystem.get(FileSystem.java:123)
    在com.TestConnection.main(TestConnection.java:21)
抛出java.lang.ClassNotFoundException:引起org.apache.commons.configuration.Configuration
    在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:366)
    在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:355)
    在java.security.AccessController.doPrivileged(本机方法)
    在java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    在java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)
    在java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 17个
CONFIGRATION是真实的
有什么问题 ?
任何帮助!

Thier was an exception Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.(DefaultMetricsSystem.java:37) at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.(DefaultMetricsSystem.java:34) at org.apache.hadoop.security.UgiInstrumentation.create(UgiInstrumentation.java:51) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:217) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:185) at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:237) at org.apache.hadoop.security.KerberosName.(KerberosName.java:79) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:210) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:185) at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:237) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:482) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:468) at org.apache.hadoop.fs.FileSystem$Cache$Key.(FileSystem.java:1519) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1420) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:123) at com.TestConnection.main(TestConnection.java:21) Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 17 more Configration is true what is the problem ? any help !!!

推荐答案

有关您的问题,您必须添加公共配置-1.6.jar桶。

For your issue ,you have to add commons-configuration-1.6.jar jar..

我列了出来必要的罐子下面

i listed out necessary jars below

{ 
   Configuration config = new Configuration();
   config.addResource(new Path("/etc/hadoop/conf/core-site.xml"));
   config.addResource(new Path("/etc/hadoop/conf/hdfs-site.xml"));

   config.set("fs.hdfs.impl", 
            org.apache.hadoop.hdfs.DistributedFileSystem.class.getName()
        );
       config.set("fs.file.impl",
            org.apache.hadoop.fs.LocalFileSystem.class.getName()
        );
  FileSystem dfs = FileSystem.get(config);
  String dirName = "TestDirectory";
  System.out.println(dfs.getWorkingDirectory() +" this is from /n/n");
  Path src = new Path(dfs.getWorkingDirectory()+"/"+dirName);

   dfs.mkdirs(src); 

} }

您必须在您的构建路径下面添加罐子的清单。

You have to add below list of jars in your build path.

公地CLI-1.2.jar

commons-cli-1.2.jar

commons-collections提供-3.2.1.jar

commons-collections-3.2.1.jar

公地配置-1.6.jar

commons-configuration-1.6.jar

公地郎2.5.jar

commons-lang-2.5.jar

的commons-logging-1.1.1.jar

commons-logging-1.1.1.jar

番石榴11.0.2.jar

guava-11.0.2.jar

Hadoop的auth.jar

hadoop-auth.jar

Hadoop的common.jar

hadoop-common.jar

的protobuf-java的2.4.0a.jar

protobuf-java-2.4.0a.jar

SLF4J-API-1.6.1.jar

slf4j-api-1.6.1.jar

的log4j-1.2.17.jar

log4j-1.2.17.jar

Hadoop的hdfs.jar

hadoop-hdfs.jar

这在Hadoop中/ lib文件夹中所有可用的罐子,如果它是Cloudera的。

These all jars available in hadoop/lib folder if it is cloudera.

这篇关于我怎样才能使用java HDFS一个新的目录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆