导入hdfs java api的问题

时间:2012-12-02 23:25:01

标签: java api hadoop hdfs

我正在尝试运行此处的示例:http://thysmichels.com/2012/01/31/java-based-hdfs-api-tutorial/

但是当我去编译java程序时,我得到错误,说包不存在,例如。

error: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configuration;

Hadoop 1.0.4已安装并正常运行。我看过处理hdfs的每个教程都是从我之前提供的链接开始的一个程序开始,他们没有谈论我需要的任何特殊先决条件。所以我想知道我需要做什么才能进行编译?我假设我需要编辑我的类路径以指向相应的包但我不知道它们位于何处。

此外,我按照此处的说明在单个节点群集上运行Ubuntu 12.04,Hadoop 1.0.4:http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/

1 个答案:

答案 0 :(得分:1)

我建议你了解一些基本的java编译基础知识。

您需要做的不仅仅是javac HDFSExample.java - 因为您需要在类路径中包含一些依赖项jar。更像javac -cp hadoop-core-1.0.4.jar HDFSExample.java

的东西

就个人而言,我建议使用构建工具(例如Maven,Ant)或IDE,因为当您开始将代码组织到包中并依赖于多个外部库时,这将使事情变得更加痛苦。 / p>

编辑:例如,maven配置非常简单(好吧,我不包括其他一些锅炉板pom decalarations ..):

<dependencies>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>1.0.4</version>
        <scope>provided</scope>
    </dependency>
<dependency>

然后编译成jar:

#> mvn jar