首页 > 技术文章 > hadoop集群配置

realman9527 2020-07-21 14:38 原文

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

  配置hadoop-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配置文件的配置

 

  

 

推荐阅读