2015-03-03 3 views
1
public static void main(String[] args) throws IOException, URISyntaxException 

{ Конфигурация config = новая Конфигурация();Как я могу создать новый каталог в hdfs с java?

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); 

}}

Тир был исключением Исключение в потоке "основного" java.lang.NoClassDefFoundError: орг/Apache/обыкновенные/Конфигурация/Configuration в 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 (UserGroupInforma .): 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 (U serGroupInformation.java:468) at org.apache.hadoop.fs.FileSystem $ Cache $ Key. (FileSystem.java:1519) at 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 at java.net.URLClassLoader $ 1.run (URLClassLoader.java:366) at java.net.URLClassLoader $ 1. run (URLClassLoader.java:355) at java.security.AccessController.doPrivileged (собственный метод) 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) в java.lang.ClassLoader.loadClass (ClassLoader.java:358) ... 17 еще Конфигурация имеет значение В чем проблема? любая помощь !!!

ответ

2

Для вашего вопроса, вы должны добавить Викисклад конфигурация-1.6.jar банки ..

я перечислил необходимые банки ниже

{ 
    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); 

} } 

Вы должны добавить ниже список банок в вашей сборке дорожка.

Обще-кли-1.2.jar

Викисклада коллекции-3.2.1.банка

Commons-конфигурация-1.6.jar

Обще-лан-2.5.jar

Викисклад протоколирование-1.1.1.jar

гуава-11.0.2.jar

Hadoop-auth.jar

Hadoop-common.jar

Protobuf-Java- 2.4.0a.jar

SLF4J-апи-1.6.1.jar

log4j-1.2.17.jar

Hadoop-hdfs.jar

Эти все банки имеющиеся в Hadoop/Библиотека если это cloudera.

Смежные вопросы