从eclipse访问HDFS文件

时间:2011-10-17 22:58:24

标签: hadoop

我是Hadoop的新手。我在使用eclipse中的java代码访问HDFS系统中的文件时遇到了问题。虽然我的fs.default.name在core-site.xml中设置为hdfs:// localhost:portno但它给我的URI为file://而不是hdfs://我尝试了其他一些东西,比如设置我的输入路径如下 : FileInputFormat.setInputPaths(conf,new Path(“hdfs:// localhost:9021 / user / training / shakespeare / poems”));

但是它会抛出超时错误:11/10/17 15:31:31 INFO ipc.Client:重试连接到服务器:localhost / 127.0.0.1:9021。已经尝试了0次。

请指导我如何解决这个问题,我很不好意思。任何帮助都会非常感激。

由于

2 个答案:

答案 0 :(得分:3)

在从Eclipse运行程序时,您需要确保包含{$HADOOP_HOME}/confcore-site.xmlhdfs-site.xml的{​​{1}}文件夹位于Java mapred-site.xml中。

要将此文件夹添加到CLASSPATH,请右键单击文件夹 - > properties-> Java Build Path-> Add External Class Folder。

答案 1 :(得分:1)

如果您不想指定* -site.xml文件,可以直接在代码中配置hadoop客户端:

Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://namenode:8020");
FileSystem fs = FileSystem.get(conf);

如果在项目中使用Maven,则可以通过以下方式将hadoop客户端添加到pom.xml中(假设您选择了cloudera发行版):

<repositories>
    <repository>
        <id>cloudera</id>
        <url>https://repository.cloudera.com/content/repositories/releases/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.6.0-cdh5.5.0</version>
    </dependency>
</dependencies>