在Mac下安裝Hadoop的坑

Hadoop介紹

Hadoop是Apache基金會下的項目,它能夠處理非常大的數(shù)據(jù)集在分布式計算環(huán)境,它可以運行在三種模式下:

  • 獨立式
    Hadoop運行所有的東西在無后臺的單獨的JVM中,這種模式適合在開發(fā)階段測試與Debug MapReduce程序
  • 偽分布式
    Hadoop做為后臺應用運行在本地機器,模擬小集群
  • 全分布式
    Hadoop做為后臺應用運行真實的集群電腦中

Hadoop 安裝步驟

關于mac上安裝Hadoop偽分布式可以參考Mac OS X Yosemite安裝Hadoop 2.6記錄如何在MacOSX上安裝Hadoop(how to install hadoop on mac os x)。在這些文章中基本的配置及其安裝方法都已經(jīng)寫的比較清楚了,但是我在按照步驟安裝時仍然遇到了不少的坑,下面來做一些介紹。

軟件環(huán)境介紹

軟件環(huán)境:

* OS X Yosemite 10.10.5
* Java  1.6.0

使用brew命令安裝的是Hadoop的最新版本,需要的java最低版本是1.7.0,所以第一個坑在于java的升級。

1、Java在mac下升級

mac下java的安裝有兩種方式。

  1. 下載java更新包在本地安裝
  1. 通過brew cask來安裝

1、使用安裝包安裝

mac中自帶的java版本號為1.6.0,link的路徑為/usr/bin,系統(tǒng)默認java安裝路徑為:

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

使用dmg包安裝后java的路徑為:

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

這兩個包并不沖突,在這種情況下Terminal中的java命令還是系統(tǒng)默認的,需要對新安裝的做軟鏈。參考:MAC OSX安裝多個版本的JAVA(jdk jre通用)。
安裝Java

2、使用brew cask 安裝

$ brew update && brew upgrade brew-cask && brew cleanup && brew cask cleanup$ brew cask install java
$ brew cask install java

正常情況下執(zhí)行著兩個命令會安裝成功,但是brew update會出現(xiàn)問題。會出現(xiàn)The following untracked working tree files would be overwritten by merge錯誤,這時使用:

$ cd /usr/local
$ git fetch origin
$ git reset --hard origin/master

如果你沒有在管理員或sudo模式下,你也可以在第一個命令中chown

$ sudo chown -R whoami /usr/local
$ cd /usr/local
$ git reset --hard origin/master

3、測試是否安裝成功

$ java -version

如果版本信息返回的是java version "1.8.0_74"式的安裝信息表明安裝成功。

2、ssh connection refuserd

生成ssh后,使用ssh localhost來測試ssh是否成功。給出提醒如下:

ssh: connect to host localhost port 22: Connection refused

這是因為mac電腦的共享配置未打開,在System preferences ->Sharing中打開如下配置:

打開remote login設置

此時在此使用ssh localhost命令來測試返回Last login: Mon Mar 21 09:58:12 2016,表明已經(jīng)成功。

3、啟動Hadoop

/usr/local/Cellar/hadoop/2.7.1/sbin路徑進入Hadoop的目錄執(zhí)行啟動腳本:

./start-dfs.sh            //啟動HDFS
./stop-dfs.sh           //停止HDFS

log如下:

Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/Cellar/hadoop/2.7.1/libexec/logs/hadoop-tony-namenode-tonys-MacBook-Pro-2.local.out
localhost: starting datanode, logging to /usr/local/Cellar/hadoop/2.7.1/libexec/logs/hadoop-tony-datanode-tonys-MacBook-Pro-2.local.out
Starting secondary namenodes [0.0.0.0]

在log中會顯示警告WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicabled的提醒,是關于 Hadoop 本地庫的, Hadoop本地庫是為了提高效率或者某些不能用Java實現(xiàn)的功能組件庫??梢詤⒖?a target="_blank" rel="nofollow">Mac OSX 下 Hadoop 使用本地庫提高效率來做處理。

此時在瀏覽器中打開Resource Manager: http://localhost:50070可以看到如下頁面

Resource Manager 顯示

執(zhí)行如下啟動腳本腳本:

./start-yarn.sh        //啟動yarn,一個MapReduce框架
./stop-yarn.sh        //停止yarn

此時在瀏覽器中打開JobTracker: http://localhost:8088、Specific Node Information: http://localhost:8042可以分別看到如下界面:

JobTracker顯示
Specific Node Information 顯示
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容