環境
虛擬機器:VirtualBox
Ubuntu:14.04
hadoop:2.6
安裝
1、建立hadoop使用者
sudo useradd -m hadoop -s/bin/bash
【Ubuntu終端複製粘貼快速鍵】
【在Ubuntu終端視窗中,複製粘貼的快速鍵需要加上shift,即粘貼是 ctrl+shift+v。】
使用如下命令修改密碼,按提示輸入兩次密碼 hadoop :
sudo passwd hadoop
可為 hadoop 使用者增加管理員權限,方便部署,避免一些對新手來說比較棘手的許可權問題:
sudo adduser hadoop sudo
2、切換到hadoop使用者下
su hadoop
3、安裝SSH server、配置SSH無密碼登陸
叢集、單節點模式都需要用到SSH登陸(類似於遠程登陸,你可以登入某台Linux電腦,並且在上面運行命令),Ubuntu 預設已安裝了 SSH client,此外還需要安裝 SSH server:
sudo apt-get install openssh-server
安裝後,可以使用如下命令登陸本機:
ssh localhost
此時會有提示(SSH首次登陸提示),輸入 yes 。然後按提示輸入密碼hadoop,這樣就登陸到本機了。
但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。
首先退出剛才的 ssh,就回到了我們原先的終端視窗,然後利用 ssh-keygen 產生密鑰,並將密鑰加入到授權中:
exit # 退出剛才的 ssh localhost cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost ssh-keygen -t rsa # 會有提示,都按斷行符號就可以 cat id_rsa.pub >> authorized_keys # 加入授權
此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸
4、安裝Java環境
Java環境可選擇 Oracle 的 JDK,或是 OpenJDK,按http://wiki.apache.org/hadoop/HadoopJavaVersions中說的,新版本在 OpenJDK 1.7 下是沒問題的。為圖方便,這邊直接通過命令安裝 OpenJDK 7。
sudo apt-get install openjdk-7-jre openjdk-7-jdk
OpenJDK 預設的安裝位置為: /usr/lib/jvm/java-7-openjdk-amd64 (32位系統則是 /usr/lib/jvm/java-7-openjdk-i86 ,可通過命令dpkg -L openjdk-7-jdk查看到)。安裝完後就可以使用了,可以用java -version 檢查一下。
接著需要配置一下 JAVA_HOME 環境變數,為方便,我們在 ~/.bashrc 中進行設定(擴充閱讀:設定Linux環境變數的方法和區別):
vi ~/.bashrc
在檔案最前面添加如下單獨一行(注意 = 號前後不能有空格),並儲存:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
如下圖所示(該檔案原本可能不存在,內容為空白,這不影響):
配置JAVA_HOME變數
接著還需要讓該環境變數生效,執行如下代碼:
source ~/.bashrc# 使變數設定生效
echo $JAVA_HOME# 檢驗是否設定正確
設定正確的話,會輸出如下結果:
成功配置JAVA_HOME變數 5、安裝hadoop
進入hadoop所在的目錄將其解壓到/usr/local/hadoop
sudo tar -zxvf ./hadoop-2.6.0.tar.gz -C /usr/local # 解壓到/usr/local中 cd /usr/local/ sudo mv ./hadoop-2.6.0/ ./hadoop # 將檔案夾名改為hadoop sudo chown -R hadoop:hadoop ./hadoop # 修改檔案許可權
Hadoop解壓後即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示命令用法:
cd ./hadoop
./bin/hadoop
6、hadoop偽分布配置
Hadoop 的設定檔位於 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個設定檔core-site.xml 和hdfs-site.xml 。Hadoop的設定檔是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現。
修改設定檔 core-site.xml (vim /usr/local/hadoop/etc/hadoop/core-site.xml),將當中的
<configuration></configuration>
修改為下面配置:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property></configuration>
同樣的,修改設定檔 hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property></configuration>
修改設定檔 yarn-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置完成後,執行 namenode 的格式
bin/hdfs namenode -format
成功的話,會看到successfully formatted 的提示,且倒數第5行的提示如下,Exitting with status 0 表示成功,若為Exitting with status 1 則是出錯
接著開啟如下進程
sbin/start-dfs.sh
sbin/start-yarn.sh
至此,所有的已經安裝完事,且所有服務都已經啟動
驗證
http://127.0.0.1:8088
http://localhost:50070
http://127.0.0.1:19888
提示
每次進入虛擬機器系統時必須先進入hadoop使用者下(su hadoop),才能開啟服務,否則會報錯
參考文章:www.powerxing.com/install-hadoop/
QQ交流:1923361654
hadoop完全分布式部署參考:http://blog.csdn.net/gamer_gyt/article/details/51991893
hadoop單機版部署參考:http://blog.csdn.net/gamer_gyt/article/details/46545303