栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop 3.3.1 分布式部署

Hadoop 3.3.1 分布式部署

一、安装JDK 1.1 下载JDK1.8

        链接:https://pan.baidu.com/s/1TFGr2sZO1rZdvUJ9MeqfIQ 
        提取码:6666

1.2 上传至 /opt/software目录中

 1.3 解压到 /opt/module中
tar -zxvf jdk1.8.0_201.tar.gz  -C /opt/module/
1.4 配置环境变量 ( 1 )新建 /etc/profile.d/my_env.sh 文件
vim /etc/profile.d/my_env.sh

#添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
(2)source 一下 /etc/profile 文件,让新的环境变量 PATH 生效
source /etc/profile
1.5 测试
java -version

二、安装Hadoop3.3.1 2.1 下载

下载地址:Index of /dist/hadoop/common/hadoop-3.3.1

 2.2 上传到服务器并解压到/opt/module中

2.3 添加环境变量到/etc/profile.d/my_env.sh文件中  2.4 测试
hadoop version

三、Hadoop 目录结构解析   ( 1 ) bin 目录:存放对 Hadoop 相关服务( hdfs , yarn , mapred )进行操作的脚本 (2 ) etc 目录: Hadoop 的配置文件目录,存放 Hadoop 的配置文件 (3 ) lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能) (4 ) sbin 目录:存放启动或停止 Hadoop 相关服务的脚本 (5 ) share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例

四、完全分布式模式 4.1 编写集群分发脚本xsync

(1)在/bin目录下创建xsync文件

[root@ggl201 bin]# cd /bin
[root@ggl201 bin]# vim xsync


#添加如下代码
#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
 echo Not Enough Arguement!
 exit;
fi

#2. 遍历集群所有机器
for host in ggl201 ggl202 ggl203
do
 echo ==================== $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:$pdir
 else
 echo $file does not exists!
 fi
 done
done

(2)修改脚本 xsync 具有执行权限

[root@ggl201 bin]# chmod +x xsync

(3)测试脚本

[root@ggl201 bin]# xsync /bin/xsync

如果报错 rsync: command not found 安装一下rsync

yum -y install rsync
4.2 SSH 无密码登录配置 ( 1 )免密登录原理

(2) 生成公钥和私钥

[root@ggl201 .ssh]# pwd
/root/.ssh
[root@ggl201 .ssh]# ssh-keygen -t rsa
然后连续敲三个回车,就会生成两个文件 id_rsa (私钥)、 id_rsa.pub (公钥)

(3)将公钥拷贝到要免密登录的目标机器上

[root@ggl201 .ssh]# ssh-copy-id ggl201
[root@ggl201 .ssh]# ssh-copy-id ggl202
[root@ggl201 .ssh]# ssh-copy-id ggl203

注意:
        还需要在 ggl202 上 配置一下无密登录到 ggl201、ggl203 服务器上。
        还需要在 ggl203 上 配置一下无密登录到 ggl201、ggl202 服务器上。
        操作步骤同上

(4).ssh 文件夹下(~/.ssh)的文件功能解释

4.3 集群配置 4.3.1 集群部署规划

注意:

(1)NameNode 和 SecondaryNameNode 不要安装在同一台服务器

(2)ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在

同一台机器上
ggl201ggl202ggl203
HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

4.3.2 配置文件说明         Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认 配置值时,才需要修改自定义配置文件,更改相应属性值。 ( 1 )默认配置文件:
要获取的默认文件 文件存放在 Hadoop 的 jar 包中的位置
[core-default.xml] hadoop-common-3.3.1.jar/core-default.xml
[hdfs-default.xml] hadoop-hdfs-3.3.1.jar/hdfs-default.xml
[yarn-default.xml] hadoop-yarn-common-3.3.1.jar/yarn-default.xml
[mapred-default.xml] hadoop-mapreduce-client-core-3.3.1.jar/mapred-default.xml
(2 )自定义配置文件:          core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在 $HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。 4.3.3 配置集群

(1)核心配置文件

配置 core-site.xml
[root@ggl201 hadoop]# pwd
/opt/module/hadoop-3.3.1/etc/hadoop
[root@ggl201 hadoop]# vim core-site.xml
内容如下:



 
 
 fs.defaultFS
 hdfs://ggl201:8020
 
 
 
 hadoop.tmp.dir
 /opt/module/hadoop-3.3.1/data
 
 
 
 hadoop.http.staticuser.user
 hadoop
 
(2 ) HDFS 配置文件 配置 hdfs-site.xml
[root@ggl201 hadoop]# vim hdfs-site.xml

内容如下:






 dfs.namenode.http-address
 ggl201:9870
 

 
 dfs.namenode.secondary.http-address
 ggl203:9898
 
(3 ) YARN 配置文件 配置 yarn-site.xml
[root@ggl201 hadoop]# vim yarn-site.xml

内容如下:




 
 
 yarn.nodemanager.aux-services
 mapreduce_shuffle
 
 
 
 yarn.resourcemanager.hostname
 ggl202
 
 
 
 yarn.nodemanager.env-whitelist
 JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME
 
(4 ) MapReduce 配置文件 配置 mapred-site.xml
[root@ggl201 hadoop]# vim mapred-site.xml

内容如下:





 
 mapreduce.framework.name
 yarn
 

4.3.4 在集群上分发配置好的 Hadoop 配置文件
[root@ggl201 hadoop]# xsync /opt/module/hadoop-3.3.1/etc/hadoop/
4.4 集群启动 4.4.1 配置 workers
[root@ggl201 hadoop]# vim /opt/module/hadoop-3.3.1/etc/hadoop/workers
增加以下内容:
ggl201
ggl202
ggl203
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。 同步所有节点配置文件
[root@ggl201 hadoop]# xsync /opt/module/hadoop-3.3.1/etc/hadoop/workers
4.4.2 启动集群 ( 1 ) 如果集群是第一次启动 ,需要在ggl201   节点格式化 NameNode (注意:格式

化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。)

[root@ggl201 hadoop-3.3.1]# hdfs namenode -format

(2 )启动 HDFS
[root@ggl201 hadoop-3.3.1]# sbin/start-dfs.sh

报错信息如下:

因为使用的用户是root 需要用hadoop用户启动 

 使用hadoop用户启动依然是报错 !!!

原因是 ssh的时候不通 当时用的root来创建的秘钥

解决方法如下:

 1、把root下的.ssh copy到 /home/hadoop/下

[root@ggl201 ~]# cp -r .ssh/ /home/hadoop/

 2、修改所属用户和用户组

[hadoop@ggl201 ~]$ sudo chown hadoop:hadoop -R .ssh/

 3、分发

[hadoop@ggl201 ~]$ sudo xsync  .ssh/

再次启动 成功

 (3)在配置了 ResourceManager 的节点(ggl202)启动 YARN

[hadoop@ggl202 hadoop-3.3.1]$ sbin/start-yarn.sh

(4 ) Web 端查看 HDFS 的 NameNode         访问地址:http://ggl201:9870/

 

(5 ) Web 端查看 YARN 的 ResourceManager

        访问地址:http://ggl202:8088/

4.5 配置历史服务器 为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下: 4.5.1 配置 mapred-site.xml
[hadoop@ggl201 hadoop]$ pwd
/opt/module/hadoop-3.3.1/etc/hadoop
[hadoop@ggl201 hadoop]$ vim mapred-site.xml

添加内容如下:


 mapreduce.jobhistory.address
 ggl201:10020



 mapreduce.jobhistory.webapp.address
 ggl201:19888
4.5.2 分发配置
[hadoop@ggl201 hadoop]$ xsync mapred-site.xml
4.5.3 在 ggl201 启动历史服务器
[hadoop@ggl201 hadoop]$ mapred --daemon start historyserver
4.5.4 查看历史服务器是否启动

4.5.5 查看 JobHistory 访问链接: http://ggl201:19888/jobhistory 

4.6 配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS 系统上

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。

开启日志聚集功能具体步骤如下:

4.6.1 配置 yarn-site.xml
[hadoop@ggl201 hadoop]$ vim yarn-site.xml

内容如下:


 yarn.log-aggregation-enable
 true


 
 yarn.log.server.url 
 http://ggl201:19888/jobhistory/logs



 yarn.log-aggregation.retain-seconds
 604800
4.6.2 分发
[hadoop@ggl201 hadoop]$ xsync yarn-site.xml
4.6.3 关闭 NodeManager 、ResourceManager 和 HistoryServer
[hadoop@ggl202 hadoop-3.3.1]$ sbin/stop-yarn.sh
[hadoop@ggl201 hadoop-3.3.1]$ mapred --daemon stop historyserver
4.6.4 启动 NodeManager 、ResourceManage 和 HistoryServer
[hadoop@ggl202 hadoop-3.3.1]$ sbin/start-yarn.sh
[hadoop@ggl201 hadoop-3.3.1]$ mapred --daemon start historyserver
4.6.5 执行 WordCount 程序
[hadoop@ggl201 hadoop-3.3.1]$ hadoop fs -put word.txt /input
[hadoop@ggl201 hadoop-3.3.1]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
报错如下:

解决方法如下:

[hadoop@ggl201 hadoop-3.3.1]$ hadoop classpath

[hadoop@ggl201 hadoop-3.3.1]$ vim etc/hadoop/mapred-site.xml

 修改mapred-site.xml文件

[hadoop@ggl201 hadoop-3.3.1]$ vim etc/hadoop/mapred-site.xml

增加内容如下:


yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.1/etc/hadoop:/opt/module/hadoop-3.3.1/share/hadoop/common/lib1 * * * * /usr/sbin/ntpdate ggl201
(3 )修改任意机器时间
[root@ggl202 ~]# date -s "2021-11-01 11:22:33"

(4)1 分钟后查看机器是否与时间服务器同步 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434109.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号