溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

發(fā)布時間:2021-12-10 09:52:07 來源:億速云 閱讀:127 作者:iii 欄目:云計算

本篇內(nèi)容介紹了“Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

1、環(huán)境說明

Win7 64位

Hadoop-1.2.1 Virtualbox三臺主機bd11,bd12,bd13

Eclipse Indigo 必須用3系,插件放到4.x中會報錯,是META-INF/MANIFEST.MF中classpath的問題,會找不到類

自編譯hadoop-1.2.1的插件

2、插件參數(shù)配置

2.1、Eclipse配置

配置本地hadoop路徑

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

2.2、插件配置-General

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

2.3、Advanced parameters

參數(shù)名參數(shù)值參考文檔
fs.default.namehdfs://bd11:9000參考core-site.xml
hadoop.tmp.dir/home/wukong/usr/hadoop-tmp參考core-site.xml
mapred.job.trackerbd11:9001參考mapred-site.xml

2.3、可能報的錯

當(dāng)以上配置沒有配好時,可能會報一下錯誤

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

3、運行

3.1、運行參數(shù)

是的,你可以把參數(shù)寫死。

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

3.2、運行過程

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

3.3、運行結(jié)果文件

Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序

4、可能出現(xiàn)的錯誤

4.1、打開/刷新目錄/創(chuàng)建目錄沒反應(yīng),也不報錯

可能是引用的jar包或者以上配置的參數(shù)不對

4.2、運行mapreduce程序,拋出serverIPC版本和client不同的異常

Server IPC version 9 cannot communicate with client version 4

這種情況是由于引用的hadoop相關(guān)jar的版本與服務(wù)器上不一致導(dǎo)致的。

4.3、權(quán)限問題1

問題如下

14/08/21 21:39:29 ERROR security.UserGroupInformation: PriviledgedActionException as:zhaiph cause:java.io.IOException: Failed to set permissions of path: tmphadoop-xxx.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: tmphadoop-xxx.staging to 0700
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:691)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:664)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:514)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:349)
        at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:193)
        at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:126)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:942)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:936)
        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:1190)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:936)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:550)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580)
        at MaxTemperature.main(MaxTemperature.java:36)

解決辦法

hadoop-core-1.2.1.jar的問題。方法有二,要么重新編譯jar,要么改源文org.apache.hadoop.fs.FileUtil.java。改源文件內(nèi)容如下

private static void checkReturnValue(boolean rv, File p,F(xiàn)sPermission permission)
                                     throws IOException {
//    if (!rv) {
//      throw new IOException("Failed to set permissions of path: " + p + 
//                            " to " + 
//                            String.format("%04o", permission.toShort()));
//    }
  }

4.4、權(quán)限問題2

錯誤描述

14/08/21 21:43:12 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/08/21 21:43:12 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
14/08/21 21:43:12 WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
14/08/21 21:43:12 INFO input.FileInputFormat: Total input paths to process : 1
14/08/21 21:43:12 WARN snappy.LoadSnappy: Snappy native library not loaded
14/08/21 21:43:13 INFO mapred.JobClient: Running job: job_local1395395251_0001
14/08/21 21:43:13 WARN mapred.LocalJobRunner: job_local1395395251_0001
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=Johnson, access=WRITE, inode="ch02":wukong:supergroup:rwxr-xr-x
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
    at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:57)
    at org.apache.hadoop.hdfs.DFSClient.mkdirs(DFSClient.java:1459)
    at org.apache.hadoop.hdfs.DistributedFileSystem.mkdirs(DistributedFileSystem.java:362)
    at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:1161)
    at org.apache.hadoop.mapred.FileOutputCommitter.setupJob(FileOutputCommitter.java:52)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:319)
Caused by: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: user=Johnson, access=WRITE, inode="ch02":wukong:supergroup:rwxr-xr-x
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:217)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:197)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:141)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5758)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAncestorAccess(FSNamesystem.java:5731)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirsInternal(FSNamesystem.java:2502)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:2469)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.mkdirs(NameNode.java:911)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:587)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1428)
    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:1190)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1426)
 
    at org.apache.hadoop.ipc.Client.call(Client.java:1113)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
    at com.sun.proxy.$Proxy1.mkdirs(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62)
    at com.sun.proxy.$Proxy1.mkdirs(Unknown Source)
    at org.apache.hadoop.hdfs.DFSClient.mkdirs(DFSClient.java:1457)
    ... 4 more
14/08/21 21:43:14 INFO mapred.JobClient:  map 0% reduce 0%
14/08/21 21:43:14 INFO mapred.JobClient: Job complete: job_local1395395251_0001
14/08/21 21:43:14 INFO mapred.JobClient: Counters: 0

或者是直接在eclipse的DFS目錄樹中某個節(jié)點提示permission ^&^((%^&%%R*^*

解決辦法:在hdfs-site.xml中加入以下部分。使得dfs不校驗權(quán)限。

<property>    
    <name>dfs.permissions</name>
    <value>false</value>
</property>

4.5、Win7中執(zhí)行報winutils.exe找不到

錯誤如下:

2015-02-05 15:19:43,080 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2015-02-05 15:19:44,257 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(336)) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable D:\Lab\lib\hadoop\hadoop-2.4.1\bin\winutils.exe in the Hadoop binaries.
	at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:318)
	at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:333)
	at org.apache.hadoop.util.Shell.<clinit>(Shell.java:326)
	at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
	at org.apache.hadoop.security.Groups.parseStaticMapping(Groups.java:93)
	at org.apache.hadoop.security.Groups.<init>(Groups.java:77)
	at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:240)
	at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:255)
	at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:232)
	at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:718)
	at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:703)
	at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:605)
	at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2554)
	at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2546)
	at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2412)
	at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368)
	at wukong.hadoop.tools.HdfsTool.rm(HdfsTool.java:26)
	at sample.FlowMR.main(FlowMR.java:21)
2015-02-05 15:19:51,141 INFO  [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - session.id is deprecated. Instead, use dfs.metrics.session-id
2015-02-05 15:19:51,154 INFO  [main] jvm.JvmMetrics (JvmMetrics.java:init(76)) - Initializing JVM Metrics with processName=JobTracker, sessionId=

“Eclipse怎么遠(yuǎn)程執(zhí)行MapReduce程序”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI