首页 > 解决方案 > 在java中运行hadoop命令copyFromLocalFile时出错

问题描述

我是 Hadoop 集群节点的新手。我尝试在 java 中运行 Hadoop 命令

以下代码是将文件从本地复制到 HDFS。

当我使用命令外壳时,它正在工作:
hadoop fs -copyFromLocal /home/my_name/tutorial_append.txt /user/my_name/tutorial_append.txt

但是当我用这样的java代码实现它时:

import java.io.IOException;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;



  public class UploadTest {

    public static void main(String[] args) throws IOException {

         System.out.print("Hello World");
         String localPath="/home/my_name/tutorial_append.txt";

         String uri ="hdfs://0.0.0.0:8020";

         String hdfsdir="hdfs://0.0.0.0:8020/user/my_name/";

         Configuration conf = new Configuration();

         FileSystem fs =  FileSystem.get(URI.create(uri),conf);

         fs.copyFromLocalFile(new Path(localPath),new Path(hdfsdir));
    }
}

compile javac -cp hadoop-core-1.2.1.jar UploadTest.java

run java -cp hadoop-core-1.2.1.jar UploadTest

Error: Could not find or load main class UploadTest

我已经尝试了很多次,但我没有成功。

解决了

最后我构建到 jar 文件并使用 hadoop jar UploadTest.jar 运行

我在关注这个 Hadoop 错误:无法找到或加载主类类路径 TestJava

标签: javahadoop2

解决方案


推荐阅读