Hadoop:如何使用Java应用程序写入HDFS

Hadoop:如何使用Java应用程序写入HDFS,java,eclipse,hadoop2,Java,Eclipse,Hadoop2,我是Hadoop新手,正在努力学习。我试图在Ubuntu Linux上的Eclipse中运行下面的Hadoop示例代码。我有Hadoopv2.7.0和所需的JAR Configuration conf = new Configuration(); conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml")); Path pt=new Path("hdfs://localhost:9000/myhom

我是Hadoop新手,正在努力学习。我试图在Ubuntu Linux上的Eclipse中运行下面的Hadoop示例代码。我有Hadoopv2.7.0和所需的JAR

    Configuration conf = new Configuration();
    conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml")); 
    Path pt=new Path("hdfs://localhost:9000/myhome/a.txt");
    FileSystem fs = FileSystem.get(conf);
当我在Eclipse中运行应用程序时,我在线程“main”java.lang.NoClassDefFoundError:org/apache/hadoop/util/PlatformName中得到
异常。我引用的
hadoop-common-2.7.0.jar
文件不包含应用程序要查找的类。我正在引用jar文件Hadoop/common文件夹

任何帮助解决这个问题的人都将不胜感激


如果我为上述代码创建一个类的jar文件,并使用
hadoop-jar
运行它,它就会工作。因此,我想知道是否可以从Eclipse或命令行运行Hadoop Java应用程序而不使用Hadoop命令。

JVM似乎没有加载所有必需的Hadoop工件

如果您是maven用户,请确保您具有这些依赖项

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>${hadoop.client.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>${hadoop.client.version}</version>
</dependency>

org.apache.hadoop
hadoop客户端
${hadoop.client.version}
org.apache.hadoop
hadoop通用
${hadoop.client.version}

谢谢。但我没有使用Maven。我缺少什么JAR?通过eclipse处理所有依赖关系的最佳方式是Maven。否则,需要手动导入大量必需的JAR。当您执行“hadoop-jar”命令时,这是正常的,因为“hadoop”可执行文件会在classLoader.OK上加载所有需要的jar。我想我找到了我想要的答案。使用hadoopjar命令运行Hadoop客户端应用程序不是强制性的。它们也可以从Eclipse运行。