hadoop集群安装
文章内容输出来源:拉勾教育大数据高薪训练营
前沿
默认已经安装好三台虚拟机.
虚拟机安装及集群配置可以参考之前的文章
安装部署目录
框架 | linux129 | linux130 | linux131 |
---|---|---|---|
HDFS | NameNode、 DataNode | DataNode | SecondaryNameNode、 DataNode |
YARN | NodeManager | ResourceManager、 NodeManager | NodeManager |
JDK准备
创建文件夹
三台服务器分别创建文件目录
存放安装包目录
mkdir -p /opt/adou/software
存放软件目录
mkdir -p /opt/adou/servers
注意:三台服务器都要执行
上传JDK安装包
资源路径
链接: https://pan.baidu.com/s/1LrGI-ixUrupEZ-XKKLYMhg
提取码: k8h5
上传jdk安装包到/opt/adou/software中
解压安装包到/opt/adou/servers目录下
tar -zxvf /opt/adou/software/jdk-8u231-linux-x64.tar.gz -C /opt/adou/servers/
配置环境变量
vim /etc/profile
末尾增加jdk的环境变量
export JAVA_HOME=/opt/adou/servers/jdk1.8.0_231
export PATH=:$JAVA_HOME/bin:$PATH
生效环境变量
source /etc/profile
校验是否生效
java -version
看到图片所示安装成功
集群安装hadoop
资源:
hadoop-2.9.2.tar.gz
链接: https://pan.baidu.com/s/1pPmk3Ab-oLb0wFon2vrnPg
提取码: qcx6
上传hadoop-2.9.2.tar.gz
解压到/servers目录中
cd /opt/adou/software/
tar -zxvf hadoop-2.9.2.tar.gz -C ../servers/
查看是否解压成功
ll /opt/adou/servers/hadoop-2.9.2
配置环境变量
vim /etc/profile
添加如下内容
##HADOOP_HOME
export HADOOP_HOME=/opt/adou/servers/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
生效变量
source /etc/profile
测试变量是否有效
hadoop version
集群配置
进入配置目录
cd /opt/adou/servers/hadoop-2.9.2/etc/hadoop
配置 hadoop-env.sh
将JDK安装目录配置给HDFS
vim hadoop-env.sh
JDK路径:
/opt/adou/servers/jdk1.8.0_231
配置core-site.xml
指定NameNode节点以及数据存储目录
vim core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://linux129:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/adou/servers/hadoop-2.9.2/data/tmp</value>
</property>
配置hdfs-site.xml
指定secondarynamenode节点
vim hdfs-site.xml
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>linux131:50090</value>
</property>
<!--副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
配置slaves文件
vim slaves
增加节点名称
linux129
linux130
linux131
注意不能有个空,不能有换行
配置mapred-env.sh
指定MapReduce使用的jdk路径
vim mapred-env.sh
##修改如下内容
export JAVA_HOME=/opt/adou/servers/jdk1.8.0_231
配置mapred-site.xml
指定MapReduce计算框架运行Yarn资源调度框架
##复制模版
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
##增加如下内容
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
Yarn集群配置
- 指定JDK路径
vim yarn-env.sh
##修改如下内容
export JAVA_HOME=/opt/adou/servers/jdk1.8.0_231
- 指定ResourceMnager的master节点信息
vim yarn-site.xml
##修改内容如下
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux131</value>
</property>
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
为了避免出现信息混乱,修改Hadoop安装目录所属用户和用户组!!
chown -R root:root /opt/adou/servers/hadoop-2.9.2
编写发送脚本
cd /usr/local/bin/
## 创建脚本shell
touch rsync-script
## 编辑脚本shell
vim 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 循环执行
for((host=129; host<132; host++)); do
echo ------------------- linux$host --------------
rsync -rvl $pdir/$file_name $user@linux$host:$pdir
done
修改脚本 rsync-script 具有执行权限
chmod 777 rsync-script
分发软件给另外两台服务器
- 分发jdk给
rsync-script /opt/adou/servers/jdk1.8.0_231/
- 分发hadoop
rsync-script /opt/adou/servers/hadoop-2.9.2
- 分发/etc/profile
rsync-script /etc/profile
执行完之后,全部执行一次变量生效
source /etc/profile
启动集群
注意:如果集群是第一次启动,需要在Namenode所在节点格式化NameNode,非第一次不用执行格式化Namenode操作!!
hadoop namenode -format
看到如图这个格式化成功
在linux129上执行
start-dfs.sh
在liux131上执行
start-yarn.sh
在各台服务器执行jps;
说明启动成功
WEB端页面
http://linux129:50070/dfshealth.html#tab-overview
三个存活节点.集群配置成功
如果没有访问成功
主机需要配置域名和ip地址映射
配置历史服务器
在Yarn中运行的任务产生的日志数据不能查看,为了查看程序的历史运行情况,需要配置一下历史日志
服务器。具体配置步骤如下:
vim mapred-site.xml
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>linux129:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>linux129:19888</value>
</property>
配置日志的聚集
日志聚集:应用(Job)运行完成以后,将应用运行日志信息从各个task汇总上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和
HistoryManager。
vi 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>
重新分发
rsync-script /opt/adou/servers/hadoop-2.9.2/etc/hadoop/
重新启动yarn
启动日志服务器–linux129服务器
sbin/mr-jobhistory-daemon.sh start historyserver
服务器web页面
http://linux129:19888/jobhistory