兩臺虛擬機
master 192.168.32.128
slave1 192.168.32.129
1.安裝linux系統(我是在Ubuntu系統在搭建的)
(可以根據自己的需要創建一個用戶,也可以不創建,由於博主用的是虛擬機,就不創建了)
2.設置hosts
sudo vim /etc/hosts
將master與slave1的ip信息加入到hosts文件中(master與slave1中都要設置)
192.168.32.128 master
192.168.32.129 slave1
3.替換源
sudo vim /etc/apt/source.list
//下面是我用的源,還挺快
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
更新源
sudo apt-get update
可以安裝vim編輯器,對於後面更改配置非常方便
sudo apt-get install vim
4.安裝jdk
sudo apt-get install openjdk-7-jdk
配置jdk 環境變量
sudo vim /etc/profile
環境變量配置
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
其中JAVA_HOME和JRE_HOME的路徑改爲你自己的jdk的路徑
可以通過以下命令查看自己jdk的路徑
dpkg -L openjdk-7-jdk | grep '/bin/javac'
該命令會輸出一個路徑,除去路徑末尾的 “/bin/javac”,剩下的就是正確的路徑了
如輸出路徑爲 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac,則我們需要的路徑爲 /usr/lib/jvm/java-7-openjdk-amd64。
更改完成後執行以下命令,使文件更改生效
source /etc/profile
查看jdk是否配置好了
java -version
會出現java的版本信息,就說明配置好了
5.安裝ssh,並配置ssh無密碼登錄
sudo apt-get install openssh-server
安裝以後可以使用以下命令登錄
ssh localhost
此時會有如下提示(SSH首次登陸提示),輸入 yes 。然後按提示輸入密碼 hadoop,這樣就登陸到本機了
設置無密碼登錄
首先退出剛纔的 ssh,就回到了我們原先的終端窗口,然後利用 ssh-keygen 生成密鑰,並將密鑰加入到授權中:
exit
cd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
再用 ssh localhost 就可以無密碼登錄了
master與節點slave1都要實現無密碼登錄
接着在 Master 節點上將公匙傳輸到 Slave1 節點:
scp ~/.ssh/id_rsa.pub slave1p@slave1:/home/hadoop/
接着在 Slave1 節點上,將 ssh 公匙加入授權:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完就可以刪掉了
如果有其他 Slave 節點,也要執行將 Master 公匙傳輸到 Slave 節點、在 Slave 節點上加入授權這兩步。
這樣,在 Master 節點上就可以無密碼 SSH 到各個 Slave 節點了,可在 Master 節點上執行如下命令進行檢驗
ssh slave1
6.安裝hadoop
Hadoop 2 可以通過 鏈接1 或者 鏈接2 下載
hadoop配置文件配置(都在/home/wh/hadoop/etc/hadoop/下)
修改hadoop-env.sh
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/wh/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
修改hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/wh/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/wh/hadoop/tmp/dfs/data</value>
</property>
</configuration>
修改mapred-site.xml(cp mapred-site.xml.template mapred-site.xml)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
將hadoop文件複製到slave1節點,並在slave1節點執行解壓
master上的執行:
tar -zcf ~/master.master.tar.gz ./hadoop # 先壓縮再複製
cd ~
scp ./master.master.tar.gz slave1:/home/hadoop
Slave1 節點上執行:
sudo tar -zxf ~/master.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop
同樣,如果有其他 Slave 節點,也要執行將 master.master.tar.gz 傳輸到 Slave 節點、在 Slave 節點解壓文件的操作。
首次啓動需要先在 Master 節點執行 NameNode 的格式化:
(在hadoop目錄下執行)
bin/hdfs namenode -format
接着可以啓動 hadoop 了,啓動需要在 Master 節點上進行:(任然在hadoop目錄下執行)
sbin/start-all.sh
sbin/mr-jobhistory-daemon.sh start historyserver
最後輸入jps命令即可查看hadoop啓動信息
jps
通過http://(master的Ip):50070 查看結果
通過以下命令關閉hadoop集羣
sbin/stop-all.sh
sbin/mr-jobhistory-daemon.sh stop historyserver