当前位置: 首页 > 面试题库 >

Hadoop 2.6.0浏览文件系统Java

罗新
2023-03-14
问题内容

我在CentOS
6.6上安装了一个基本的hadoop集群,并想编写一些基本程序(浏览文件系统,删除/添加文件等),但是我仍在努力使最基本的应用程序正常工作。

当运行一些基本代码以将目录的内容列出到控制台时,出现以下错误:

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依赖项

          <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()后将引发错误。我真的不确定这是什么问题。我是否缺少依赖关系?他们是错误的版本吗?


问题答案:

我通过调用“ java -jar app.jar .... etc”来运行它,我应该一直在使用“ hadoop jar app.jar”。

当我正确运行它时,按预期工作。



 类似资料:
  • 7.4.1.浏览文件系统 访问Android的文件系统有两种方式。一种是通过Eclipse,另一种是通过命令行。 Eclipse中提供了一个File Explorer工具供我们访问文件系统。要打开它,可以选择Window→Show View→Other…→Android→File Explorer,也可以单击右上角的DDMS中访问它。要打开DDMS,可以单击右上角的DDMS Perspective

  • 8.4. 文件系统浏览 除了能在共享服务器上读取任意文件之外,攻击者还能建立一个可以浏览文件系统的脚本。由于你的大多数敏感文件不会保存在网站主目录下,此类脚本一般用于找到你的源文件的所在位置。请看下例: <pre> <?php if (isset($_GET['dir'])) { ls($_GET['dir']); } elseif (isset($_GET['file'])) { cat($_G

  • 问题内容: 我正在尝试实现一个JFileChooser,它允许用户通过ftp选择远程系统上的文件。 我读过的所有文章都说,可以通过扩展FileSystemView来实现,以便覆盖所有文件系统方法(getFiles等)并跨ftp路由。 我没有实现这一点的运气,因为FileSystemView似乎仍在调用本地函数。 任何人都可以确认可以做到这一点和/或为我指明正确的方向吗? 问题答案: 试试vfsjf

  • 本文向大家介绍laravel 使用事件系统统计浏览量的实现,包括了laravel 使用事件系统统计浏览量的实现的使用技巧和注意事项,需要的朋友参考一下 最近有一个商城项目中有统计商品点击量和艺术家访问量的需求,但又不想改动太多原来的代码,而点击与访问这两个动作是有明确触发点的,正好可以用laravel中的事件系统来做,在点击和访问对应的函数中产生这俩事件,监视器获取到之后,再将记录保存到数据库中,

  • 问题内容: 我正在制作一个项目,该项目需要允许用户从浏览器与文件系统进行交互。我有很多编写客户端JavaScript的经验,并且有很多编写Node脚本来处理Web抓取,数据分析和文件系统工作的经验。但是该项目将允许用户更改浏览器中的内容,然后将数据保存到本地(并最终保存到Web服务器)–我对此没有经验。 我已经安装了browserify和browserify- fs 以在浏览器中使用Node的fs

  • 本文向大家介绍Javascript快速实现浏览器系统通知,包括了Javascript快速实现浏览器系统通知的使用技巧和注意事项,需要的朋友参考一下 JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知。 下载 编译 isPermission 判断浏览器弹框通知是否被阻止。 iNotify.isPermission() 声音设置 player 播