1. 程式人生 > 實用技巧 >hadoop叢集配置

hadoop叢集配置

1.叢集部署規劃

hadoop11 hadoop12 hadoop13
HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN NodeManager

ResourceManager

NodeManager

NodeManager

2.配置叢集

  使用SecureCRT遠端工具連線虛擬機器

  a.核心配置檔案

  配置core-site.xml ($HADOOP/etc/hadoop目錄下)

  

  在該檔案中編寫如下配置

  <!-- 指定HDFS中NameNode的地址 -->

  <property>

  <name>fs.defaultFS</name>

  <value>hdfs://hadoop11:9000</value>

  </property>

  <!-- 指定Hadoop執行時產生檔案的儲存目錄 -->

  <property>

  <name>hadoop.tmp.dir</name>

  <value>/opt/module/hadoop-2.7.2/data/tmp</value>

  </property>

  b.HDFS配置檔案

  配置hdfs-env.sh($HADOOP/etc/hadoop目錄下)

  將JAVA_HOME進行配置

  

  配置hdfs-site.xml($HADOOP/etc/hadoop目錄下)

  <property>

    <name>dfs.replication</name>

    <value>3</value>

  </property>

  <!-- 指定Hadoop輔助名稱節點主機配置 -->

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>hadoop13:50090</value>

  </property>

  c.YARN配置檔案

  配置yarn-env.sh($HADOOP/etc/hadoop目錄下)

  export JAVA_HOME=/opt/module/jdk1.8.0_144

  配置yarn-site.xml($HADOOP/etc/hadoop目錄下)

  <!-- Reducer獲取資料的方式 -->

  <property>

  <name>yarn.nodemanager.aux-services</name>

  <value>mapreduce_shuffle</value>

  </property>

  <!-- 指定YARN的ResourceManager的地址 -->

  <property>

   <name>yarn.resourcemanager.hostname</name>

  <value>hadoop12</value>

  </property>

  d.MapReduce配置檔案

  配置mapred-env.sh($HADOOP/etc/hadoop目錄下)

  export JAVA_HOME=/opt/module/jdk1.8.0_144

  將 mv mapred-site.xml.template mapred-site.xml

  配置mapred-site.xml($HADOOP/etc/hadoop目錄下)

  <!-- 指定MR執行在Yarn上 -->

  <property>

  <name>mapreduce.framework.name</name>

  <value>yarn</value>

  </property>

3.在叢集上分發配置好的Hadoop配置檔案

  系統如未安裝rsync,先執行以下命令進行安裝

    yum -y install rsync

  建立叢集分發指令碼

    touch xsync

    vim xsync

    檔案內容如下

#!/bin/bash

#1 獲取輸入引數個數,如果沒有引數,直接退出

pcount=$#

if((pcount==0)); then

echo no args;

exit;

fi

#2 獲取檔名稱

p1=$1

fname=`basename $p1`

echo fname=$fname

#3 獲取上級目錄到絕對路徑

pdir=`cd -P $(dirname $p1); pwd`

echo pdir=$pdir

#4 獲取當前使用者名稱稱

user=`whoami`

#5 迴圈

for((host=11; host<14; host++)); do

echo ------------------- hadoop$host --------------

rsync -rvl $pdir/$fname $user@hadoop$host:$pdir

done

  修改指令碼 xsync 具有執行許可權

    chmod 777 xsync

  

  將剛修改的hadoop檔案分發給其它虛擬機器

  進行hadoop下的etc目錄

  xsync /hadoop

  注意:如果將xsync放到/home/hadoop/bin目錄下仍然不能實現全域性使用,

   檢視 echo $PATH,是否有配置下面圈起的路徑

  

  如沒有也可以將xsync移動到/usr/local/bin目錄下

  到虛擬機器hadoop12、hadoop13虛擬機器上的檔案,確認是否跟最新的配置檔案一致

到此就完成hadoop配置檔案的配置