如何使用Java -jar命令运行映射减少作业

Tin*_*nku 5 eclipse hadoop mapreduce hadoop-yarn hadoop2

我使用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");
Run Code Online (Sandbox Code Playgroud)

使用不同的案例运行

案例1:"使用Hadoop和Yarn命令":成功完成工作

案例2:"使用Eclipse":成功做好工作

案例3:"删除所有configuration.set()后使用Java -jar":

                    Configuration configuration = new Configuration();

        Run successful but not display Job status on Yarn (default port number 8088)
Run Code Online (Sandbox Code Playgroud)

案例4:"使用Java -jar":错误

     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)
Run Code Online (Sandbox Code Playgroud)

我请你告诉我如何使用"Java -jar"命令运行map-reduce作业,还能检查状态并登录Yarn(默认端口8088).

为什么需要:想要创建Web服务并提交map-reduce作业.(不使用Java运行时库来执行Yarn或Hadoop命令).

Whi*_*haq 1

在我看来,没有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集群,在端口19888监控mapreduce作业历史记录。

然后,您应该证明您的 hdfs 环境和yarn 环境运行良好。对于 hdfs 环境,您可以尝试使用简单的 hdfs 命令,如 mkdir、copyToLocal、copyFromLocal 等,对于 YARN 环境,您可以尝试示例 wordcount 项目。

拥有hadoop环境后,您可以创建自己的mapreduce应用程序(可以使用任何IDE)。也许你需要这个作为教程。编译并放入jar中。

打开你的终端,然后运行这个命令

hadoop jar <path to jar> <arg1> <arg2> ... <arg n>
Run Code Online (Sandbox Code Playgroud)

希望这有帮助。