大数据技术栈环境搭建-Hadoop集群

本文档详细介绍了如何搭建Hadoop大数据集群,包括集群规划、前提条件、配置HDFS、MapReduce和Yarn集群、分发文件以及启动步骤。在配置过程中,强调了环境变量设置、文件权限调整和集群节点间免密登录的重要性。
摘要由CSDN通过智能技术生成

文章内容输出来源:拉勾教育大数据开发高薪训练营

集群规划

HDFS组件:NN+2NN+DN
Yarn组件:RM+NM
hadoop1hadoop2hadoop3hadoop4hadoop5
NameNode(NN)
SecondaryNameNode(2NN)
DataNode(DN)
ResourceManager(RM)
NodeManager(NM)

前提条件

  1. 每台机器都具备jdk环境,下述操作的jdk路径为/opt/install/jdk1.8.0_231

  2. 各机器之间实现了免密登录

提示

  1. 执行下述命令中,若在自己的机器上提示缺少命令,安装对应命令即可
  2. Hadoop版本为Apache Hadoop 2.9.2

准备安装文件

本篇需要的文件有:

上传hadoop-2.9.2.tar.gzhadoop1/opt/software并解压,按照我的习惯,我会解压到/opt/install

tar -zxvf hadoop-2.9.2.tar.gz -C /opt/install/

配置

环境变量

vim /etc/profile

##### Hadoop环境变量 #####
export HADOOP_HOME=/opt/install/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

### 使环境变量生效 ###
source /etc/profile

### 验证安装结果和查看版本 ###
hadoop version

### 若出现如下则表示安装成功 ###
Hadoop 2.9.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 826afbeae31ca687bc2f8471dc841b66ed2c6704
Compiled by ajisaka on 2018-11-13T12:42Z
Compiled with protoc 2.5.0
From source with checksum 3a9939967262218aa556c684d107985
This command was run using /opt/install/hadoop-2.9.2/share/hadoop/common/hadoop-common-2.9.2.jar

Hadoop

Hadoop配置 = HDFS配置 + MapReduce配置 + Yarn配置,本小结操作仅在131节点完成,配置完毕后会采用分发的方式复制到其余节点

core-site.xml的配置项详情和默认配置

hdfs-site.xml的配置项详情和默认配置

mapred-site.xml的配置项详情和默认配置

yarn-site.xml的配置项详情和默认配置

HDFS集群配置
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

# 将JDK路径明确配置给HDFS(修改hadoop-env.sh)
export JAVA_HOME=/opt/install/jdk1.8.0_231

vim $HADOOP_HOME/etc/hadoop/core-site.xml

# 指定NameNode节点以及数据存储目录(修改core-site.xml),在<configuration>标签中添加
<!-- 指定HDFS中NameNode的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop1:9000</value>
</property>
<!-- 指定Hadoop运行时产生的文件的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/install/hadoop-2.9.2/data/tmp</value>
</property>

vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

# 指定SecondaryNameNode节点(修改hdfs-site.xml),在<configuration>标签中添加
<!-- 指定Hadoop SecondaryNameNode节点主机配置 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop2:50090</value>
</property>
<!--副本数量 -->
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

vim $HADOOP_HOME/etc/hadoop/slaves

# 指定DataNode节点(修改slaves文件,每个节点配置信息占一行)
hadoop1
hadoop2
hadoop3
hadoop4
hadoop5
MapReduce集群配置
vim $HADOOP_HOME/etc/hadoop/mapred-env.sh

# 将JDK路径明确配置给MapReduce(修改mapred-env.sh)
export JAVA_HOME=/opt/install/jdk1.8.0_231

mv $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
vim $HADOOP_HOME/etc/hadoop/mapred-site.xml

# 指定MapReduce计算框架运行Yarn资源调度框架(修改mapred-site.xml),在<configuration>标签中添加
<!-- 指定MR运行在Yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
Yarn集群配置
vim $HADOOP_HOME/etc/hadoop/yarn-env.sh

# 将JDK路径明确配置给Yarn(修改yarn-env.sh)
export JAVA_HOME=/opt/install/jdk1.8.0_231

vim $HADOOP_HOME/etc/hadoop/yarn-site.xml

# 指定ResourceManager老大节点所在计算机节点(修改yarn-site.xml),在<configuration>标签中添加
<!-- 指定YARN的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop1</value>
</property>
<!-- Reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

# 指定NodeManager节点(会通过slaves文件内容确定)  
# 由于在之前配置HDFS时已经配置过了,这里无需再次配置

注意:Hadoop安装目录所属用户和所属用户组信息,默认是501 dialout,而我们操作Hadoop集群的用户使用的是虚拟机的root用户,所以为了避免出现信息混乱,需要修改Hadoop安装目录所属用户和用户组。

chown -R root:root /opt/install/hadoop-2.9.2

分发文件

# 每台机器上都安装rsync
yum install -y rsync

# 在131节点的/usr/local/bin目录下创建文件rsync-script,内容如下
vim /usr/local/bin/rsync-script
#!/bin/bash
#1 获取命令输入参数的个数,如果个数为0,直接退出命令
paramnum=$#
if((paramnum==0)); then
echo no params;
exit;
fi
#2 根据传入参数获取文件名称
p1=$1
file_name=`basename $p1`
echo fname=$file_name
#3 获取输入参数的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取用户名称
user=`whoami`
#5 循环执行rsync
for((host=1; host<6; host++)); do
echo ------------------- linux$host --------------
rsync -rvl $pdir/$file_name $user@hadoop$host:$pdir
done
# 修改脚本 rsync-script 具有执行权限
chmod 777 /usr/local/bin/rsync-script

# 分发脚本和/etc/profile
rsync-script /usr/local/bin/rsync-script
rsync-script /etc/profile

# 到各台机器上使配置文件生效
source /etc/profile

# 分发Hadoop
rsync-script $HADOOP_HOME

启动集群

单节点启动HDFS

# 所有节点进到hadoop安装路径bin目录下准备执行命令
cd $HADOOP_HOME

# 131节点执行格式化操作。如果集群是第一次启动,需要在Namenode所在节点格式化NameNode,否则不用执行格式化Namenode操作,如果不小心多做了这一步,也不是不可挽回,但不在此赘述
hadoop namenode -format

# 其余节点执行
hadoop-daemon.sh start namenode

# 可以使用jps命令检查是否成功启动
jps

若有再寄主机针对虚拟机配置DNS信息的话,可以请求http://hadoop1:50070/dfshealth.html#tab-overview通过web界面访问HDFS操作界面

image-20210621221600003

之所以能通过hadoop1:50070访问

单节点启动Yarn

# ResourceManager节点,即hadoop1上执行
yarn-daemon.sh start resourcemanager

# 其余节点执行
yarn-daemon.sh start nodemanager

集群启动Hadoop

# HDFS组件群起
start-dfs.sh

# Yarn组件群起
start-yarn.sh

使用jps命令可以看到Hadoop启动结果:所有节点都是HDFS中的DataNode、Yarn中的NodeManager,在此基础上,hadoop1还兼任NameNode和ResourceManager,hadoop2还兼任SecondNameNode,符合我们最初的集群规划。

image-20210621222508176

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值