64bit Centos6.4搭建hadoop-2.5.1

64bit Centos6.4搭建hadoop-2.5.1

1、分佈式環境搭建

  採用4檯安裝Linux環境的機器來構建一個小規模的分佈式集羣。

        其中有一臺機器是Master節點,即名稱節點,另外三臺是Slaver節點,即數據節點。這四臺機器彼此間通過路由器相連,從而實驗相互通信以及數據傳輸。

2、集羣機器詳細信息

  2.1 hadoop版本:

    2.5.1

  2.2 master服務器

詳細信息

機器名稱

Hamster

IP

192.168.1.193

USER

hadoop

PASSWORD

****


  2.3 slave1服務器

詳細信息

機器名稱

slave1

IP

192.168.1.194

USER

hadoop

PASSWORD

****

  2.4 slave2服務器

詳細信息

機器名稱

slave2

IP

192.168.1.194

USER

hadoop

PASSWORD

****

  2.5 slave3服務器

詳細信息

機器名稱

slave3

IP

192.168.1.195

USER

hadoop

PASSWORD

****

 

3、SSH無密碼驗證配置

    Hadoop運行過程中需要管理遠端Hadoop守護進程,在Hadoop啓動以後,NameNode是通過SSH(Secure Shell)來啓動和停止各個DataNode上的各種守護進程的。這就必須在節點之間執行指令的時候是不需要輸入密碼的形式,故我們需要配置SSH運用 無密碼公鑰認證的形式,這樣NameNode使用SSH無密碼登錄並啓動DataName進程,同樣原理,DataNode上也能使用SSH無密碼登錄到 NameNode。

  3.1 安裝和啓動SSH協議

    安裝ssh和rsync

    yum install openssh.x86_64 openssh-clients.x86_64 安裝SSH協議
    yum install rsync (rsync是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件)
    service sshd restart 啓動服務
  3.2 配置Master無密碼登錄所有Salve

    1)這條命是生成其無密碼密鑰對,詢問其保存路徑時直接回車採用默認路徑。生成的密鑰對:id_rsa和id_rsa.pub,默認存儲在"/home/hadoop/.ssh"目錄下    

    ssh-keygen -t rsa -P ''

     2)接着在Master節點上做如下配置,把id_rsa.pub追加到授權的key裏面去。

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

    3)修改權限

    chmod -R 700 .ssh
    chmod 600 .authorized_keys

    4)修改SSH配置文件"/etc/ssh/sshd_config"的下列內容

     RSAAuthentication yes # 啓用 RSA 認證
     PubkeyAuthentication yes # 啓用公鑰私鑰配對認證方式
     AuthorizedKeysFile .ssh/authorized_keys # 公鑰文件路徑(和上面生成的文件同)
     service sshd restart

    5)驗證localhost是否可以無密碼登錄 

     ssh localhost

    6)配置slave無密碼登錄,把公鑰複製所有的Slave機器上

     scp ~/.ssh/id_rsa.pub [email protected]:~/(將id_rsa.pub複製到slave機器上面)
     mkdir ~/.ssh(創建.ssh)
     chmod 700 ~/.ssh
     cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
     chmod 660 ~/.ssh/authorized keys

     7) 執行第4-5步驟

4、jdk的安裝

  配置所有機器jdk

  下載jdk,減壓到目錄下面,配置jdk環境

    vi /etc/profile
    #set java environment
    export JAVA_HOME=/opt/jdk1.7.0_51/
    export JRE_HOME=/opt/jdk1.7.0_51/jre
    exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    source /etc/profile

5、Hadoop集羣安裝

  所有的機器上都要安裝hadoop,現在就先在Master服務器安裝,然後其他服務器按照步驟重複進行即可。安裝和配置hadoop需要以"root"的身份進行。

  5.1 安裝hadoop

    下載hadoop-2.5.1.tar.gz

    減壓成/opt/hadoop

  5.2配置hadoop到環境變量中

    vi /etc/profile
    # set hadoop path
    export HADOOP_HOME=/opt/hadoop
    export PATH=$PATH :$HADOOP_HOME/bin
    source /etc/profile


5.3 配置以下7個文件

~/opt/hadoop/etc/hadoop/hadoop-env.sh
~/opt/hadoop/etc/hadoop/yarn-env.sh
~/opt/hadoop/etc/hadoop/slaves
~/opt/hadoop/etc/hadoop/core-site.xml
~/opt/hadoop/etc/hadoop/hdfs-site.xml
~/opt/hadoop/etc/hadoop/mapred-site.xml
~/opt/hadoop/etc/hadoop/yarn-site.xml

以上個別文件默認不存在的,可以複製相應的template文件獲得。

配置文件1:hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/opt/jdk1.7.0_51/)

配置文件2:yarn-env.sh

修改JAVA_HOME值(exportJAVA_HOME=/opt/jdk1.7.0_51/)

配置文件3:slaves (這個文件裏面保存所有slave節點)

寫入以下內容:
slave1
slave2
slave3
配置文件4:core-site.xml
<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hmaster:9000</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>4096</value>
  </property>
</configuration>
配置文件5:hdfs-site.xml
<configuration>
  <property>
    <name>dfs.nameservices</name>
    <value>hadoop-cluster1</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hmaster:9001</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///opt/hadoop/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///opt/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>

配置文件6:mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobtracker.http.address</name>
    <value>hmaster:50030</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hmaster:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hmaster:19888</value>
  </property>
</configuration>

配置文件7:yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>hmaster:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>hmaster:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>hmaster:8031</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>hmaster:8033</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hmaster:8088</value>
  </property>
</configuration>

5.4、複製到其他slave

scp -r /opt/hadoop root@slave1:/opt
scp -r /opt/hadoop root@slave2:/opt
scp -r /opt/hadoop root@slave3:/opt

5.5、啓動驗證

  啓動hadoop

  進入安裝目錄: cd  /opt/hadoop

  格式化namenode:./bin/hdfs namenode –format

  啓動hdfs: ./sbin/start-dfs.sh

  使用jps查看,

  此時在hmaster上面運行的進程有:namenode secondarynamenode

  slave1/2/3上面運行的進程有:datanode

  啓動yarn: ./sbin/start-yarn.sh

  使用jps查看,

  此時在hmaster上面運行的進程有:namenode secondarynamenode resourcemanager

  slave1/2/3上面運行的進程有:datanode nodemanager

  查看集羣狀態:./bin/hdfs dfsadmin –report

  查看文件塊組成:  ./bin/hdfsfsck / -files -blocks

  查看HDFS:    http://16.187.94.161:50070

  查看RM:    http:// 16.187.94.161:8088


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章