Я новичок в кластерном узле Hadoop.
Я пытаюсь запустить команду Hadoop в Java
Следующий код предназначен для копирования файла из локальной системы в 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