[hadoop]hadoop2.6徹底分佈式環境搭建

在通過幾天的環境搭建,終於搭建成功,其中對於hadoop的具體設置卻是沒有碰到不少問題,反而在hadoop各節點之間的通訊遇到了問題,並且還反覆了不少遍,光虛擬機就從新安裝了四、5次,可是當明白了問題以後才發現這都是無用功,有了問題應該找具體的解決方案,並非徹底的重裝,這樣不會明白問題是怎麼解決的,除了費時費力沒有多大的用處,接下來就把搭建的過程詳細敘述一下。html

環境配置: 計算機: CPU-I7 2630QM 6G內存 256G SSD 虛擬機: vmware workstation 11 系統: ubuntu 14.04 LTS 節點: 192.168.1.150 master 192.168.1.151 slave1 192.168.1.151    slave2
參考:
  http:
//www.aboutyun.com/thread-7684-1-1.html
  http://my.oschina.net/u/2285247/blog/354449
  http://www.aboutyun.com/thread-5738-1-1.html
  http://www.aboutyun.com/thread-6446-1-1.html
安裝步驟: 1、安裝虛擬機系統(安裝1個便可,其他的能夠經過克隆),並進行準備工做
2、安裝JDK,並配置環境變量 3、克隆虛擬機系統,並修改hosts、hostname
四、配置虛擬機網絡,使虛擬機系統之間以及和host主機之間能夠經過相互ping通。
5、配置ssh,實現節點間的無密碼登陸 
6、master配置hadoop,並將hadoop文件傳輸到slave節點
7、配置環境變量,並啓動hadoop,檢查是否安裝成功

一、安裝虛擬機系統,並進行準備工做java

  安裝虛擬機系統不用贅述,安裝vmware——新建虛擬機——典型——選擇鏡像——設置帳戶密碼——安裝位置——配置——安裝。node

  當虛擬機安裝成功後,默認的是nat模式,不要當即將網絡模式切換到橋接模式下,這時nat模式下應該能夠聯網,先安裝幾個軟件,之後須要用到,固然在橋接模式下也能夠聯網,可是橋接模式是要設置成靜態IP的,侷限性比較大,下載安裝完之後,接下來就不用聯網了。web

#切換到root模式下 #剛開始root是默認不開啓的,能夠利用以下命令對root密碼進行設置
sudo passwd root #如今在root模式先安裝vim,命令以下:
apt-get install vim #安裝ssh
apt-get install ssh #這個步驟是可選的,用於更新,以及將ssh相關都安裝
apt-get install openssh* apt-get update

二、安裝jdk,並配置環境變量apache

1)從oracle下載jdk安裝包,並將安裝包拖入到虛擬機當中ubuntu

2)經過cd命令進入到安裝包的當前目錄,利用以下命令進行解壓縮。vim

tar -zxvf jdk.....(安裝包名稱)

3)利用以下命令將解壓後的文件夾移到/usr目錄下 網絡

#注意,這樣移動到/usr之後就沒有jdk1.8...這個目錄了,是將這個目錄下的全部文件所有移動到/usr/java下,
mv jdk1.8...(文件夾名稱) /usr/java

4)配置環境變量oracle

#切換到root模式下
su - root #利用vim編輯/etc/profile(這個是對全體用戶都起做用的)
vim /etc/profile
#將一下兩句加入到其中,並保存退出
export PATH=$PATH:/usr/java/bin:/usr/java/jre/bin
export CLASSPATH=.:/usr/java/lib:/usr/java/jre/lib
#而後使profile生效
source /etc/profile
#試驗java、javac、java -version

三、克隆虛擬機並修改三個虛擬機的hosts、hostnameapp

1)克隆虛擬機時要注意必定要選擇完整克隆

2)修改hosts(三個虛擬機都要改)

#root下用vim打開hosts
vim /etc/hosts #將如下內容添加到hosts中
192.168.1.150 master 192.168.1.151 slave1 192.168.1.152    slave2

如圖:

3)修改hostname(三個虛擬機都要改)

#root下打開hostname
vim /etc/hostname #分別將每一個虛擬機改爲對應的name(master、slave一、slave2)

四、配置虛擬機網絡

  在安裝好虛擬機後,虛擬機有三種模式分別是nat模式、僅主機模式、橋接模式,此處對於此三種模式進行簡單介紹:

    nat模式:這是通nat地址轉換共享主機Ip的模式,在安裝好虛擬機後會發現有vmnet8虛擬網卡,這個網卡默認是nat模式,這時nat模式下的虛擬機至關於又組成一個局域網,而vmnet8至關於這個局域網的網關,在這種模式下,虛擬機之間能夠相互ping通,可是不能與主機通訊,由於主機與虛擬機之間有有一個vmnet8網卡。固然經過配置vmnet8網卡能夠實現通訊。

    僅主機模式:這種模式沒有地址轉換能力,各個虛擬機之間是相互獨立的,不能相互訪問,每一個虛擬機只能與主機通訊。

    橋接模式:這種模式是將虛擬網卡直接綁定到物理網卡上,能夠綁定多個地址,這裏是將網卡設置成混雜模式,而後實現能夠收發多個地址的消息。

  本人搭建環境採用的是橋接模式,這種模式擬真性更強一些,雖然有些麻煩。

  注意:要將三個虛擬機的ip與主機都處於同一個網段,而後實驗是否能夠Ping通

五、配置ssh,實現節點間的無密碼登陸 (注意關閉防火牆 ufw disable)

1)產生密鑰
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

2)導入authorized_keys

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

3)試驗看是否安裝成功

#查看是否有sshd進程
ps -e | grep ssh #嘗試登陸本地
ssh localhost

4)遠程無密碼登陸

#進入master的.ssh目錄
scp authorized_keys u0@slave1:~/.ssh/authorized_keys_master #u0是個人用戶名 #進入slave一、slave2的.ssh目錄
cat authorized_keys_master >>  authorized_keys

注意:第四步要在slave上重複,要使三者都可以無密碼相互登陸,重複完後能夠利用以下命令試驗,第一次須要輸入密碼綁定

ssh salve1(slave2)

注意:個人主機是鏈接的路由無線網絡,我遇到了一個問題,就是在虛擬機網絡重連後master能夠登陸slave2,可是過一會後就發現總是connection refused,就由於這個問題我還從新安裝了幾回,網絡上的方法都試了也無論用,後來發現,原來是個人虛擬機ip與路由局域網中的其餘機器Ip衝突,千萬要保證局域網內的Ip不要和虛擬機的ip衝突

六、master配置hadoop,並將hadoop文件傳輸到slave節點 

1)解包移動

#解壓hadoop包
tar -zxvf hadoop...
#將安裝包移到/usr目錄下
mv hadoop... /usr/hadoop

2)新建文件夾

#在/usr/hadoop目錄下新建以下目錄(root)
mkdir /dfs mkdir /dfs/name mkdir /dfs/data mkdir /tmp

3)配置文件:hadoop-env.sh(文件都在/usr/hadoop/etc/hadoop中)

修改JAVA_HOME值(export JAVA_HOME=/usr/java)
4)配置文件:yarn-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/java

5)配置文件:slaves

將內容修改成:

slave1
slave2

6)配置文件:core-site.xml

<configuration>
       <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
       </property>
       <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/usr/hadoop/tmp</value>
               <description>Abase for other temporary   directories.</description>
       </property>
        <property>
               <name>hadoop.proxyuser.u0.hosts</name>
               <value>*</value>
       </property>
       <property>
               <name>hadoop.proxyuser.u0.groups</name>
               <value>*</value>
       </property>
</configuration>

7)配置文件:hdfs-site.xml

<configuration>
       <property>
                <name>dfs.namenode.secondary.http-address</name>
               <value>master:9001</value>
       </property>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/usr/hadoop/dfs/name</value>
       </property>
      <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/usr/hadoop/dfs/data</value>
       </property>
       <property>
               <name>dfs.replication</name>
               <value>3</value>
        </property>
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
</configuration>

8)配置文件: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>

9)配置文件:yarn-site.xml

<configuration>
        <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
        <property>                                                                
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>master:8030</value>
       </property>
       <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
      </property>
      <property>
              <name>yarn.resourcemanager.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>

10)將hadoop傳輸到slave1和slave2根目錄

 scp -r /usr/hadoop u0@slave1:~/
七、配置環境變量,並啓動hadoop,檢查是否安裝成功
1)配置環境變量
#root模式編輯/etc/profile
vim /etc/profile #以上已經添加過java的環境變量,在後邊添加就能夠
export PATH=$PATH:/usr/java/bin:/usr/java/jre/bin:/usr/hadoop/bin:/usr/hadoop/sbin

2)啓動hadoop

#注意最後單詞帶‘-’
hadoop namenode -format start-all.sh

3)查看啓動進程

相關文章
相關標籤/搜索