一、hadoop 2.7.2 集群环境搭建

一、前提介绍

环境:centos7 虚拟机三台
软件:jdk1.8、hadoop2.7.2

环境准备:设置虚拟机静态ip、域名、关闭防火墙,这些操作就不举例了,网上搜索一下即可

我这里为了方便设置三台虚拟机为:hadoop102、hadoop103、hadoop104,这里域名需要在三机器上都配置,因为后续配置文件中使用这样的方式。

二、上传解压tar包,配置环境
  1. 上传jdk、hadoop 包到 /opt/software 目录下
  2. 分别解压到 /opt/module 目录下
  3. 配置jdk、hadoop环境变量
#1.编辑文件
[root@hadoop102 software]# vi /etc/profile

在profile文件末尾添加jdk路径:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

#2. source文件
[root@hadoop102 software]# source /etc/profile

#3. 测试配置
[root@hadoop102 software]# java
[root@hadoop102 software]# hadoop version

三台节点都需要配置



三、其它准备工作

1.ssh无密登录:避免访问其它节点是需要密码的繁琐

https://blog.csdn.net/qq_35241080/article/details/105850466

2.文件分发脚本:因为集群环境中大部分机器的配置文件配置是相同的,不可能所有的一台一台的机器去配置,需要在一台机器中配置完成将文件同步分发给其它节点服务器,然后在对应节点上修改部分配置即可

#进入用户bin目录下,此目录下的脚本可全局使用
[root@hadoop102 bin]# cd /root/bin/
#编写脚本
[root@hadoop102 bin]# 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 循环同步将102 文件同步到103、104
for((host=103; host<105; host++)); do
        echo --------------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done


[root@hadoop102 bin]# chmod 777 xsync

3.集群时间同步脚本

https://blog.csdn.net/qq_35241080/article/details/105850197

四、集群配置
  1. 集群规划
    NameNode:元数据
    SecondaryNameNode:数据备份
    ResourceManager:资源分配
    由于上面三个比较耗费资源,所以不能在同一台节点上
hadoop102hadoop103hadoop104
HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNode
YARNNodeManagerResourceManager、NodeManagerNodeManager
  1. 文件配置
    /opt/module/hadoop-2.7.2/etc/hadoop : hadoop 配置文件所在目录

     2.1核心配置 core-site.xml
    
<!-- 指定HDFS中NameNode的地址 -->
	<property>
		<name>fs.defaultFS</name>
        <value>hdfs://hadoop102:9000</value>
	</property>

	<!-- 指定hadoop运行时产生文件的存储目录 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
	</property>
2.2 hdfs配置,文件备份相关设置
# 1. 配置hadoop-env.sh
[root@hadoop102 hadoop]# vi hadoop-env.sh

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

# 2. 配置hdfs-site.xml

[root@hadoop102 hadoop]# vi hdfs-site.xml

<property>
		<!--文件备份数量-->
		<name>dfs.replication</name>
		<value>3</value>
</property>

<property>
		<!--备份服务位置-->
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:50090</value>
</property>
2.3 yarn 相关配置文件
# 1. 配置yarn-env.sh
[root@hadoop102 hadoop]# vi yarn-env.sh

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

# 2. 配置yarn-site.xml
[root@hadoop102 hadoop]# vi 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>hadoop103</value>
	</property>

2.4 mapreduce 相关配置文件
# 1. 配置mapred-env.sh
[root@hadoop102 hadoop]$ vi mapred-env.sh

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

# 2. 配置yarn-site.xml
[root@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[root@hadoop102 hadoop]$ vi mapred-site.xml

	<!-- 指定mr运行在yarn上 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<!-- 历史服务器端地址 -->
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>hadoop102:10020</value>
	</property>
	
	<!-- 历史服务器web端地址 -->
	<property>
	    <name>mapreduce.jobhistory.webapp.address</name>
	    <value>hadoop102:19888</value>
	</property>

2.5 配置slaves文件

hadoop102
hadoop103
hadoop104
  1. 分发集群配置文件,将如上配置同步到集群每一台节点上

#分发
[root@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/

#查看是否成功
[root@hadoop103 hadoop]$ cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

4.为启动集群做准备,同步集群时间

[root@hadoop102 hadoop]# date.sh 2020-02-02

5.启动集群

5.1 如果集群是第一次启动,需要格式化NameNode
[root@hadoop102 hadoop-2.7.2]$ hadoop namenode -format
5.2 启动hdfs
[root@hadoop102 hadoop-2.7.2]# sbin/start-dfs.sh
[root@hadoop102 hadoop-2.7.2]# jps
4166 NameNode
4482 Jps
4263 DataNode

[root@hadoop103 hadoop-2.7.2]# jps
3218 DataNode
3288 Jps

[root@hadoop104 hadoop-2.7.2]# jps
3221 DataNode
3283 SecondaryNameNode
3364 Jps

5.3 启动yarn
[root@hadoop102 hadoop-2.7.2]# sbin/start-yarn.sh

注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

5.4 启动历史服务器
./mr-jobhistory-daemon.sh start historyserver
或者
mapred --daemon start historyserver

./mr-jobhistory-daemon.sh stop historyserver
或者
mapred --daemon stop historyserver
5.5 补充集群启动方式

在yarn所在的节点使用一个命令就可以同时启动和关闭 hdfs与yarn

集群启动命令
[root@hadoop103 ~]# /opt/module/hadoop-2.7.2/sbin/start-all.sh 
集群关闭命令
[root@hadoop103 ~]# /opt/module/hadoop-2.7.2/sbin/stop-all.sh 

6.访问集群

在浏览器中输入 http://hadoop102:50070 ,查看集群是否启动成功

在这里插入图片描述

查看节点是否全部启动
在这里插入图片描述

查看SecondaryNameNode:注意这个在104上,如果无法访问请首先去104jps查看是否启动成功,成功状态话去查防火墙是否开启,关闭防火墙即可访问
在这里插入图片描述




配置历史服务器:https://blog.csdn.net/qq_29232943/article/details/104138294
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值