1. 程式人生 > >Ubuntu14.04全分散式安裝hadoop2.7.2(三)jdk環境配置+hadoop單機

Ubuntu14.04全分散式安裝hadoop2.7.2(三)jdk環境配置+hadoop單機

前文回顧:

三臺電腦,一臺做主機,兩臺做從機。主機名分別是
master,slave1,slave2,ip分別是192.168.235.1~3
系統:ubuntu14.04
jdk:1.8.0_91
Hadoop: 2.7.2 (stable)
使用者名稱:hadoop

從零開始的安裝步驟:
1 建立Hadoop使用者組
2 下載jdk,hadoop,ssh,eclipse等等,
3 實現幾臺機之間的ssh無密碼登陸
4 配置環境(jdk,hadoop單機)
5 改host和hostname檔案
6 在主機上修改和配置
7 把修改好的hadoop資料夾整個複製到從機上
8 主機上格式化namenode,並開始執行整個工程
9 jps檢視執行狀態
10 主機上關閉整個工程

本文主要講第四個步驟:
*配置jdk的環境,實現hadoop單機模式

1 解壓之前下載的檔案
之前已經下載好jdk1.8(可能還有1.7)還有hadoop2.7.2的tar.gz檔案。需要將它們解壓出來。
看到有些教程會把jdk放在/opt/下,有些會放在/usr/local/下,都可以,只要之後寫路徑的時候記得放哪了就好。你想預設哪個版本就先裝哪個版本。我放在/usr/local/下,預設1.8。
hadoop同樣,也可以放在其他地方。解壓後可以改名字,讓以後寫路徑的時候更方便點。
終端命令:

$sudo tar zxvf hadoop-2.7.2.tar.gz -C /usr/local
$sudo tar zxvf jdk-8u91-linux-i586.tar.gz -C /usr/local $sudo tar zxvf jdk-7u79-linux-i586.tar.gz -C /usr/local #hadoop資料夾改名 $sudo mv /usr/local/hadoop-2.7.2 /usr/local/hadoop #修改hadoop資料夾的許可權 $sudo chown -R hadoop:hadoop /usr/local/hadoop

注意改名的命令本質上是剪下。如果使用者資料夾和該資料夾重名(比如我使用者資料夾叫hadoop, 又把hadoop的資料夾叫做hadoop),要注意寫清楚路徑,指明是哪個位置,否則/usr/local下的hadoop資料夾可能就到了使用者資料夾下。

2 配置環境變數
讓修改的配置能執行需要修改.bashrc檔案,有些教程會修改/etc/profile檔案,也是可以的。

#修改bashrc檔案
$sudo vim ~/.bashrc

在bashrc檔案最後新增:

#set java environment
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

#set hadoop environment
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL

注意=前後沒有空格,.和:不要漏
儲存後關閉檔案,

再執行命令:

$source ~/.bashrc

以上是讀取並執行剛剛修改的檔案中的命令。source很重要,如果忘記了,之前的修改都是無用的,之後如執行start all命令時,會出現command not found。

3安裝jdk和切換版本

#設定預設jdk,安裝java和javac
$sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.8.0_91/bin/java 300  
$sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0_91/bin/javac 300

安裝jdk1.7時也如是執行後面兩條命令(修改下路徑),300是指優先順序(不是預設不需要寫300),預設1072。

檢視當前版本:

$java -version

切換java版本:

$sudo update-alternatives --config java
$sudo update-alternatives --config javac

按提示選擇版本,再用查版本的指令檢視,可以看到版本改變。
*一個後續的修改:安裝了eclipse,執行eclipse時可能會報錯:No Java virtual machine was found….eclipse/jre/bin/java
解決辦法:
進入eclipse的目錄下執行:

$ln -sf $JAVA_HOME jre 

再執行eclipse即可

4hadoop單機執行例子驗證
以上如果配置無誤的話,hadoop已經可以單機運行了。可以用自帶的例子檢驗。
hadoop的例子在hadoop/share/hadoop/mapreduce/下,名為hadoop-mapreduce-examples-版本號.jar

$cd /usr/local/hadoop
#建立input目錄,複製執行/usr/local/hadoop/etc/hadoop/下所有xml檔案到該目錄下
/usr/local/hadoop$ sudo mkdir input
/usr/local/hadoop$ sudo cp etc/hadoop/*.xml input 
#執行示例,檢測input中符合' '中正則匹配規則的單詞出現的次數(這裡為dfs開頭的單詞)
/usr/local/hadoop$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
#檢視結果
/usr/local/hadoop$ cat output/*

如果正常執行,看到success即成功。hadoop下會自動生成一個output資料夾來存放結果,但是下次執行時不會自動覆蓋,再次執行示例時會報錯。要先把上次的結果刪掉。

/usr/local/hadoop$ sudo rm -R output

我配置過程中沒出錯,參考部落格中提到可能會提示Java之類的錯誤,則需要配置hadoop-env.sh檔案
參考:
http://www.thebigdata.cn/Hadoop/15906.html(也是裝hadoop的完整過程的介紹,看它可能比看我的要快)

下一篇繼續。