在Mac OS X 10.10.5中參考《hadoop實戰第2版》配置hadoop(雖然該書已經有點老了,可以同時參考其他博文和官方文檔)
0.據書上說要先安裝Xcode,由於一直有Xcode,不知這步是否必要
1.首先安裝Homebrew 未遇到問題 可以參考百度經驗http://jingyan.baidu.com/article/fec7a1e5ec30341190b4e7e5.html
2.使用Homebrew安裝Hadoop 未遇到問題 輸入命令 brew install hadoop即可
3.配置ssh 未遇到問題
首先在用戶根目錄下ls -a查看包括隱藏的文件夾,應該能發現.ssh,如果沒有就安裝brew ssh
有了文件.ssh後, ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
4.驗證ssh 遇到問題
輸入命令行 ssh localhost
“ssh: connect to host localhost port 22: Connection refused”
進入系統偏好設置->共享->選擇遠程登錄,允許所有用戶(這在上一篇博文有提到)
5.僞分佈式Hadoop的配置 遇到問題
1)下載hadoop於http://www.apache.org/dyn/closer.cgi/Hadoop/core/
選擇與之前brew install一樣的版本的hadoop下載,例如hadoop-2.7.3.tar.gz
下載後解壓到用戶目錄下例如用戶名叫x,就放到/usr/x下
2)進行一系列配置
在hadoop-2.7.3->etc->hadoop中有hadoop-env.sh
配置export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
在core-site.xml中配置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
在hdfs-site.xml中配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
在mapred-site.xml中配置
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
3)bin/hdfs namenode -format
出現問題
org/apache/hadoop/hdfs/server/namenode/NameNode : Unsupported major.minor version 51.0
首先Mac本身自帶有jdk1.6.0,然後更新過jdk到1.8.0所以java路徑配置錯了,要找到1.8.0的位置,點擊系統偏好設置->java得到路徑
然後
bin/hdfs namenode -format 未遇到問題
4)sbin/start-all.sh 出現問題(當然最好還是start-hds.sh)
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解決方法 export HADOOP_HOME=/usr/x/hadoop-2.7.3(這個與自己的用戶名和路徑有關不要照搬)
export PATH=$PATH:$HADOOP_HOME/bin
最後一直有個問題是 This script is Deprecated.據說是因爲hadoop是32位的緣故,暫時未知是否有影響還沒解決問題。
因爲此刻已經可以打開http://localhost:50070 http://localhost:8088發現配置成功(注意在搜索過程中發現hadoop2以上的版本是沒有50030和50060的)
5)sbin/stop-all.sh 未遇到問題
以上文檔僅以記載鄙人配置hadoop所遇疑難和解決方案,並未參照官方指南查證,如有問題歡迎批評指正。