問題描述:在開發MR程序中會遇一些問題須要經過Debug調式,那麼本文將介紹描述配置eclipse如何在Windows或者Linux下啓動Debug調式。java
MR程序的Debug調式換言之就是MR程序的運行模式,MR程序有三種運行模式:本地模式(local)、集羣模式(cluster)apache
Linux環境下:
windows
一、本地模式:直接經過eclipse右鍵進行Debug便可session
二、集羣模式:app
2.一、將hadoop的配置文件:core-site.xml/hdfs-site.xml/mapreduce-site.xml/yarn.xml拷貝到工程的src目錄下,這樣eclipse就會經過集羣進行提交eclipse
2.二、提交時須要將本工程的jar包打到給本工程的目錄下jvm
2.三、同時須要設置環境變量:conf.set("mapreduce.job.jar","wordcount.jar")oop
Windows環境下:ui
首先Windows真的不適合對MR程序進行調式,不只出現版本不兼容問題,調式起來的出現的各類環境錯誤也使人費解code
一、本地模式:
1.一、首先須要下載windows版本的hadoop程序,而且須要在PATH路徑下指定HADOOP_HOME
1.二、如今能夠直接經過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.一、將hadoop的配置文件:core-site.xml/hdfs-site.xml/mapreduce-site.xml/yarn.xml拷貝到工程的src目錄下
2.二、修改Hadoop源代碼:YARNRunner.java文件,YARNRunner裏面包含大量與Linux環境相關的配置,須要將器替換成Windows的環境配置,從新編譯便可,這也是不建議在WINDOWS下調式的緣由,由於修改起來很是麻煩