我是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 Error: Could not find or load main class class path TestJava