MR程序Debug调式或者运行模式

原创
2015/06/03 01:13
阅读数 2.2K

问题描述:在开发MR程序中会遇一些问题需要通过Debug调式,那么本文将介绍描述配置eclipse如何在Windows或者Linux下启动Debug调式。

    MR程序的Debug调式换言之就是MR程序的运行模式,MR程序有三种运行模式:本地模式(local)、集群模式(cluster)

    Linux环境下:

    1、本地模式:直接通过eclipse右键进行Debug即可

    2、集群模式:

        2.1、将hadoop的配置文件:core-site.xml/hdfs-site.xml/mapreduce-site.xml/yarn.xml拷贝到工程的src目录下,这样eclipse就会通过集群进行提交

        2.2、提交时需要将本工程的jar包打到给本工程的目录下

        2.3、同时需要设置环境变量:conf.set("mapreduce.job.jar","wordcount.jar")


    Windows环境下:

    首先Windows真的不适合对MR程序进行调式,不仅出现版本不兼容问题,调式起来的出现的各种环境错误也令人费解

    1、本地模式:   

        1.1、首先需要下载windows版本的hadoop程序,并且需要在PATH路径下指定HADOOP_HOME

        1.2、现在可以直接通过eclipse右键DEBUG直接调式(由于本人没有成功在WINDOWS运行本地调式并且出现了如下异常:)

2015-06-03 00:52:10,649 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2015-06-03 00:52:15,730 INFO  [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - session.id is deprecated. Instead, use dfs.metrics.session-id
2015-06-03 00:52:15,730 INFO  [main] jvm.JvmMetrics (JvmMetrics.java:init(76)) - Initializing JVM Metrics with processName=JobTracker, sessionId=
Exception in thread "main" org.apache.hadoop.util.Shell$ExitCodeException: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
    at org.apache.hadoop.util.Shell.run(Shell.java:418)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:633)
    at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:421)
    at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:281)
    at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:125)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:348)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303)
    at com.itheima.hadoop.runner.WordCountRunner.main(WordCountRunner.java:38)

    2、集群模式

        2.1、将hadoop的配置文件:core-site.xml/hdfs-site.xml/mapreduce-site.xml/yarn.xml拷贝到工程的src目录下

        2.2、修改Hadoop源代码:YARNRunner.java文件,YARNRunner里面包含大量与Linux环境相关的配置,需要将器替换成Windows的环境配置,重新编译即可,这也是不建议在WINDOWS下调式的原因,因为修改起来非常麻烦


展开阅读全文
打赏
1
4 收藏
分享
加载中
更多评论
打赏
0 评论
4 收藏
1
分享
返回顶部
顶部