集群配置,hadoop配置过程,细节满满

阅读: 评论:0

集群配置,hadoop配置过程,细节满满

集群配置,hadoop配置过程,细节满满

做一个hadoop的配置流程的全记录,把遇到的问题和细节全都记录了下来。

目录

1.安装前准备

jdk,hadoop安装包:

2.开始安装jdk,hadoop

导入安装包

修改jdk,hadoop文件用户所属

配置jdk,hadoop 环境变量,添加对应环境变量

测试安装是否成功

 3.hadoop 集群配置文件

l

l

l

l

配置workers文件

修改hadoop-env.sh

4.创建xsync集群群发脚本

在根目录中创建xsync脚本文件

修改xsync脚本权限

同步jdk,hadoop到集群

启动hadoop,测试集群

附加内容:下面内容为非必要配置,如果不需要,请跳过

1.历史服务器配置(jobhistory)

 在web端中查看

如下图


文章中安装包的导入位置为opt/software

          安装包的安装位置为/usr/local/src

1.安装前准备

首先在开始安装hadoop前,准备好需要的相关安装包和配置

#安装vim编辑器:
yum install -y vim
#安装rsync远程同步工具
yum install -y rsync

jdk,hadoop安装包:

我这里使用jdk 1.8 版本,hadoop 3.3.4版本

这是jdk的下载地址

 选择符合你电脑的版本(正常使用Windows的选择最下方即可)

hadoop的下载地址

.html

 选择下载hadoop的版本,下载对应版本的binary安装包

(2)如果你的集群虚拟机已经都创建完成,且确保网络,ssh密钥登陆 都做好了后,就可以开始安装jdk和hadoop了

如果网络还没有完成,可以看我的另一篇文章,把网络配置文件确保配置完成。

集群配置,网络配置部分_酥悲清风的博客-CSDN博客

如果ssh密钥连接还没有做好,可以参考我的另一篇文章。这一步是集群配置的关键

 集群配置,ssh免密登录_酥悲清风的博客-CSDN博客

2.开始安装jdk,hadoop

导入安装包

导入安装包到opt/software中解压

tar -zxvf /opt/software/ -C /usr/local/srctar -zxvf /opt/software/hadoop-3.3. -C /usr/local/src/

解压安装包到/usr/local/src

进入安装目录,修改对应安装包文件名,改成jdk,hadoop

(注意如果不修改文件名注意配置环境变量文件中对应文件名也要更改) 

修改jdk,hadoop文件用户所属

修改jdk,hadooop所在目录的所属用户
chown -R hadoop:hadoop /usr/local/src

配置jdk,hadoop 环境变量,添加对应环境变量

#JAVA_HOME
export JAVA_HOME=/usr/local/src/jdk
export PATH=$PATH:$JAVA_HOME/bin
保存后退出
:wq
#HADOOP_HOME
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

重启配置文件,使其生效

source /etc/profile

测试安装是否成功

如果没有打错字符的话不应该出错

java -version  #测试jdk

hadoop version   #测试hadoop

 3.hadoop 集群配置文件

在/usr/local/src/hadoop/etc/hadoop 中的对应配置文件中加入下面的相关参数

<!-- 指定NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><!-- 指定hadoop数据的存储目录 --><property><name&p.dir</name><value>/usr/local/src/hadoop/data</value></property><!-- 配置HDFS网页登录使用的静态用户为hadoop --><property><name>hadoop.http.staticuser.user</name><value>hadoop</value></property>

    <!-- nn web端访问地址--><property><name>dfs.namenode.http-address</name><value>master:9870</value></property><!-- 2nn web端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>slave2:9868</value></property>

  <!-- 指定MR走shuffle --><property><name&demanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定ResourceManager的地址--><property><name&sourcemanager.hostname</name><value>master</value></property><!-- 环境变量的继承 --><property><name&v-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>

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

配置workers文件

(也在/usr/local/src/hadoop/etc/hadoop 中)

(如果没有创建即可)

(注意不要有空行,最后一行不要留有空格)

修改hadoop-env.sh

 修改hadoop-env.sh文件中,JAVA_HOME=对应信息,改成你的jdk目录

PS:注意删除‘ # ’注释符号

4.创建xsync集群群发脚本

 #安装rsync远程同步工具 每台虚拟机都要安装
yum install -y rsync

在/root/中创建bin目录在目录中创建 一个文件命名为xsync

ps:注意我的脚本参数,需要根据你自己的虚拟机名,改变for循环遍历参数

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in master slave1 slave2
doecho ====================  $host  ====================#3. 遍历所有目录,挨个发送for file in $@do#4. 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done

修改xsync脚本权限

#我这图省事直接赋予了777权限
chmod 777 xsync

sed -i 's/r$//' xsync 

因为这个文件在Windows 下编辑过,在Windows下每一行结尾是nr,而Linux下则是n,所以才会有多出来的r。

使用指令sed -i 's/r$//' xxxxxxx,上面的指令会把 xxxxxxx 中的r 替换成空白!

同步jdk,hadoop到集群

ps:xsync脚本命令一定要手动输入,复制粘贴会导致路径名后有空格,导致无法识别路径

使用脚本时,要注意如果在绝对路径下使用xsync,可以直接使用,

如果没有在绝对路径下,需要在命令前加上sh ,或者在/etc/profile中添加环境变量

sh xsync /etc/profile  #同步环境变量
sh xsync /usr/local/src  #同步jdk,hadoop

初始化hadoop

hdfs namenode -format 

 只要没有报错,就说明hadoop初始化成功了

启动hadoop,测试集群

#在master虚拟机上启动
start-all.sh

附加内容:下面内容为非必要配置,如果不需要,请跳过

1.历史服务器配置(jobhistory)

(1)添加配置l&#l

 

<!-- 历史服务器端地址 -->
<property><name>mapreduce.jobhistory.address</name><value>master:10020</value>
</property><!-- 历史服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value>
</property>​<property><name>mapreduce.jobhistory.done-dir</name><value>/history/done</value>
</property>
<property><name>mapreudce.jobhistory.intermediate.done-dir</name><value>/history/done/done_intermediate</value>
</property>

 

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

(2)分发配置到其他虚拟机 

xsync /usr/local/src/hadoop/etc/l
xsync /usr/local/src/hadoop/etc/l

 如果没有按照我上面的步骤配置xsync,也可以下载配置文件到电脑中,在依次上传到其他虚拟机

 (3)在master启动历史服务器

mr-jobhistory-daemon.sh start historyserver #如果出现权限不够,看看当前用户是否切换错误,以及hadoop文件用户所属

 在web端中查看

端口名称

Hadoop3.x

NameNode内部通信端口

8020 / 9000/9820

NameNode HTTP UI

9870

MapReduce查看执行任务端口

8088

历史服务器通信端口

19888

 红色标注表示为教程中使用的端口号

在浏览器中输入 对应主机名:对应端号,即可进入对应web端界面

如下图 

 

如果无法登陆到jobhistory,且之前配置没有问题的话,大概率是hadoo的安全模式开启了

hadoop dfsadmin -safemode leave

退出即可 

 

感谢您的观看,您的支持是我最大的动力。

如有侵权,请联系作者下架

本文发布于:2024-01-30 22:06:37,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170662359823158.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:集群   细节   过程   hadoop
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23