CentOS版hadoop完全分布初步搭建


(之前學習時的記錄)

整理一下在搭建hadoop完全分布模式時的相關步驟,及搭建過程中遇到的一些問題。

相關環境:

  環境:基於win7的VM中CentOS64位系統

  台數:3台;分別為master、slave1、slave2

  hadoop版本:CDH3-U6

  所用到的工具:Xshell(遠程鏈接管理工具)、filezilla(可以遠程移動文件)

第一部分:在VM中安裝CentOS

1、下載

  VM自己從網上下載,盡量不要裝最新版本的;CentOS選擇后綴為iso版本下載

2、安裝

  VM自己安裝;

  安裝好VM后,開始安裝CentOS;相關安裝可以參考鏈接如下:

       http://www.91linux.com/html/2014/CentOS_0415/9725.html

  剛開始安裝可以照着教程來裝,參考教程上安裝的是Desktop(桌面版)的,比較熟練的話盡量安裝成Basic Serve版,相關步驟一樣,只是后者沒有操作界面,完全是代碼行。

3、每個CentOS信息

     對於初步搭建hadoop完全分布來說,安裝三台Linux系統已足以。對於此,我分別安裝了命名為master、slave1、slave2三台虛擬機,為Basic Serve版,相關配置后續再說。

第二部分、在CentOS中搭建hadoop集群

1、修改主機名和用戶名(root用戶執行,所有節點都需執行)

    1)對上一步已搭建完的三個虛擬機,分別增加hadoop用戶(root用戶執行,所有節點都執行):

    

  [root@localhost ~]#useradd hadoop

  #添加以hadoop為用戶名的用戶

  [root@localhost ~]#passwd hadoop

  #修改該用戶密碼,密碼統一設置為hadoop

    2)修改主機名(root用戶,所有節點都需要執行)

  [root@localhost ~]#vi /etc/sysconfig/network

  #使用VI對network文件進行修改,文件打開后會出現:

  NETWORK=yes

  HOSTNAME=localhost.localhost

  按鍵盤的I鍵進行編輯,對於完全分布式來說,分別修改其“localhost.localhost”為“master”“slave1”“slave2”,修改完之后按Esc+Shift:+wq進行保存退出。

    

  3)節點之間互訪配置(這一步可以在配置完IP地址后在執行,所有節點均執行)

  [root@localhost ~]#vi /etc/hosts

  #打開host文件,在文件末尾追加:

  192.168.1.10    master

  #masterIP地址與主機名

  192.168.1.11   slave1

  # slave1IP地址與主機名

  192.168.1.12   slave2

  # slave2IP地址與主機名

2、配置靜態IP(root用戶執行,所有節點都需執行)

    1)相關注意:在安裝上CentOS后,會存在一個如何與宿主機進行正常通信的問題,在這一步中,首先在VM的網絡虛擬配置中找到網絡鏈接方式,選擇為“橋接”模式,並選擇具體網卡,

接着在系統設置中,設置虛擬機的連接方式為“橋接”;打開宿主機(Win7)中的cmd,輸入ipconfig查看宿主機網段並記下,我的這台網段是10.129.49.xxx,所以在虛擬機橋接模式下,

所有虛擬機IP都應設為10.129.49.xxx(所有節點后邊的數都不能相同)。

    2)修改ifcfg-eth0文件(eth0代表網卡,可能有的虛擬機的網卡會不同,具體為哪個視虛擬機而定,root用戶執行,所有節點都需執行)

  在root用戶下,輸入

  [root@localhost ~]#cd /etc/sysconfig/network-scripts

  #進入network-scripts目錄

  [root@localhost ~]#ll

  #查看目錄下所有文件,看你的網卡是否是eth0,如果不是,視具體虛擬機而定

  [root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0

  #進ifcfg-eth0文件,並進行編輯修改:(紅色為修改部分)

     DEVICE=eth0

     BOOTPROTO=static

     NM_CONTROLLED=yes

     ONBOOT=yes

  IPADDR=192.168.1.10

     #靜態IP地址

  NETMASK=255.255.255.0

     #掩碼地址

  GATWAY=192.168.1.1

     #網關地址

    3)修改UUID

  [root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0

  #刪除MAC地址行

  [root@localhost ~]#rm  -rf  /etc/udev/rules.d/70-persistent-net.rules

  #刪除網卡和MAC地址綁定文件

    4)重啟並查看IP

  [root@localhost ~]#reboot

  [root@localhost ~]#ifconfig

  打開宿主機的cmd,輸入ping 192.168.1.10查看是否能進行通信,如果能則表示配置成功;分別配置slave1、slave2。

3、使用Xshell進行遠程登錄

  使用Xshell登錄是因為CentOS自帶界面不可更改,也無法調整字體大小

  對配置好IP的虛擬機用Xshell進行遠程登錄(即IP地址、用戶名、用戶密碼),登陸后設置界面,調整字體大小。

4、配置SSH無密碼鏈接

    1)永久關閉防火牆(root用戶)

  [root@localhost ~]#chkconfig iptables off

    2)啟動SSH服務命令(root用戶)

  [root@localhost ~]#service ssh restart

  #重啟SSH

  [root@localhost ~]#rpm -qa | grep openssh

  #檢查SSH是否安裝成功

  如果出現下面的信息:

  openssh-askpass-5.3p1-81.e16.x86_64

  openssh-5.3p1-81.e16.x86_64

  openssh-clients-5.3p1-81.e16.x86_64

  openssh-server-5.3p1-81.e16.x86_64

  再執行命令:

  [root@localhost ~]#rpm -qa | grep rsync

  如果出現以下信息:

  rsync-3.0.6-9.e16.x86_64

  說明SSH安裝成功。

    3)生成SSH公匙(hadoop用戶)

  在主節點即master上執行

  [hadoop@master ~]$ssh-keygen -t rsa

  #遇到提示回車即可,最后顯示圖形為公匙的指紋加密

  [hadoop@master ~]$ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@master

  [hadoop@master ~]$ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1

  [hadoop@master ~]$ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave2

  #將公匙發至從節點的slave1、slave2用戶

 

  注意:對於完全分布來說,只在主節點配置SSH無密碼鏈接即可,之后把公匙發至從節點

    4)驗證安裝(hadoop用戶)

  [hadoop@master ~]$ssh master

  [hadoop@master ~]$ssh slave1

  [hadoop@master ~]$ssh slave2

  #如果沒有出現輸入密碼提示則表示安裝成功,執行這條命令后會遠程登錄從節點,返回主節點需執行exit

  若按照上面步驟執行任然不成功,有可能是/home/hadoop/.ssh文件夾的權限問題。以hadoop用戶執行

  [hadoop@master ~]$chmod 700 /home/hadoop/.ssh

  [hadoop@master ~]$chmod 700 /home/hadoop/.ssh/authorized_keys

5、安裝JDK(root用戶,所有節點都需執行)

  CentOS預裝的是Open JDK,但還是要推薦用Oracle JDK,下載地址為:

      http://www.oracle.com/technetwork/Java/Javase/downloads/index.html

    1)修改/opt文件夾權限

  [root@localhost ~]#chown -R hadoop /opt

    2)卸載Open JDK

  [root@localhost ~]#java -version

  #查看Java版本

  [root@localhost ~]#rpm -qa | grep java

  #查看Java詳細信息

  顯示如下信息:

  java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
  java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

  卸載:

  [root@localhost ~]#rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
  [root@localhost ~]#rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

  或者執行指令卸載:

  [root@localhost ~]#yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

  [root@localhost ~]#yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

    3)安裝Oracle JDK(hadoop用戶也可)

  在第1)步給/opt文件夾加權限后,就可以使filezilla工具直接把在Windows中的JDK安裝包直接拖至/opt文件夾下,然后進行解壓:

  [root@localhost ~]#tar -xzvf jdk-6u43-linux-x64.tar.gz

  #解壓JDK至/opt文件夾下

  解壓完后,刪除JDK安裝包

  [root@localhost ~]#rm -rf jdk-6u43-linux-x64.tar.gz

  #移除JDK安裝包

    4)配置環境變量

  [root@localhost ~]#vi /etc/profile

  #對profile文件進行編輯

  對文件追加:

  export JAVA_HOME=/opt/jdk1.6.0

  export PATH=$PATH:$JAVA_HOME/bin

    

  使環境變量立即生效,執行命令:

  [root@localhost ~]#source /etc/profile

    5)驗證安裝

  [root@localhost ~]#java -version

  出現如下信息,則安裝成功:

  #查看Java版本

  Java version "1.6.0_31"

  Java(TM) SE Runtime Environment (build 1.6.0_31-b04)

  Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01,mixed mode)

    

6、配置hadoop(hadoop用戶,只在主節點執行)

  前面已經對/opt權限進行過修改,這一步就直接在/opt文件中安裝配置即可;

  利用filezilla工具把安裝包發送至/opt文件夾下(只在hadoop主節點即master節點執行),執行解壓縮。

    

    1)解壓文件

    

  [hadoop@master ~]$tar -zxvf hadoop-0.20.2-cdh3u6.tar.gz

  #解壓縮hadoop安裝包

    2)修改配置文件(hadoop用戶在主節點執行)

  Hadoop的配置文件都在/opt/ hadoop-0.20.2-cdh3u6/conf下,對其中主要文件進行配置:

    

    修改hadoop-env.sh

    在文件hadoop-env.sh末尾追加環境變量

    export JAVA_HOME=/opt/jdk1.6.0

    export HADOOP_HOME=/opt/hadoop-0.20.2-cdh3u6

    修改core-site.xml

      修改core-site.xml為:

  <configuration>

    <property>

      <name>fs.default.name</name>

      <value>hdfs://master:9000</value>

    </property>

  </configuration>

  修改hdfs-site.xml

  修改hdfs-site.xml為:

<configuration>

<property>

      <name>dfs.replication</name>

      <value>3</value>

</property>

  </configuration>

      <name>dfs.name.dir</name>

      <value>/opt/hdfs/name</value>

</property>

    <property>

      <name>dfs.data.dir</name>

      <value>/opt/hdfs/data</value>

    </property>

</configuration>

  修改mapred-site.xml

  修改mapred-site.xml為:

 <configuration>

<property>

      <name>mapred.job.tracker</name>

      <value>master:9001</value>

    </property>

</configuration>

    3)修改masters文件

  修改masters文件為:

  master

    4)修改slaves文件

  修改slaves文件為:

  slave1

  slave2

    5)將安裝文件發送至從節點

    利用scp命令將安裝文件夾分發到從節點的相同路徑下:

  [hadoop@master ~]$scp -r /opt/hadoop-0.20.2-cdh3u6 hadoop@slave1:/opt

  [hadoop@master ~]$scp -r /opt/hadoop-0.20.2-cdh3u6 hadoop@slave2:/opt

 

  至此,Hadoop安裝配置工作全部完成,為了能在任何路徑下使用Hadoop命令,還需要配置環境變量(root用戶執行,所有節點都需要執行)。對文件/etc/profile追加如下信息:

  export HADOOP_HOME=/home/hadoop/hadoop-0.20.2-cdh3u6

  export PATH=$PATH:$HADOOP_HOME/bin

     

  修改完后,執行命令行(root用戶執行,所有節點都需要執行):

  [root@localhost ~]#source /etc/profile

7、格式化HDFS

  在第一次啟動Hadoop之前,必須先將HDFS格式化。執行命令:

  [hadoop@master ~]$hadoop namenode -format

  #如果別的路徑執行不了,則進入/opt/hadoop-0.20.2-cdh3u6/bin文件下執行

  按照提示輸入Y,格式化成功后會出現格式化成功的信息:

16/1/20 10:50:51 INFO common.Storage: Storage directory /opt/hdfs/name has been successfully formatted.

8、啟動Hadoop並驗證安裝

    1)啟動Hadoop

  首先賦予腳本可執行權限(hadoop用戶所有節點都需要執行),執行命令:

  [hadoop@master ~]$chmod +x -R /opt/hadoop-0.20.2-cdh3u6/bin

  然后執行啟動腳本(hadoop用戶,主節點執行),執行命令:

  [hadoop@master ~]$./opt/ hadoop-0.20.2-cdh3u6/bin/start-all.sh

    

  執行完成后,執行jps命令查看進程是否啟動成功,若成功;

  [hadoop@master ~]$jps

  主節點會出現:

  NameNode

  JobTracker

  SecondaryNameNode

  slave1節點出現:

  DateNode

  TaskTracker

  slave2節點出現:

  DateNode

  TaskTracker

9、驗證是否安裝成功

    在新安裝的集群上運行一個MapReduce程序,判斷集群是否安裝成功,Hadoop例庫中自帶多中已經寫好的可以運行的MR程序,此處,此處以最簡單的單詞計數程序WordCount進行集群平台驗證:

    1)在集群的任何一台電腦上創建一個文本文件命名為words,這里以master為例。對文本文件添加內容:如“data mining on data warehouse”,如果程序正常運行,最終結果為:

  data  2

  mining  1

  on  1

  warehouse  1

    2)在HDFS中新建目錄並上傳本地文件,執行命令如下:

  #HDFS中新建目錄

  [hadoop@master ~]$hadoop dfs –mkdir /user/hadoop/input

  #將本地文件上傳

  [hadoop@master ~]$hadoop dfs –put /opt/words /user/hadoop/input

    3)運行程序並查看結果

  #運行單詞統計程序

  [hadoop@master ~]$hadoop jar /opt/hadoop-0.20.2/hadoop-examples-0.20.2- cdh3u6.jar wordcount /user/hadoop/input /user/hadoop/output

  #查看程序輸出

  [hadoop@master ~]$hadoop dfs –cat /user/hadoop/output/part-r-00000

 

  屏幕打印為:

  data  2

  mining  1

  on  1

  warehouse  1

  表示集群可以正常運行,到此Hadoop安裝結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM