標籤:os hadoop 2.6
整個安裝過程分為四部分:
一. 安裝Homebrew
二. ssh localhost
三. 安裝Hadoop已經進行設定檔設定 (偽分布式)
四. 運行栗子
一. 安裝Homebrew
採用Homebrew安裝Hadoop非常簡潔方便,之前在Windows上Cygwin上安裝過Hadoop,感覺好麻煩。
關於Homebrew可以查看其官網 http://brew.sh/ 也可以查看Homebrew 新一代OS X套件管理工具 一文。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然後將上面一行命令複製到終端執行就安裝完成了。
二. ssh localhost
因為安裝hadoop需要遠程登入的功能,所以需要安裝ssh工具。 Mac OS X只需在“系統喜好設定”的“共用”的“遠程登入”勾選就可以使用ssh了。
ssh的更多可以查看 SSH原理與應用 一文。
如果沒有產生過ssh公開金鑰,就使用命令: (查看 ~/.ssh/id_dsa 和~/.ssh/id_dsa.pub存不存在就知道之前有沒有產生過公開金鑰,或者直接執行ssh localhost看能否成功)
$ ssh-keygen -t rsa -P ""$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
後面的命令是為了將自己的公開金鑰存到對方的公開金鑰儲存檔案夾中, 這是為了避免每次執行ssh localhost進行遠程登入的時候都要輸入密碼。
三. 安裝hadoop 因為就在自己的一台電腦,所以就採用偽分布式模式。
<span style="font-size:18px;">$ brew install hadoop</span>
hadoop 就安裝成功了,當然這樣安裝的最新穩定版, 我安裝時最新為2.6。 hadoop將按預定的路徑安裝。
下面就是設定檔的修改了:
hadoop-env.sh
檔案在/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/hadoop-env.sh
將
export
HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
修改為
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
編輯 Core-site.xml
/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/core-site.xml
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/Cellar/hadoop/hdfs/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
編輯 mapred-site.xml 可能檔案名稱為 mapred-site.xml.templete , 改不改名字都可以。
/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/mapred-site.xml 剛開始是空白的檔案
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9010</value> </property> </configuration>
編輯 hdfs-site.xml
/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
至此,設定檔編輯完畢。
接下來是進到 hadoop 的安裝目錄 /usr/local/Cellar/hadoop/2.6.0/sbin
然後執行 ./start-dfs.sh 和 ./start-yarn.sh 就可以啟動 Hadoop了。 不過這裡會出現一個 警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 這對Hadoop的運行沒有影響,關於這個警告後面再講。
為了啟動Hadoop的時候避免每次都首先進到安裝目錄,然後再執行./start-dfs.sh 和 ./start-yarn.sh這麼麻煩,所以在編輯 ~/.profiles檔案,加上如下兩行:
alias hstart="/usr/local/Cellar/hadoop/2.6.0/sbin/start-dfs.sh;/usr/local/Cellar/hadoop/2.6.0/sbin/start-yarn.sh"alias hstop="/usr/local/Cellar/hadoop/2.6.0/sbin/stop-yarn.sh;/usr/local/Cellar/hadoop/2.6.0/sbin/stop-dfs.sh"
然後執行 $ source ~/.profile 更新。 這樣可以就可以用 hstart 和 hstop 這兩個簡單明了啟動Hadoop了。
不過在啟動hadoop之前要先格式化 hdfs
$ hadoop namenode -format
這時就可以用hstart啟動hadoop了。 可以使用 $jps 命令驗證 Hadoop是否在運行。
四. 運行栗子
安裝完了之後肯定想看看能不能使用,hadoop內建了一個例子。$ hadoop jar <path to the hadoop-examples file> pi 10 100
$ hadoop jar /usr/local/Cellar/hadoop/2.3.0/libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.3.0.jar pi 2 5
得到的結果可能是這樣的:
Wrote input for Map #0Wrote input for Map #1Starting Job...Job Finished in 1.685 secondsEstimated value of Pi is 3.60000000000000000000
然後可以通過Web端進行監控。
Resource Manager: http://localhost:50070JobTracker: http://localhost:8088Specific Node Information: http://localhost:8042
通過他們可以訪問 HDFS filesystem, 也可以取得結果輸出檔案.
註: 前文提到的 警告 是關於 Hadoop 本地庫的, Hadoop本地庫是為了提高效率或者某些不能用Java實現的功能組件庫。目前只支援 *unix, 在Mac OS X和Cygwin上沒有支援的。native hadoop library
不過我看到一篇文章說也可以在Mac OS X支援本地庫,其解決方案是 Mac OSX 下 Hadoop 使用本地庫提高效率
Mac OS X Yosemite安裝Hadoop 2.6記錄