我用Java写了一个Map reduce Job。设置配置
Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://127.0.0.1:9000");
configuration.set("mapreduce.job.tracker", "localhost:54311");
configuration.set("mapreduce.framework.name", "yarn");
configuration.set("yarn.resourcemanager.address", "localhost:8032");
用不同的大小写运行
案例1:"Using Hadoop and Yarn command": Success Fine Work
案例2:"Using Eclipse ": Success Fine Work
case 3: "Using Java -jar after remove all configuration.set()":
Configuration configuration = new Configuration();
Run successful but not display Job status on Yarn (default port number 8088)
案例4:"Using Java -jar": Error
Find stack trace:Exception in thread "main" java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:120)
at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:82)
at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:75)
at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1255)
at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1251)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
at org.apache.hadoop.mapreduce.Job.connect(Job.java:1250)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1279)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
at com.my.cache.run.MyTool.run(MyTool.java:38)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at com.my.main.Main.main(Main.java:45)
我请求你告诉我如何使用"Java -jar"命令运行map-reduce作业,并能够检查状态和登录Yarn(默认端口8088)。
为什么需要:想要创建一个web服务并提交一个map-reduce作业。(不使用Java运行库来执行Yarn或Hadoop命令)
在我看来,没有hadoop命令运行hadoop应用程序是相当困难的。你最好使用hadoop jar而不是java -jar。
我想你的机器没有安装hadoop环境。首先,您必须确保hadoop在您的机器上运行良好。
就我个人而言,我更喜欢在mapred-site.xml、core-site.xml、yarn-site.xml、hdfs-site.xml设置配置。我知道一个清晰的教程安装hadoop集群在这里
此时可以监控端口为50070的hdfs,端口为8088的yarn cluster,端口为19888的mapreduce job history。
然后,你应该证明你的hdfs环境和yarn环境运行良好。对于hdfs环境,您可以尝试使用简单的hdfs命令,如mkdir, copytollocal, copyFromLocal等,对于yarn环境,您可以尝试示例wordcount项目。
在你有了hadoop环境之后,你可以创建你自己的mapreduce应用程序(你可以使用任何IDE)。也许你需要这个教程。编译它并把它放到jar中。打开终端,运行以下命令
hadoop jar <path to jar> <arg1> <arg2> ... <arg n>