windows7+eclipse-jee-luna+hadoop2.6運行環境及eclipse plugin插件編譯

1、hadoop集羣環境配置 html

參見:《Hadoop2.6集羣環境搭建(HDFS HA+YARN)原來4G內存也能任性一次.》java

Win7環境:git

 

登陸用戶名:hadoop , 與Hadoop集羣中的Linux環境用戶統一。github

a.在SY-0130節點上修改hdfs-site.xml加上如下內容 ,並同步修改到其餘節點。
<property> 
<name>dfs.permissions</name> 
<value>false</value> 
</property> apache

旨在取消權限檢查,緣由是爲了解決我在windows機器上配置eclipse鏈接hadoop服務器時,配置map/reduce鏈接後報如下錯誤,org.apache.hadoop.security.AccessControlException: Permission denied.windows

重啓Hadoop集羣。服務器

二. windows基礎環境準備
app

windows7(x64),jdk(64位),ant,eclipse(64位),hadoop2.6.0

1.jdk環境配置 
jdk-6u45-windows-x64.exe 安裝後好後配置相關JAVA_HOME環境變量,並將bin目錄配置到path . 在此不要用JDK7或JDK8,後續說明爲何。eclipse

下載地址:http://pan.baidu.com/s/1kTn9mIjoop

2.eclipse環境配置 
eclipse-jee-luna-SR1a-win32-x86_64.zip解壓到D:\hadoop2.6\eclipse-jee-luna-SR1a-win32-x86_64
下載地址:http://pan.baidu.com/s/1dD5wv0P
3.ant環境配置 
apache-ant-1.9.4-bin.zip解壓到D:\hadoop2.6\apache-ant-1.9.4,配置環境變量ANT_HOME,並將bin目錄配置到path 
下載地址:http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip 

4.下載hadoop-2.6.0.tar.gz
http://pan.baidu.com/s/1kTpBenX

5.下載hadoop-2.6.0-src.tar.gz
http://pan.baidu.com/s/1o6yYzma

6.下載hadoop2x-eclipse-plugin-master.zip
https://github.com/winghc/hadoop2x-eclipse-plugin 

我測試時候的版本:http://pan.baidu.com/s/12KD3o

7.下載hadoop-common-2.2.0-bin-master.zip
https://github.com/srccodes/hadoop-common-2.2.0-bin 

我測試時候下載的版本:http://pan.baidu.com/s/1o6HptNW

分別將hadoop-2.6.0.tar.gz、hadoop-2.6.0-src.tar.gz、hadoop2x-eclipse-plugin-master.zip、hadoop-common-2.2.0-bin-master.zip

下載解壓到D:\hadoop2.6下 

如圖:

8.修改win7機器hosts文件,加入以下內容:

SY-0130 192.168.249.130
SY-0131 192.168.249.131
SY-0132 192.168.249.132
SY-0133 192.168.249.133
SY-0134 192.168.249.133

3、編譯hadoop-eclipse-plugin-2.6.0.jar 配置 

win7下操做

1.添加環境變量HADOOP_HOME=D:\hadoop2.6\hadoop-2.6.0
追加環境變量path內容:%HADOOP_HOME%/bin 

2.修改編譯包及依賴包版本信息 
修改D:\hadoop2.6\hadoop2x-eclipse-plugin-master\ivy\libraries.properties
hadoop.version=2.6.0 (我測試的時候,下載的文件中,該設置已經爲2.6.0)  

3.ant編譯 

進入CMD 命令行:

D:\hadoop2.6\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin> 

ant jar -Dversion=2.6.0 -Declipse.home=D:\hadoop2.6\eclipse-jee-luna\eclipse -Dhadoop.home=D:\hadoop2.6\hadoop-2.6.0

編譯好後hadoop-eclipse-plugin-2.6.0.jar會在D:\hadoop2.6\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin\目錄下 

4、eclipse環境配置 
1.將編譯好的hadoop-eclipse-plugin-2.6.0.jar拷貝至eclipse的plugins目錄下,而後重啓eclipse 
2.打開菜單Window--Preference--Hadoop Map/Reduce進行配置,以下圖所示: 

 

3.顯示Hadoop鏈接配置窗口:Window--Show View--Other-MapReduce Tools,以下圖所示: 

4.配置鏈接Hadoop,以下圖所示: 

DFS Master : 就是core-site.xml文件中配置的

<name>fs.defaultFS</name>
<value>hdfs://SY-0130:8020</value>

查看是否鏈接成功,能看到以下信息,則表示鏈接成功: 

 

6、建立一個Map/Reduce Project 
1.新建項目 File--New--Other--Map/Reduce Project 命名爲MR1, 
而後建立類org.apache.hadoop.examples.WordCount,從hadoop-2.6.0-src中拷貝覆蓋 
(D:\hadoop2.6\hadoop-2.6.0-src\hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples\WordCount.java) 

 

2.建立log4j.properties文件 
在src目錄下建立log4j.properties文件,內容以下: 
log4j.rootLogger=debug,stdout,R 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=mapreduce_test.log 
log4j.appender.R.MaxFileSize=1MB 
log4j.appender.R.MaxBackupIndex=1 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
log4j.logger.com.codefutures=DEBUG 

 

3.解決java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)異常問題 
(因爲你的環境和個人可能不一致,能夠在後面出現相關問題後再進行修改) 
拷貝源碼文件org.apache.hadoop.io.nativeio.NativeIO到項目中 
而後定位到access方法,直接修改成return true; 
以下圖所示: 

 

7、windows下運行環境配置
(Java調用本地類庫,如下運行,若是不生效,則須要重啓電腦) 
若是是32位的電腦能夠直接使用:
須要hadoop.dll,winutils.exe 
直接拷貝D:\hadoop2.6\hadoop-common-2.2.0-bin-master\bin目錄下內容,覆蓋D:\hadoop2.6\hadoop-2.6.0\bin
若是電腦是64位,下載我分享的文件,進行覆蓋。
 
8、運行project
在eclipse中點擊WordCount.java,右鍵,點擊Run As—>Run Configurations,配置運行參數,即輸入和輸出文件夾 
hdfs://192.168.249.130:8020/wordcount/input/file01  hdfs://192.168.249.130:8020/wordcount/output7
以下圖所示: 
 
 
注意:
一、若是output目錄已經存在,則刪掉或換個名字,如output20,output10...
 
二、建立的Project,須要將hadoop相關的jar包都引用進來。好比Common、hdfs、Mapreduce、yarn中的jar包,若是運行時候出現類找不到,大多數由於沒有引進某個jar包。
 
源碼中有引用該包 sun.misc.Unsafe;  Java7已經不支持這個類了,若是使用JDK7,則會報錯。
 
 訪問個人微博地址:http://weibo.com/tmeily ,能夠關注我。
相關文章
相關標籤/搜索