Hadoop集群搭建(详细简单粗暴)

搭建所用Hadoop java版本

hadoop-3.1.3.tar.gz  

jdk-8u212-linux-x64.tar.gz

安装包链接:Hadoop及jdk安装包提取码:icn6

首先,我们先下载并且安装好虚拟机准备好三台机器

主机名ip地址
master192.168.45.110
salve1192.168.45.111
salve2192.168.45.112


 

集群按以下要求修改相应配置文件

mastersalve1salve2
HDFS

NameNode

DataNode

DataNode

SecondNameNode

DataNode

YARNNodeManager

ResourceManger

NodeManager

NodeManger

#1、安装网络调试工具

yum install vim -y

yum install wget -y

yum install net-tools -y

#2、设置开机禁用防火墙

systemctl stop firewalld

systemctl disable firewalld

#3、分别修改主机名称

vim /etc/hostname

#主机1:master

#主机2:salve1

#主机3:salve2

#4、修改域名映射

vim /etc/hosts

192.168.45.110 haster

192.168.45.111 salve1

192.168.45.112 salve2

#5、创建student用户

useradd stu

passwd stu 密码设置为123456

为用户stu添加sudo权限

vim /etc/sudoers

在# %wheel ALL=(ALL) NOPASSWD: ALL下面添加

stu ALL=(ALL) NOPASSWD:ALL

#6、创建文件夹用来放置我们的安装包

cd /opt

mkdir module/ software/

ls一下查看创建是否成功

我们将hadoop-3.1.3.tar.gz jdk-8u212-linux-x64.tar.gz安装包上传至/opt/software目录

接下来解压hadoop以及java安装包至module下

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module

#7,添加java,Hadoop环境变量

cd /etc/profile.d

vim my_env.sh //创建java环境变量

#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile //重新加载profile 使配置生效

java -version // 查看java验证环境变量是否正确

同样在my_env.sh中添加hadoop环境变量

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

source /etc/profile //重新加载profile 使配置生效

hadoop version //验证环境变量是否正确

chown -R stu:stu /opt  //给stu用户增加权限

切换至stu用户

su stu

#验证

echo $JAVA_HOME

echo $HADOOP_HOME

 #8设置ssh免密登录

cd ~
mkdir .ssh         # 创建ssh目录
chmod 700 .ssh     # 设置ssh目录权限

# stu账号,非root账号
cd .ssh
ssh-keygen -t rsa     # 生成rsa公钥和私钥
ssh-copy-id master
ssh-copy-id salve1
ssh-copy-id salve2

//互相验证一下是否配置成功

#9,hadoop配置文件

##使用stu用户登录

##配置dfs与yarn

## 修改配置文件

cd $HADOOP_HOME/etc/hadoop

# 核心配置文件,指定NameNode的地址、指定hadoop数据的存储目录、配置HDFS网页登录使用的静态用户

vim core-site.xml

<configuration>
<property>
                 <name>fs.default.name</name>
                 <value>hdfs://master:8020</value>
         </property>
        <property>
                 <name>hadoop.tmp.dir</name>
                 <value>/opt/module/hadoop-3.1.3/data</value>
         </property>
</configuration>

# yarn配置文件,

vim yarn-site.xml 

<configuration>

<!-- Site specific YARN configuration properties -->
<!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

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

    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>

        <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://master:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为 7 天 -->
   <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
   </property>
</configuration>

#配置MapReduce配置文件

vim mapred-site.xml

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

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

# HDFS配置文件,指定NodeNode的http访问端口与SecondaryNameNode的http访问端口

vim hdfs-site.xml 

<configuration>
<!-- NameNode web端访问地址-->
 <property>
        <name>dfs.namenode.http-address</name>
        <value>master:9870</value>
    </property>

 <!-- SecondaryNameNode web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>salve2:9868</value>
    </property>
</configuration>

# 编辑workers文件

vim workers

master
salve1
salve2

到此我们的master主机已经配置完成。

#10,接下来我们写几个搭配集群的脚本

##创建xsync集群同步脚本、myhadoop.sh启动脚本、jpsall查看脚本(放到usr/local/bin目录下)

#xsync集群同步脚本

cd /usr/local/bin

sudo vim xsync

#!/bin/bash

if [ $# -lt 1 ]
then
	echo Not Enough Arguement!
	exit;
fi

for host in master salve1 salve2
do
	echo =================== $host =======================
	

	for file in $@
	do
		if [ -e $file ]
			then
				pdir=$(cd -P $(dirname $file);pwd)
				
				fname=$(basename $file)
				ssh $host "mkdir -p $pdir"
				rsync -av $pdir/$fname $host:$pdir
			else
				echo $file does not exist!
		fi
	done
done

#集群启动/结束脚本

sudo vim myhadoop.sh

#!/bin/bash

if [ $# -lt 1 ] 
then
	echo "No Args Input..." 
	exit ;
fi

case $1 in 
"start")
	echo " =================== 启动 hadoop 集群 ==================="

	echo " --------------- 启动 hdfs	"
	ssh master "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh" 
	echo " --------------- 启动 yarn	"
	ssh salve1 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh" 
	echo " --------------- 启动 historyserver	"
	ssh master "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
	echo " =================== 关闭 hadoop 集群 ==================="

	echo " --------------- 关闭 historyserver	"
	ssh master "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
	echo " --------------- 关闭 yarn	"
	ssh salve1 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh" 
	echo " --------------- 关闭 hdfs	"
	ssh master "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
	echo "Input Args Error. "
;;
esac

#查看所有节点脚本

sudo vim jpsall 

#!/bin/bash

for host in master salve1 salve2 
do
	echo =============== $host ===============	
	ssh $host jps
done

#到此脚本配置结束 。接下来我们利用xsync同步脚本 将master主机中所有的配置以及文件传至salve1 salve2

xsync ./ # 集群配置文件同步 (根目录下所有文件)

静等完成。然后我们查看下salve1 salve2 是否同步成功 先看下/optm目录下存放的jdk以及hadoop文件是否存在,在看下java版本和hadoop版本。然后hadoop的配置文件依次都查看下。

在salve1以及salve2分别都查看下

java -version

我的显示不存在  这里我们去看一下java的环境变量是否配置

cd /etc/profile.d/

vim my_env.sh

发现没有配置java,Hadoop环境变量,添加路径

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

source my_env.sh 

再来查看下是否成功 

 

 所有配置都要检查一下 以防出现同步未及时。

接下来我们可以启动我们的集群了。

#11,集群启动~~~~~

# master上面操作

hdfs namenode -format   # HDFS格式化

myhadoop.sh start 然后jpsall一下

 显然我们所有节点都已经提起来了。接下来打开浏览器输入自己的master主机IP后面加上:9870来验证一下是否搭建成功

到此  我们的集群搭建完毕。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^_^嘤嘤嘤^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值