hadoop集羣搭建

兩臺虛擬機

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
發佈了25 篇原創文章 · 獲贊 21 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章