Hadoop 2.6.0 Browsing filesystem Java(Hadoop 2.6.0 浏览文件系统 Java)
问题描述
我在 CentOS 6.6 上安装了一个基本的 hadoop 集群,并想编写一些基本程序(浏览文件系统、删除/添加文件等),但我什至连最基本的应用程序都无法正常工作.
I have installed a basic hadoop cluster on CentOS 6.6 and want to write a few basic programs (browse the filesystem, delete/add files, etc) but I'm struggling to get even the most basic app working.
在运行一些基本代码以将目录的内容列出到控制台时,我收到以下错误:
When running some basic code to list the contents of a directory to the console I get the following error:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.ipc.RPC.getProxy(Ljava/lang/Class;JLjava/net/InetSocketAddress;Lorg/apache/hadoop/security/UserGroupInformation;Lorg/apache/hadoop/conf/Configuration;Ljavax/net/SocketFactory;ILorg/apache/hadoop/io/retry/RetryPolicy;Z)Lorg/apache/hadoop/ipc/VersionedProtocol;
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:135)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:280)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:245)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:100)
    at mapreducetest.MapreduceTest.App.main(App.java:36)
我的 pom.xml 依赖项
My pom.xml dependencies
          <dependencies>    
            <dependency>                                                                                                                                       
                <groupId>org.apache.hadoop</groupId>                                                                                                           
                <artifactId>hadoop-common</artifactId>                                                                                                         
                <version>2.6.0</version>                                                                                            
            </dependency>  
            <dependency>
              <groupId>org.apache.hadoop</groupId>
              <artifactId>hadoop-core</artifactId>
              <version>1.2.1</version>
            </dependency>       
          </dependencies>
代码:
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
public class App 
{   
    public static void main( String[] args ) throws IOException, URISyntaxException
    {
        Configuration conf = new Configuration();
        FileSystem fs = new DistributedFileSystem();
        fs.initialize(new URI("hdfs://localhost:9000/"), conf);
        for (FileStatus f :fs.listStatus(new Path("/")))
        {
            System.out.println(f.getPath().getName());                  
        }
        fs.close();
    }
}
调用 fs.initialize() 后抛出错误.我真的不确定这里有什么问题.我是否缺少依赖项?他们是错误的版本吗?
The error is being thrown after calling fs.initialize(). I'm really not sure what the issue is here. Am I missing dependencies? Are they the wrong version?
推荐答案
我通过调用java -jar app.jar .... etc"来运行它我应该一直在使用hadoop jar app.jar".
I was running this by calling "java -jar app.jar .... etc" I should have been using "hadoop jar app.jar".
当我正确运行它时按预期工作.
Worked as intended when I ran it correctly.
这篇关于Hadoop 2.6.0 浏览文件系统 Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Hadoop 2.6.0 浏览文件系统 Java
				
        
 
            
        基础教程推荐
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
 - 验证是否调用了所有 getter 方法 2022-01-01
 - 在 Java 中创建日期的正确方法是什么? 2022-01-01
 - 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
 - Java Swing计时器未清除 2022-01-01
 - 多个组件的复杂布局 2022-01-01
 - 不推荐使用 Api 注释的描述 2022-01-01
 - 从 python 访问 JVM 2022-01-01
 - Java 实例变量在两个语句中声明和初始化 2022-01-01
 - 大摇大摆的枚举 2022-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
						
						
						
						
						
				
				
				
				