windows7+eclipse+hadoop2.5.2環境配置
一.hadoop集群環境配置
參考我的前一篇文章(ubuntu + hadoop2.5.2分布式環境配置 http://www.cnblogs.com/huligong1234/p/4136331.html)
但本人配置時還修改了如下內容(由於你的環境和我的可能不一致,可以在后面出現相關問題后再進行修改):
a.在master節點上(ubuntu-V01)修改hdfs-site.xml加上以下內容
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
旨在取消權限檢查,原因是為了解決我在windows機器上配置eclipse連接hadoop服務器時,配置map/reduce連接后報以下錯誤,org.apache.hadoop.security.AccessControlException: Permission denied:
b.同樣在master節點上(ubuntu-V01)修改hdfs-site.xml加上以下內容
<property>
<name>dfs.web.ugi</name>
<value>jack,supergroup</value>
</property>
原因是運行時,報如下錯誤 WARN org.apache.hadoop.security.ShellBasedUnixGroupsMapping: got exception trying to get groups for user jack
應該是我的windows的用戶名為jack,無訪問權限
更多權限配置可參看官方說明文檔:
HDFS權限管理用戶指南 http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_permissions_guide.html
配置修改完后重啟hadoop集群:
hadoop@ubuntu-V01:~/data$./sbin/stop-dfs.sh
hadoop@ubuntu-V01:~/data$./sbin/stop-yarn.sh
hadoop@ubuntu-V01:~/data$./sbin/start-dfs.sh
hadoop@ubuntu-V01:~/data$./sbin/start-yarn.sh
二.windows基礎環境准備
windows7(x64),jdk,ant,eclipse,hadoop
1.jdk環境配置
jdk-6u26-windows-i586.exe安裝后好后配置相關JAVA_HOME環境變量,並將bin目錄配置到path
2.eclipse環境配置
eclipse-standard-luna-SR1-win32.zip解壓到D:\eclipse\目錄下並命名eclipse-hadoop
下載地址: http://developer.eclipsesource.com/technology/epp/luna/eclipse-standard-luna-SR1-win32.zip
3.ant環境配置
apache-ant-1.9.4-bin.zip解壓到D:\apache\目錄下,配置環境變量ANT_HOME,並將bin目錄配置到path
下載地址: http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip
4.下載hadoop-2.5.2.tar.gz
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz
5.下載hadoop-2.5.2-src.tar.gz
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2-src.tar.gz
6.下載hadoop2x-eclipse-plugin
https://github.com/winghc/hadoop2x-eclipse-plugin
7.下載hadoop-common-2.2.0-bin
https://github.com/srccodes/hadoop-common-2.2.0-bin
分別將hadoop-2.5.2.tar.gz、hadoop-2.5.2-src.tar.gz、hadoop2x-eclipse-plugin、hadoop-common-2.2.0-bin下載解壓到F:\hadoop\目錄下
8.修改本地hosts文件,加入如下內容:
192.168.1.112 ubuntu-V01
三、編譯hadoop-eclipse-plugin-2.5.2.jar配置
1.添加環境變量HADOOP_HOME=F:\hadoop\hadoop-2.5.2\
追加環境變量path內容:%HADOOP_HOME%/bin
2.修改編譯包及依賴包版本信息
修改F:\hadoop\hadoop2x-eclipse-plugin-master\ivy\libraries.properties
hadoop.version=2.5.2
jackson.version=1.9.13
3.ant編譯
F:\hadoop\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin>
ant jar -Dversion=2.5.2 -Declipse.home=D:\eclipse\eclipse-hadoop\eclipse -Dhadoop.home=F:\hadoop\hadoop-2.5.2
編譯好后hadoop-eclipse-plugin-2.5.2.jar會在F:\hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin目錄下
四、eclipse環境配置
1.將編譯好的hadoop-eclipse-plugin-2.5.2.jar拷貝至eclipse的plugins目錄下,然后重啟eclipse
2.打開菜單Window--Preference--Hadoop Map/Reduce進行配置,如下圖所示:
3.顯示Hadoop連接配置窗口:Window--Show View--Other-MapReduce Tools,如下圖所示:
三、編譯hadoop-eclipse-plugin-2.5.2.jar配置
1.添加環境變量HADOOP_HOME=F:\hadoop\hadoop-2.5.2\
追加環境變量path內容:%HADOOP_HOME%/bin
2.修改編譯包及依賴包版本信息
修改F:\hadoop\hadoop2x-eclipse-plugin-master\ivy\libraries.properties
hadoop.version=2.5.2
jackson.version=1.9.13
3.ant編譯
F:\hadoop\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin>
ant jar -Dversion=2.5.2 -Declipse.home=D:\eclipse\eclipse-hadoop\eclipse -Dhadoop.home=F:\hadoop\hadoop-2.5.2
編譯好后hadoop-eclipse-plugin-2.5.2.jar會在F:\hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin目錄下
四、eclipse環境配置
1.將編譯好的hadoop-eclipse-plugin-2.5.2.jar拷貝至eclipse的plugins目錄下,然后重啟eclipse
2.打開菜單Window--Preference--Hadoop Map/Reduce進行配置,如下圖所示:
3.顯示Hadoop連接配置窗口:Window--Show View--Other-MapReduce Tools,如下圖所示:
4.配置連接Hadoop,如下圖所示:
查看是否連接成功,能看到如下信息,則表示連接成功:
五、hadoop集群環境添加測試文件
(如果已有則無需配置)
a.dfs上創建input目錄
hadoop@ubuntu-V01:~/data/hadoop-2.5.2$bin/hadoop fs -mkdir -p input
b.把hadoop目錄下的README.txt拷貝到dfs新建的input里
hadoop@ubuntu-V01:~/data/hadoop-2.5.2$bin/hadoop fs -copyFromLocal README.txt input
六、創建一個Map/Reduce Project
1.新建項目 File--New--Other--Map/Reduce Project 命名為MR1,
然后創建類org.apache.hadoop.examples.WordCount,從hadoop-2.5.2-src中拷貝覆蓋
(F:\hadoop\hadoop-2.5.2-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到項目中
然后定位到570行,直接修改為return true;
如下圖所示:
七、windows下運行環境配置
(如果不生效,則需要重啟機器)
需要hadoop.dll,winutils.exe
我是直接拷貝F:\hadoop\hadoop-common-2.2.0-bin-master\bin目錄下內容覆蓋F:\hadoop\hadoop-2.5.2\bin
八、運行project
在eclipse中點擊WordCount.java,右鍵,點擊Run As—>Run Configurations,配置運行參數,即輸入和輸出文件夾
hdfs://ubuntu-V01:9000/user/hadoop/input hdfs://ubuntu-V01:9000/user/hadoop/output
如下圖所示:
注意:如果output目錄已經存在,則刪掉或換個名字,如output01,output02 。。。
另外,出現問題可以多看日志( http://ubuntu-v01:8088/logs/)
參看資料:
Win7中使用Eclipse連接虛擬機中的Ubuntu中的Hadoop2.4經驗總結
http://www.aboutyun.com/thread-7784-1-1.html
hadoop2.2 eclipse連接hdfs(hadoop)
http://www.aboutyun.com/thread-8190-1-1.html
新手指導:Windows上使用Eclipse遠程連接Hadoop進行程序開發
http://www.aboutyun.com/thread-6001-1-1.html
windows eclipse運行mapreduce遇到權限問題該如何解決
http://www.aboutyun.com/thread-7660-1-1.html
hadoop開發方式總結及操作指導
http://www.aboutyun.com/thread-6950-1-1.html
我遇到的hadoop錯誤和解決方法匯總
http://heipark.iteye.com/blog/786302
HDFS權限管理用戶指南
http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_permissions_guide.html
