0


大数据平台Hadoop实验环境部署(完全分布式集群模式)

大数据平台hadoop实验环境部署

hadoop部署模式有三种:单机模式、伪分布式模式和完全分布式模式,我们学习部署Hadoop完全分布式部署Hadooop集群即《大数据平台hadoop实验环境》。
实验环境:宿主机操作系统windows11、虚拟机软件vmware workstation pro 17、虚拟机操作系统ubuntu20.04.6、JDK1.8、远程登录终端xshell7

大数据平台hadoop实验环境分布式集群规划

序号主机名称安装介质功能用途资源配置IP地址操作系统备注1hadoop200hadoop3.3.6NameNodeCPU:4核,内存:8G,硬盘:40G192.168.3.200Ubuntu20.04.6必选2hadoop201hadoop3.3.6DataNode, Secondary NameNodeCPU:4核,内存:8G,硬盘:80G192.168.3.201Ubuntu20.04.6必选3hadoop202hadoop3.3.6DataNodeCPU:2核,内存:4G,硬盘:80G192.168.3.202Ubuntu20.04.6必选4hadoop203hadoop3.3.6DataNodeCPU:2核,内存:4G,硬盘:40G192.168.3.203Ubuntu20.04.6可选5hadoop204hadoop3.3.6DataNodeCPU:2核,内存:4G,硬盘:40G192.168.3.204Ubuntu20.04.6可选6…………………

1.添加hadoop用户和组(如果安装时设置了hadoop用户和组则忽略本步骤)
# 创建用户组# sudo groupadd hadoop# 创建新的用户sudo adduser hadoop # 会自动创建组名为hadoop的用户组# 将现有用户hadoop添加到用户组hadoop(组名 用户名)# sudo usermod -a -G hadoop hadoop
sudo adduser yarn

命令操作截图:
在这里插入图片描述
给新建用户添加管理员权限和sudo权限(可选)

# 给新建用户添加root权限和sudo权限sudousermod-a-G adm hadoop
sudousermod-a-Gsudo hadoop
2.安装并开启SSH服务(如果安装系统时选择了本服务安装,则忽略本步骤)

安装Ubuntu20.04操作系统过程中可选择安装该openssh-server服务软件,否则需要使用以下安装命令

sudoaptinstall openssh-server #安装ssh服务
3.配置hadoop免密登录
3.1 根据集群规划配置服务器主机名

注:当使用虚拟操作系统克隆镜像时,可能需要修改主机名:

sudo hostnamectl set-hostname hadoop201

然后重启操作系统 :

sudoreboot

修改之前:
在这里插入图片描述
修改之后:
在这里插入图片描述

3.2 配置主机与ip地址映射关系(所有服务器节点均需配置)

使用vim编辑器编辑hosts文件:

vim /etc/hosts

hosts文件新增内容:

#hosts内容,ip地址 服务器主机名 服务器域名(自定义)192.168.3.200 hadoop200 hadoop200.hadoop.com
192.168.3.201 hadoop201 hadoop201.hadoop.com
192.168.3.202 hadoop202 hadoop202.hadoop.com
192.168.3.203 hadoop203 hadoop203.hadoop.com
3.3 生成服务器节点数据加密公钥和私钥

1)使用

ssh-keygen -t rsa 

使用生成公钥和私钥;

2)使用

ssh-copy-id hadoop@hadoop201

命令将公钥复制到其他需要免密登录的服务器上的用户家目录下的.ssh文件夹中的authorized_keys中(ssh-copy-id命令将自动完成复制过程以及自动生成known_hosts已知主机列表文件);

3)完成服务器节点间公钥复制。

# 1.密钥生成前测试cd#进入当前用户的家目录/home/hadoopssh hadoop201 #首次登录需要输入登录密码,会自动在home目录下生成.ssh文件夹exit#退出当登录会话# 2.生成密钥
ssh-keygen -t rsa #生成公钥id_rsa.pub与私钥id_rsa密钥对#直接回车,id_rsa:输入一个存储密钥文件名
ssh_copy_id hadoop@hadoop201 #将公钥复制到指定机器hadoop101的指定用户#(默认复制到用户家目录的.ssh目录下的authorized_keys文件中)# 3.密钥生成后测试ssh hadoop201 #远程登录服务器hadoop201(再次登录则不需要输入登录密码)exit#回退到当前登录会话
4.JDK与hadoop安装与配置
最佳实践:先将名称节点安装配置完成,然后其他服务器节点参照名称节点配置进行部署

以下需要在所有节点完成的操作(先在名称节点上完成):

首先,分别将jdk压缩包jdk-8u411-linux-x64.tar.gz和hadoop压缩包hadoop-3.3.6.tar.gz上传到指定目录(比如:/opt/hadoop/和/opt/java/)并解压到当前目录;其次解压相关安装介质。

1)上传hadoop安装介质并解压,注意:安装文件上传工具rz:

sudo apt install lrzsz
cd /opt/hadoop #注意将hadoop目录许可权限修改为:hadoop:hadoop
rz -b#弹出窗口选择hadoop安装介质,点确定后开始上传tar-zxvf hadoop-3.3.6.tar.gz #解压安装介质

2)上传JDK安装介质并解压

cd /opt/java
rz -b#弹出窗口选择JDK1.8安装介质,点确定后开始上传tar-zxvf jdk-8u411-linux-x64.tar.gz #解压安装介质
4.1.JDK与hadoop环境变量配置(每服务器节点均需要配置)
# 系统级环境变量配置sudovim /etc/profile #所有用户都有效
exportJAVA_HOME=/opt/java/jdk1.8.0_411
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportHADOOP_HOME=/opt/hadoop/hadoop-3.3.6
exportPATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
source /etc/profile #使配置生效
最佳实践:以下hadoop配置,先在名称节点服务器上完成,确认无误后,然后将hadoop-3.3.6安装目录下的hadoop配置目录etc/hadoop远程复制到其他服务器节点的/opt/hadoop/hadoop-3.3.6目录下
scp-r etc/hadoop hadoop@hadoop201:${HADOOP_HOME}/etc/

以下命令均在hadoop安装目录/opt/hadoop/hadoop-3.3.6下完成,所有hadoop配置文件在hadoop配置目录etc/hadoop下均可找到。

4.2.hadoop的core-site.xml配置
vim etc/hadoop/core-site.xml
<configuration><!--  1.hdfs文件系统api访问接口配置:访问协议+主机+端口--><property><name>fs.defaultFS</name><value>hdfs://hadoop200:8020</value></property><!-- 2.hdfs文件系统临时目录配置 ,需要事先在hadoop中创建用户目录/user/hadoop --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop/tmp</value></property><!-- 3.hdfs文件系统回收站自动清空时间间隔配置 --><property><name>fs.trash.interval</name><value>360</value></property><!-- 4.web访问用户配置,设置为hadoop系统用户:hadoop--><property><name>hadoop.http.staticuser.user</name><value>hadoop</value></property><!-- 5.代理用户主机配置 --><property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value></property><!-- 6.代理用户组配置 --><property><name>hadoop.proxyuser.hadoop.groups</name><value>*</value></property></configuration>
4.3.hadoop的hdfs-site.xml配置
vim etc/hadoop/hdfs-site.xml
<configuration><!-- 1.hdfs文件系统命名空间存储目录配置 --><property><name>dfs.namenode.name.dir</name><value>/opt/hadoop/name</value></property><!-- 2.hdfs文件系统数据存储目录设置 --><property><name>dfs.datanode.data.dir</name><value>/opt/hadoop/data</value></property><!-- 3. hadoop平台web访问地址设置 --><property><name>dfs.namenode.http-address</name><value>hadoop200:9870</value></property><!-- 4.次要名称节点web访问地址设置 --><property><name>dfs.namenode.secondary.http-address</name><value>hadoop201:50090</value></property><!-- 5.hdfs文件系统副本系数配置 --><property><name>dfs.replication</name><value>3</value></property></configuration>
4.4.hadoop的hadoop-env.sh配置
vim etc/hadoop/hadoop-env.sh
exportJAVA_HOME=/opt/java/jdk1.8.0_411 # jdk安装路径...
exportHADOOP_HOME=/opt/hadoop/hadoop-3.3.6 # hadoop安装路径...
exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop # hadoop配置文件路径...
exportHADOOP_HEAPSIZE_MAX=2048# hadoop最大堆内存设置,单位:Mb...
exportHADOOP_HEAPSIZE_MIN=512# hadoop最小堆内存设置,单位:Mb...
exportHADOOP_PID_DIR=${HADOOP_HOME}/pid # hadoop进程id存储目录...
exportHDFS_NAMENODE_USER=hadoop
exportHDFS_SECONDARYNAMENODE_USER=hadoop
exportHDFS_DATANODE_USER=hadoop
exportYARN_RESOURCEMANAGER_USER=hadoop
exportYARN_NODEMANAGER_USER=hadoop
exportHADOOP_REGISTRYDNS_SECURE_USER=hadoop
4.5.Yarn资源调度管理器配置
vim etc/hadoop/yarn-site.xml
<configuration><!-- 1.资源管理器主机配置  --><property><name>yarn.resourcemanager.hostname</name><value>hadoop200</value></property><!-- 2.资源管理器服务地址配置:主机+端口  --><property><name>yarn.resourcemanager.address</name><value>${yarn.resourcemanager.hostname}:8032</value></property><!-- 3.资源管理器中的调度器服务地址配置:主机+端口  --><property><name>yarn.resourcemanager.scheduler.address</name><value>${yarn.resourcemanager.hostname}:8030</value></property><!-- 4.资源管理器web服务访问地址配置:主机+端口  --><property><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:8088</value></property><!-- 5.资源管理器加密web服务访问地址配置:主机+端口  --><property><name>yarn.resourcemanager.webapp.https.address</name><value>${yarn.resourcemanager.hostname}:8090</value></property><!-- 6.资源管理器数据节点状态跟踪服务访问地址配置:主机+端口  --><property><name>yarn.resourcemanager.resource-tracker.address</name><value>${yarn.resourcemanager.hostname}:8031</value></property><!-- 7.资源管理器超级管理员服务访问地址配置:主机+端口  --><property><name>yarn.resourcemanager.admin.address</name><value>${yarn.resourcemanager.hostname}:8033</value></property><!-- 8.节点管理器本地数据目录配置  --><property><name>yarn.nodemanager.local-dirs</name><value>/opt/hadoop/data/yarn/local</value></property><!-- 9.节点管理器辅助服务:mapreduce_shuffle服务,timeline_collector应用程序时间线数据收集服务  --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle,timeline_collector</value></property><!-- 10.节点管理器远程应用日志目录配置  --><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/opt/hadoop/logs</value></property><!-- 11.节点管理器辅助服务shuffle类指定  --><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><!-- 12.节点管理器内存资源配置  --><property><name>yarn.nodemanager.resource.memory-mb</name><value>2048</value></property><!-- 13.节点管理器是否开启物理内存检测  --><property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value></property><!-- 14.节点管理器是否开启虚拟内存检测  --><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property><!-- 15.节点管理器cpu资源配置  --><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>2</value></property><!-- 16.开启yarn日志收集服务  --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 17.yarn日志服务请求URL配置  --><property><name>yarn.log.server.url</name><value>http://hadoop200:19888/jobhistory/logs/</value></property><!-- 17.yarn调度器最小内存分配  --><property><name>yarn.scheduler.minimum-allocation-mb</name><value>512</value></property><!-- 18.yarn调度器最大内存分配  --><property><name>yarn.scheduler.maximum-allocation-mb</name><value>4096</value></property><!-- 19.mapreduce计算模型中的map服务内存分配  --><property><name>mapreduce.map.memory.mb</name><value>2048</value></property><!-- 20.mapreduce计算模型中的reduce服务内存分配  --><property><name>mapreduce.reduce.memory.mb</name><value>2048</value></property><!-- 21.yarn应用程序引用的jar包路径配置,默认配置为yarn共享库  --><property><name>yarn.application.classpath</name><value/></property></configuration>
4.6.MapReduce计算框架参数配置
vim etc/hadoop/mapred-site.xml
<configuration><!-- 1.指定应用程序使用的资源调度框架:yarn--><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 2.指定应用程序的每个作业中可包含的reduce任务数--><property><name>mapreduce.job.reduces</name><value>4</value></property><!-- 3.mapreduce计算框架环境变量(am应用程序管理环境、map计算环境、reducey计算环境)配置 --><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><!--  4.指定应用程序作业历史日志服务访问地址--><property><name>mapreduce.jobhistory.address</name><value>hadoop200:10020</value></property><!--  5.指定应用程序作业历史日志服务web访问地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop200:19888</value></property></configuration>
4.7.工作节点声明

即编辑在hadoop配置目录下workers文件,在其中添加所有数据节点主机名

vim etc/hadoop/workers
hadoop201
hadoop202
hadoop203
5.hadoop初始化(即名称节点namenode格式化)

说明:此时会在配置的data目录下首次自动生成fsimage文件系统镜像文件和edits操作日志文件

hdfs namenode -format
6.hadoop服务启动(所有服务)
6.1 一次性启动所有服务进程

如果未配置sbin环境变量,则按照如下命令方式启动

./sbin/start-all.sh  #cd /opt/hadoop/hadoop-3.3.6

如果配置了sbin环境变量,则可直接使用如下启动命令:

start-all.sh

查看启动服务列表指令:jps

名称节点服务表:

在这里插入图片描述

数据节点(含第二名称节点服务)服务列表:
在这里插入图片描述

数据节点(不含第二名称节点服务)服务列表:

在这里插入图片描述

注:如果出现数据节点服务启动权限问题:即hadoop用户没有启动权限,则按照如下操作开启hadoop用户管理员权限,以下二者选一完成操作:

1)在/etc/sudoers文件中添加hadoop执行权限(推荐)

# Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"# Host alias specification# User alias specification# Cmnd alias specification# User privilege specification
root    ALL=(ALL:ALL) ALL
hadoop  ALL=(ALL:ALL) ALL  #新增这一条!!!!!!!!!!# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:#includedir /etc/sudoers.d

2)给hadoop用户添加管理员权限和sudo权限(未经测试)

sudousermod-a-G adm hadoop
sudousermod-a-Gsudo hadoop
6.2 逐个启动服务进程
6.2.1.在名称节点上启动名称节点服务进程
hdfs --daemon start namenode 
6.2.2.在名称节点上启动资源管理服务进程
yarn--daemon start resourcemanager
6.2.3.在名称节点上启动作业任务历史日志服务进程
mapred --daemon start historyserver
6.2.4.在所有数据节点上启动数据节点服务进程
hdfs --daemon start datanode
6.2.5.在所有数据节点上启动节点管理服务进程
yarn--daemon start nodemanager
6.2.6.在指定的数据节点上启动第二名称节点服务进程
hdfs --daemon start secondarynamenode
6.3 逐个停止服务进程

分别将各启动服务进程命令中的start参数改为stop即可

7.hadoop服务停止(一次性停止所有服务进程)
 ./sbin/stop-all.sh

同理,如果配置了sbin环境变量,则可直接使用如下停止命令:

stop-all.sh
8.hadoop web服务远程访问(查看hadoop集群状态),3.0版本才有

查看前,在宿机上(windows系统)以管理身份编辑C:\Windows\System32\drivers\etc\hosts文件,添加所有服务节点ip地址与主机名映射列表(同linux系统下的服务器主机名与ip地址映射列表),如图所示:
在这里插入图片描述

8.1 集群应用程序状态查看

http://192.168.3.120:8088http://hadoop200:8088
在这里插入图片描述

8.2 hadoop hdfs服务访问(查看hadoop节点状态及文件系统),3.0版本之前访问端口为50070,3.0+版本访问端口变为9870

http://192.168.3.120:9870http://hadoop200:9870
在这里插入图片描述
在这里插入图片描述

8.3 第二名称节点 web服务访问

http://192.168.3.201:50090http://hadoop201:50090
在这里插入图片描述

8.4 数据节点状态查看

http://192.168.3.201/9864http://hadoop201:9864
在这里插入图片描述

8.5 查看作业任务历史服务日志

http://192.168.3.20:19888/jobhistoryhttp://hadoop20:19888/jobhistory
在这里插入图片描述

9.查看防火墙状态是否为active,如果为active则需要stop防火墙,否则访问不到8088、9870、50090、9864等端口服务
sudo ufw status #查看firewall状态sudo ufw disable #stop firewall

10.Hadoop常用简单操作

10.1.创建HDFS用户目录

在HDFS创建hadoop用户的用户目录,参数p的作用就是:当前user目录不存在时,级联创建user目录和hadoop目录

hdfs dfs -mkdir-p /user/hadoop

在这里插入图片描述

10.2.在HDFS用户目录下创建input数据输入目录

默认在用户目录下创建input目录

hdfs dfs -mkdir input
10.3.测试将本地文件上传到HDFS中的input目录下

将/usr/local/hadoop/etc/hadoop文件夹下的所有xml文件上传到HDFS文件系统的/user/hadoop/input目录下

hdfs dfs -put ./etc/hadoop/*.xml input 

在这里插入图片描述

10.4.查看上传文件结果
hdfs dfs -ls ./input

在这里插入图片描述

10.5.测试样例程序grep字符搜索命令

即从input下的文件中搜索出以dfs开头的字符串,并将检索结果输出保存到/user/hadoop/output/part-r1-00000文件,output目录为自动创建

cd ./share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'

或者使用yarn资源调度器

cd ./share/hadoop/mapreduce
yarn jar hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'

在这里插入图片描述

hdfs dfs -cat ./output/part-r-00000 #查看检索结果

在这里插入图片描述

也可以在web UI界面查看以上所有操作结果![http://192.168.3.200:9870]

#注:如果要再次运行上面的程序,则需要删除output目录
hdfs dfs -rm-r output  #删除output文件夹即使文件夹不为空

本文转载自: https://blog.csdn.net/ningbw2000/article/details/142102415
版权归原作者 南腔北调-pilmar 所有, 如有侵权,请联系我们删除。

“大数据平台Hadoop实验环境部署(完全分布式集群模式)”的评论:

还没有评论