Hadoop 學習之 MapredReduce 程式設計小試
1、開啟myeclipse 新建一個java 專案,直接把example 中的WordCount.java COPY過來。
2、修改編碼 UTF-8,編譯器 1.6
3、buildpath 把原始碼根目錄下的jar,以及lib下的jar匯入到專案中。
4、src一般放置配置程式碼(xml)。真正的專案程式碼會新建SourceFolder
5、把core-site.xml 放到src目錄下。:注意修改 h1改為地址或修改本地的hosts檔案
6、有可能會遇到許可權不足,是因為hdfs的許可權問題,預設為755 需要改為757
7、報如下錯誤,看日誌,可以知道是FileUtil.checkReturnValue的這個方法報的錯。要想辦法把這個重新編譯替換。
重新編譯方法:在原始碼中clean 一下。然後在WebRoot\WEB-INF\classes\org\apache\hadoop\fs 中找到FileUtil.class 及 FileUtil$CygPathCommand.class
把這兩個檔案替換到hadoop-core-1.1.2.jar 中,然後重新引用這個包( 刪除 再 引入 )。
15/04/22 21:07:56 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/04/22 21:07:56 ERROR security.UserGroupInformation: PriviledgedActionException as:xgj cause:java.io.IOException: Failed to set permissions of path: \home\hadoop\hadoop-1.1.2\temp\mapred\staging\xgj-1952505389\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \home\hadoop\hadoop-1.1.2\temp\mapred\staging\xgj-1952505389\.staging to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:662)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:918)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:912)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:912)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
at WordCount.main(WordCount.java:69)
8、如果再執行時又報找不到類的一個錯誤,並且與所執行類有關係。解決方法為
在main 函式中的conf加一個鍵值。
conf.set("mapred.jar", "D:\\wc.jar");
然後再匯出一個jar包(本專案的一般的jar包),放到這個位置。再執行就可以了。
2、修改編碼 UTF-8,編譯器 1.6
3、buildpath 把原始碼根目錄下的jar,以及lib下的jar匯入到專案中。
4、src一般放置配置程式碼(xml)。真正的專案程式碼會新建SourceFolder
5、把core-site.xml 放到src目錄下。:注意修改 h1改為地址或修改本地的hosts檔案
6、有可能會遇到許可權不足,是因為hdfs的許可權問題,預設為755 需要改為757
7、報如下錯誤,看日誌,可以知道是FileUtil.checkReturnValue的這個方法報的錯。要想辦法把這個重新編譯替換。
重新編譯方法:在原始碼中clean 一下。然後在WebRoot\WEB-INF\classes\org\apache\hadoop\fs 中找到FileUtil.class 及 FileUtil$CygPathCommand.class
把這兩個檔案替換到hadoop-core-1.1.2.jar 中,然後重新引用這個包( 刪除 再 引入 )。
15/04/22 21:07:56 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/04/22 21:07:56 ERROR security.UserGroupInformation: PriviledgedActionException as:xgj cause:java.io.IOException: Failed to set permissions of path: \home\hadoop\hadoop-1.1.2\temp\mapred\staging\xgj-1952505389\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \home\hadoop\hadoop-1.1.2\temp\mapred\staging\xgj-1952505389\.staging to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:662)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:918)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:912)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:912)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
at WordCount.main(WordCount.java:69)
8、如果再執行時又報找不到類的一個錯誤,並且與所執行類有關係。解決方法為
在main 函式中的conf加一個鍵值。
conf.set("mapred.jar", "D:\\wc.jar");
然後再匯出一個jar包(本專案的一般的jar包),放到這個位置。再執行就可以了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30066956/viewspace-1591926/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習七:Hadoop小程式測試Hadoop
- java程式設計師程式設計筆試基礎學習Java程式設計師筆試
- 小白學習大資料測試之hadoop hdfs和MapReduce小實戰大資料Hadoop
- 小學生學習設計模式之單例模式設計模式單例
- 小白學習大資料測試之hadoop大資料Hadoop
- Java學習之AWT GUI程式設計JavaGUI程式設計
- Python學習之IO程式設計Python程式設計
- spark學習之-----spark程式設計模型Spark程式設計模型
- 結對程式設計——小學四則運算練習題小程式程式設計
- 好程式設計師大資料學習路線Hadoop學習乾貨分享程式設計師大資料Hadoop
- Python學習之網路程式設計Python程式設計
- Java學習之Swing Gui程式設計JavaGUI程式設計
- 好程式設計師大資料入門學習之Hadoop技術優缺點程式設計師大資料Hadoop
- 程式設計學習MarkDown學習程式設計
- 小學數學程式設計題程式設計
- 彙編學習小記(二)-順序程式設計程式設計
- Python學習之物件導向程式設計Python物件程式設計
- 黑馬程式設計師——Java學習筆記之⑦——“網路程式設計”程式設計師Java筆記
- Node.js 設計模式 學習筆記 之 流程式設計Node.js設計模式筆記程式設計
- python中小學生程式設計學習-政策定了,中小學生學習程式設計不得少於36小時,全民程式設計時代來了...Python程式設計
- 程式設計師自我修養之IT人學習方法論—學習方向程式設計師
- 程式設計如何學習程式設計
- 請學習程式設計程式設計
- 好好學習程式設計程式設計
- 好程式設計師Java學習路線之集程式設計師Java
- Python學習之函數語言程式設計Python函數程式設計
- 程式設計學習筆記之訊息地圖程式設計筆記地圖
- JavaScript高階程式設計學習(一)之介紹JavaScript程式設計
- 程式設計師必看之學習設計的5大理由程式設計師
- Hadoop學習之YARN及MapReduceHadoopYarn
- Hadoop 學習之-HBase安裝Hadoop
- 程式設計師自我修養之IT人學習方法論——學習誤區程式設計師
- Java程式設計師學習Rust程式設計 - infoworldJava程式設計師Rust
- 學習程式設計 vs 學習電腦科學程式設計
- Rust 程式設計,Option 學習Rust程式設計
- Python 程式設計學習Python程式設計
- iOS程式設計學習十三iOS程式設計
- Python學習之物件導向高階程式設計Python物件程式設計