在Ubuntu上提交Hadoop作业通常涉及以下步骤:
环境准备:
HADOOP_HOME和PATH。编写MapReduce程序:
上传JAR文件到HDFS:
hdfs dfs -put命令将JAR文件上传到HDFS的某个目录中。hdfs dfs -put /path/to/your-job.jar /user/hadoop/job.jar
准备输入数据:
hdfs dfs -put /path/to/input /user/hadoop/input
设置作业参数:
提交作业:
hadoop jar命令提交作业。hadoop jar /user/hadoop/job.jar com.yourcompany.YourJobClass /user/hadoop/input /user/hadoop/output
其中,com.yourcompany.YourJobClass是你的主类名,/user/hadoop/input是输入路径,/user/hadoop/output是输出路径。
监控作业:
yarn application -list命令查看作业状态。yarn application -list
查看作业输出:
hdfs dfs -cat /user/hadoop/output/part-r-00000
以下是一个完整的示例:
# 编译并打包MapReduce程序
javac -cp `hadoop classpath` YourJobClass.java
jar cf your-job.jar YourJobClass*.class
# 上传JAR文件到HDFS
hdfs dfs -put your-job.jar /user/hadoop/job.jar
# 上传输入数据到HDFS
hdfs dfs -put /local/path/to/input /user/hadoop/input
# 提交作业
hadoop jar /user/hadoop/job.jar com.yourcompany.YourJobClass /user/hadoop/input /user/hadoop/output
# 监控作业
yarn application -list
# 查看作业输出
hdfs dfs -cat /user/hadoop/output/part-r-00000
确保在执行这些命令之前,Hadoop集群已经正确配置并且所有节点都在运行。如果有任何问题,可以查看Hadoop的日志文件以获取更多信息。