Hadoop完全分布式配置集群

前提条件:客户机已安装并配置好环境变量

如果需要配置客户机,请查看Hadoop完全分布式集群之CentOS配置

0. 集群规划

hadoop101 hadoop102 hadoop103
HDFS NameNode / DataNode DataNode SecondaryNameNode / DataNode
YARN NodeManager ResourceManager / NodeManager NodeManager

1. 配置ssh

cd ~/.ssh/ 进入.ssh目录下
ssh-keygen -t rsa 生产密钥对,按三次回车
ssh-copy-id hadoop101 / hadoop102 / hadoop103 将公钥拷贝到三台服务器上

2. 编写集群分发脚本

vim ~/bin/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 in hadoop101 hadoop102 hadoop103
do
    echo ------------------- $host --------------
    rsync -av $pdir/$fname $user@$host:$pdir
done

chmod 777 xsync 为分发脚本添加权限

3. 配置集群

3.1 核心配置 core-site.xml

  1. 指定HDFS的NameNode地址
  2. 指定Hadoop运行时产生文件的目录

vim core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property>
	  <name>fs.defaultFS</name>
      <value>hdfs://hadoop101:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

3.2 HDFS配置

hadoop-env.sh

  1. 配置hadoop-env.sh中的jdk环境变量

hdfs-site.xml

  1. 配置HDFS的副本数
  2. 配置HDFS的SecondaryNameNode

vim hadoop-env.sh

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

vim hdfs-site.xml

<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop103:50090</value>
</property>

3.3 YARN配置

yarn-env.sh

  1. 在sh中配置jdk环境变量

yarn-site.xml

  1. 配置Reducer获取数据的方式
  2. 指定YARN的ResourceManager的地址

vim yarn-env.sh

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

vim yarn-site.xml

<!-- Reducer获取数据的方式 -->
<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop102</value>
</property>

3.4 MR配置

mapred-env.sh

  1. 配置jdk 的环境变量

mapred-site.xml

  1. 指定MR运行在Yarn上

vim mapred-env.sh

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

vim mapred-sire.xml


<!-- 指定MR运行在Yarn上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>

3.5 JobHistory配置

vim mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop101:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop101:19888</value>
</property>

3.6 配置日志的聚集

注意:开启日志聚集功能,如果已启动RM/NM, 需要重新启动NodeManager 、ResourceManager和HistoryManager。

vim yarn-site.xml

<!-- 日志聚集功能使能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

4. 配置集群slaves

vim hadoop-2.7.2/etc/hadoop/slaves

hadoop101
hadoop102
hadoop103

5. 集群分发

xsync hadoop-2.7.2/

6. 集群群起

  1. 在hadoop101 :如果时第一次启动,则需要初始化集群;不是请跳过
    bin/hdfs namenode -format
  2. 在hadoop101 启动HDFS
    sbin/start-dfs.sh
  3. 在hadoop101 启动JobHistory
    sbin/mr-jobhistory-daemon.sh start historyserver
  4. 在hadoop102 启动YARN
    sbin/start-yarn.sh
  5. Web查看
    http://hadoop101:50070 查看HDFS
    http://hadoop102:8088 查看YARN
    http://hadoop101:19888 查看历史服务器

7. 配置时间同步

切换到root用户下操作 root@hadoop101
vim /etc/ntp.conf

a)修改1(授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap


b)修改2(集群在局域网中,不使用其他互联网上的时间)
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst为
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst


c)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10




修改/etc/sysconfig/ntpd 文件

vim /etc/sysconfig/ntpd
末行+++

  SYNC_HWCLOCK=yes

重启ntpd服务

service ntpd restart

设置ntpd服务开机启动

chkconfig ntpd on

同步时间服务器时间

crontab -e

	*/10 * * * * /usr/sbin/ntpdate -u hadoop101
发布了24 篇原创文章 · 获赞 27 · 访问量 6950

猜你喜欢

转载自blog.csdn.net/qq_39261894/article/details/104384189