ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

centos7安装hadoop3.3.6集群

centos7安装hadoop3.3.6集群 前言Apache Hadoop 是大数据生态的基石框架提供了分布式 存储HDFS和分布式计算YARN MapReduce两大核心能力。尽管当前 Spark、Flink 等新一代计算引擎已成为主流但 Hadoop 仍然是绝大多数大数据平台的底层基础设施——HDFS 提供可靠的海量数据存储YARN 提供统一的资源调度管理。本文以 Hadoop 3.3.6 版本为例手把手讲解在 3 台 CentOS 7 虚拟机上搭建集群的全过程涵盖环境准备、JDK 安装、Hadoop 配置、集群启动与验证。适合大数据初学者和需要快速搭建测试环境的工程师参考。1、环境准备1.1、机器准备3 台 CentOS 7 最小化安装的主机或虚拟机能够正常上网并且 3 台机器都处于同一个局域网每台机器建议配置4核CPU 4GB 内存以上1.2、创建 hadoop 用户并配置 sudo 权限每台机器执行1.2、虚拟机配置每台机器执行1.2.1、测试机器能否正常上网[rootlocalhost ~]# ping www.baidu.com PING www.wshifen.com (103.235.46.102) 56(84) bytes of data. 64 bytes from 103.235.46.102 (103.235.46.102): icmp_seq2 ttl43 time329 ms 64 bytes from 103.235.46.102 (103.235.46.102): icmp_seq3 ttl43 time328 ms 64 bytes from 103.235.46.102 (103.235.46.102): icmp_seq4 ttl43 time328 ms使用yum命令安装软件需要虚拟机可以正常上网yum安装前可以先测试下虚拟机联网情况。1.2.2、安装软件包[rootlocalhost ~]# yum install -y epel-release net-tools vimepel-releaseExtra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库大多数rpm包在官方 repository 中是找不到的。注意如果Linux安装的是最小系统版还需要安装 net-tools 工具如果安装的是Linux桌面标准版不需要安装 net-tools 工具。1.3、设置静态 IP每台机器执行修改网络配置文件[rootlocalhost ~]# sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0s3文件内容修改如下注意每台机器IPADDR不同ONBOOTyes BOOTPROTOstatic IPADDR10.10.180.201 # hadoop2 改为 10.10.180.202hadoop3 改为 10.10.180.203 NETMASK255.255.255.0 GATEWAY10.10.180.1 DNS1114.114.114.114 DNS28.8.8.8重启网络服务并验证[rootlocalhost ~]# sudo systemctl restart network [rootlocalhost ~]# ip addr # 查看 IP [rootlocalhost ~]# ping www.baidu.com # 验证网络连通性1.4、修改主机名和 hosts 文件每台机器执行设置主机名[rootlocalhost ~]# sudo vim /etc/hostname三台机器分别设置为hadoop01、hadoop02、hadoop03。配置 hosts 映射[rootlocalhost ~]# sudo vim /etc/hosts在末行添加10.10.180.201 hadoop01 10.10.180.202 hadoop02 10.10.180.203 hadoop03操作完以上操作后可以重启机器[rootlocalhost ~]# sudo reboot1.5、创建 hadoop 用户并配置具有 root 权限每台机器执行使用 root 账户操作[roothadoop01 ~]# useradd hadoop # 创建用户 [roothadoop01 ~]# passwd hadoop # 设置密码 #密码 abc#1234ok配置root权限方便后期加sudo执行root权限的命令。修改/etc/sudoers文件[roothadoop01 ~]# vim /etc/sudoers在%wheel那行下面添加一行%wheel ALL(ALL) ALL hadoop ALL(ALL) NOPASSWD:ALL 使用 NOPASSWD:ALL 可以免密码执行 sudo 命令方便集群管理。生产环境建议根据安全策略调整。1.6、关闭防火墙、创建目录每台机器执行使用 root 账户操作# 关闭防火墙 [roothadoop01 ~]# sudo systemctl stop firewalld [roothadoop01 ~]# sudo systemctl disable firewalld # 创建目录 [roothadoop01 ~]# sudo mkdir /opt/module [roothadoop01 ~]# sudo mkdir /opt/software # 修改目录所属主和所属组 [roothadoop01 ~]# sudo chown hadoop:hadoop /opt/module [roothadoop01 ~]# sudo chown hadoop:hadoop /opt/software1.7、配置 SSH 免密登录每台机器执行用 hadoop 用户登录生成公钥和密钥#hadoop用户登录 [roothadoop01 ~]# su hadoop #生成公钥和密钥 [hadoophadoop01 root]$ ssh-keygen -t rsa # 连按三次回车使用默认配置将公钥分发到所有节点[hadoophadoop01 root]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoophadoop01 [hadoophadoop01 root]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoophadoop02 [hadoophadoop01 root]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoophadoop03验证免密登录[hadoophadoop01 .ssh]$ ssh hadoop02 # 应直接返回主机名无需输入密码 #退出命令 [hadoophadoop02 ~]$ exit;注意还需要在 hadoop02 上采用 hadoop 账号配置一下无密登录到hadoop01、hadoop02、hadoop03 服务器上。还需要在 hadoop03 上采用 hadoop 账号配置一下无密登录到hadoop01、hadoop02、hadoop03服务器上。还需要在 hadoop01 上采用 root 账号配置一下无密登录到hadoop01、hadoop02、hadoop03。root 账户配置免密[roothadoop01 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub roothadoop01 [roothadoop01 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub roothadoop02 [roothadoop01 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub roothadoop03.ssh文件夹下~/.ssh的文件功能解释文件名说明known_hosts记录ssh访问过计算机的公钥public keyid_rsa生成的私钥id_rsa.pub生成的公钥authorized_keys存放授权过的无密登录服务器公钥在执行过程中如果出现以下错误/bin/ssh-copy-id: ERROR: Host key verification failed.ssh-copy-id内部的非交互 SSH 会话无法完成主机密钥确认。根本原因还是known_hosts里没有这台主机的记录而ssh-copy-id不能可靠地处理这个交互式提示。解决办法先把主机密钥写入 known_hosts[hadoophadoop01 root]$ ssh-keyscan -H 10.10.180.201 hadoop01 ~/.ssh/known_hosts [hadoophadoop01 root]$ ssh-keyscan -H 10.10.180.202 hadoop02 ~/.ssh/known_hosts [hadoophadoop01 root]$ ssh-keyscan -H 10.10.180.203 hadoop03 ~/.ssh/known_hosts再执行 ssh-copy-id[hadoophadoop01 root]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoophadoop01 [hadoophadoop01 root]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoophadoop02 [hadoophadoop01 root]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoophadoop03在执行过程需要输入相关服务器的密码。如果还是报错需要删除当前用户的 RSA 密钥再执行上面的步骤# 删除私钥 rm -f ~/.ssh/id_rsa # 删除公钥 rm -f ~/.ssh/id_rsa.pub # 删除本机的授权公钥列表本机免密会失效 rm -f ~/.ssh/authorized_keys # 删除已知主机记录清理连接过的主机指纹 rm -f ~/.ssh/known_hosts 注意authorized_keys 和 known_hosts 不是 ssh-keygen 直接生成的而是 SSH 使用过程中产生的。如果你只想删除密钥、保留免密和已知主机记录就不要删这两个文件。1.8、重启所有机器sudo reboot1.9、实用脚本用hadoop账户操作1.9.1、安全拷贝scpsecure copyscp 可以实现服务器与服务器之间的数据拷贝。from server1 to server2基本语法scp -r $pdir/$fname $user$host:$pdir/$fname命令 递归 要拷贝的文件路径/名称 目的地用户主机:目的地路径/名称实例操作在hadoop01上将hadoop01中/opt/module/jdk1.8.0_212目录拷贝到hadoop02上。[hadoophadoop01 ~]$ scp -r /opt/module/jdk1.8.0_212 hadoophadoop02:/opt/module1.9.2、远程同步工具rsyncrsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。rsync 和 scp 区别用 rsync 做文件的复制要比 scp 的速度快rsync 只对差异文件做更新scp 是把所有文件都复制过去。基本语法rsync -av $pdir/$fname $user$host:$pdir/$fname命令 选项参数 要拷贝的文件路径/名称 目的地用户主机:目的地路径/名称选项参数说明选项功能-a归档拷贝-v显示复制过程案例实操同步hadoop01 中的 /opt/module/hadoop-3.3.6 到hadoop02[hadoophadoop01 ~]$ rsync -av /opt/module/hadoop-3.3.6/ hadoophadoop02:/opt/module/hadoop-3.3.6/1.9.3、集群分发脚本 xsync在 hadoop01 上操作hadoop 用户登录工作目录/home/hadoop[roothadoop01 ~]# su hadoop [hadoophadoop01 root]$ mkdir ~/bin [hadoophadoop01 root]$ vim ~/bin/xsync输入以下内容#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器in 后面的是集群配置的3台机器的映射主机名 # 可根据实际情况增改 for host in hadoop01 hadoop02 hadoop03 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先需要在每一台机器上hadoop01、hadoop02、hadoop03用root用户安装rsync[roothadoop01 ~]# yum install -y rsync添加执行权限并测试[hadoophadoop01 root]$ chmod x ~/bin/xsync # 将脚本自身分发到其他节点 [hadoophadoop01 root]$ ~/bin/xsync ~/bin/xsync #使用完整路径执行1.9.4、集群命令执行脚本 xcall[hadoophadoop01 root]$ vim ~/bin/xcall输入以下内容#!/bin/bash for i in hadoop01 hadoop02 hadoop03 do echo --------- $i ---------- ssh $i $* done添加执行权限[hadoophadoop01 root]$ chmod x ~/bin/xcall2、JDK安装用hadoop账户操作先卸载虚拟机自带的JDK如果你的虚拟机是最小化安装不需要执行这一步。[roothadoop01 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodepsrpm -qa查询所安装的所有rpm软件包grep -i忽略大小写xargs -n1表示每次只传递一个参数rpm -e –nodeps强制卸载软件注意 hadoop3.x 版本在JDK11、17存在不兼容的问题最好安装JDK8。JDK8下载地址Java SE 8 Archive Downloads 需登录 Oracle 账户。下载完成后上传到 hadoop01 的/opt/software目录执行解压[hadoophadoop01 ~]$ tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/配置环境变量[hadoophadoop01 ~]$ sudo vim /etc/profile.d/my_env.sh输入如下内容#JAVA_HOME export JAVA_HOME/opt/module/jdk1.8.0_212 export PATH$PATH:$JAVA_HOME/bin使环境变量生效并验证#使环境变量生效 [hadoophadoop01 ~]$ source /etc/profile.d/my_env.sh #验证 [hadoophadoop01 ~]$ java -version输出类似如下即表示安装成功java version 1.8.0_212 Java(TM) SE Runtime Environment (build 1.8.0_212-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)分发 JDK 到集群所有节点[hadoophadoop01 ~]$ ~/bin/xsync /opt/module/jdk1.8.0_212 [hadoophadoop01 ~]$ sudo /home/hadoop/bin/xsync /etc/profile.d/my_env.sh在hadoop02、hadoop03机器上执行source /etc/profile.d/my_env.sh然后验证[hadoophadoop01 ~]$ ~/bin/xcall java -version3、Hadoop 安装部署用hadoop账户操作3.1、集群规划组件hadoop01hadoop02hadoop03IP10.10.180.20110.10.180.20210.10.180.203HDFSNameNode, DataNodeDataNodeSecondaryNameNode, DataNodeYARNNodeManagerResourceManager, NodeManagerNodeManager其他HistoryServer—— 角色分配说明NameNode放在 hadoop1NameNode 是 HDFS 的核心需要较高内存ResourceManager 放在 hadoop2RM 是 YARN 的核心与 NN 分离可以避免单点资源争抢SecondaryNameNode 放在 hadoop32NN 辅助 NN 合并 FsImage 和 EditLog不与其他主节点同机3.2、下载安装下载地址Hadoop 3.3.6 发行版下载完成后上传到hadoop1的/opt/software目录上传完成后使用hadoop账户登录hadoop01执行下面的命令解压到/opt/module目录[hadoophadoop01 ~]$ tar -zxvf /opt/software/hadoop-3.3.6.tar.gz -C /opt/module配置环境变量[hadoophadoop01 ~]$ sudo vim /etc/profile.d/my_env.sh在文件末尾添加#HADOOP_HOME export HADOOP_HOME/opt/module/hadoop-3.3.6 export PATH$PATH:$HADOOP_HOME/bin export PATH$PATH:$HADOOP_HOME/sbin分发 hadoop 到集群所有节点[hadoophadoop01 ~]$ ~/bin/xsync /opt/module/hadoop-3.3.6 [hadoophadoop01 ~]$ sudo /home/hadoop/bin/xsync /etc/profile.d/my_env.sh在hadoop01、hadoop02、hadoop03机器上执行 source 命令source /etc/profile.d/my_env.sh验证 hadoop 安装[hadoophadoop01 ~]$ ~/bin/xcall hadoop version3.3、配置集群以下配置均在 hadoop01 上执行配置目录为$HADOOP_HOME/etc/hadoop。3.3.1、核心配置文件core-site.xml[hadoophadoop01 ~]$ cd $HADOOP_HOME/etc/hadoop [hadoophadoop01 hadoop]$ vim core-site.xml?xml version1.0 encodingUTF-8? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl? configuration !-- 指定NameNode的地址 -- property namefs.defaultFS/name valuehdfs://hadoop01:8020/value /property !-- 指定hadoop数据的存储目录 -- property namehadoop.tmp.dir/name value/opt/module/hadoop/data/value /property !-- 配置HDFS网页登录使用的静态用户为hadoop -- property namehadoop.http.staticuser.user/name valuehadoop/value /property !-- 配置该hadoop用户允许通过代理访问的主机节点 -- property namehadoop.proxyuser.hadoop.hosts/name value*/value /property !-- 配置该hadoop用户允许通过代理用户所属组 -- property namehadoop.proxyuser.hadoop.groups/name value*/value /property !-- 配置该hadoop用户允许通过代理的用户-- property namehadoop.proxyuser.hadoop.users/name value*/value /property /configuration关键配置说明配置项说明fs.defaultFSHDFS 的 NameNode 地址客户端通过此地址访问 HDFShadoop.tmp.dirHadoop 运行时数据的本地存储目录格式化 NameNode 时会初始化此目录hadoop.http.staticuser.user访问 HDFS Web UI 时使用的默认用户hadoop.proxyuser.*代理用户配置允许 hadoop 用户代理其他用户访问 HDFS3.3.2、HDFS 配置文件hdfs-site.xml[hadoophadoop01 hadoop]$ vim hdfs-site.xml?xml version1.0 encodingUTF-8? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl? configuration !-- nn web端访问地址-- property namedfs.namenode.http-address/name valuehadoop01:9870/value /property !-- 2nn web端访问地址-- property namedfs.namenode.secondary.http-address/name valuehadoop03:9868/value /property !-- 测试环境指定HDFS副本的数量1 -- property namedfs.replication/name value1/value /property /configuration关键配置说明配置项说明dfs.namenode.http-addressNameNode Web UI 端口Hadoop 3.x 为 98702.x 为 50070dfs.namenode.secondary.http-addressSecondaryNameNode Web UI 端口dfs.replicationHDFS 数据块副本数测试环境设为 1 节省空间生产环境建议 33.3.3、YARN 配置文件yarn-site.xml[hadoophadoop01 hadoop]$ vim yarn-site.xml?xml version1.0 encodingUTF-8? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl? configuration !-- 指定MR走shuffle -- property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property !-- 指定ResourceManager的地址-- property nameyarn.resourcemanager.hostname/name valuehadoop02/value /property !-- 环境变量的继承 -- property nameyarn.nodemanager.env-whitelist/name valueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME/value /property !--yarn单个容器允许分配的最大最小内存 -- property nameyarn.scheduler.minimum-allocation-mb/name value512/value /property property nameyarn.scheduler.maximum-allocation-mb/name value4096/value /property !-- yarn容器允许管理的物理内存大小 -- property nameyarn.nodemanager.resource.memory-mb/name value4096/value /property !-- 关闭yarn对物理内存和虚拟内存的限制检查 -- property nameyarn.nodemanager.pmem-check-enabled/name valuetrue/value /property property nameyarn.nodemanager.vmem-check-enabled/name valuefalse/value /property !-- 开启日志聚集功能 -- property nameyarn.log-aggregation-enable/name valuetrue/value /property !-- 设置日志聚集服务器地址 -- property nameyarn.log.server.url/name valuehttp://hadoop01:19888/jobhistory/logs/value /property !-- 设置日志保留时间为7天 -- property nameyarn.log-aggregation.retain-seconds/name value604800/value /property /configuration关键配置说明配置项说明yarn.resourcemanager.hostnameResourceManager 所在节点本例为 hadoop2yarn.nodemanager.resource.memory-mbNodeManager 可管理的总内存需根据实际机器配置调整yarn.nodemanager.vmem-check-enabled设为 false 可避免容器因虚拟内存超限被 killyarn.log-aggregation-enable开启后任务日志自动收集到 HDFS便于排查问题3.3.4、MapReduce 配置文件mapred-site.xml[hadoophadoop01 hadoop]$ vim mapred-site.xml?xml version1.0 encodingUTF-8? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl? configuration !-- 指定MapReduce程序运行在Yarn上 -- property namemapreduce.framework.name/name valueyarn/value /property !-- 历史服务器端地址 -- property namemapreduce.jobhistory.address/name valuehadoop01:10020/value /property !-- 历史服务器web端地址 -- property namemapreduce.jobhistory.webapp.address/name valuehadoop01:19888/value /property /configuration3.3.5、Worker 配置文件[hadoophadoop01 hadoop]$ vim workers⚠️ Hadoop 3.x 中该文件名为 workersHadoop 2.x 为 slaves。删除默认的 localhost添加如下内容hadoop01 hadoop02 hadoop033.4、分发 Hadoop 到所有节点[hadoophadoop01 ~]$ ~/bin/xsync /opt/module/hadoop-3.3.6/etc/hadoop/3.5、启动集群3.5.1、格式化 NameNode首次启动必须执行[hadoophadoop01 root]$ cd $HADOOP_HOME [hadoophadoop01 hadoop-3.3.6]$ bin/hdfs namenode -format出现 successfully formatted 表示格式化成功。⚠️ 重要提醒格式化 NameNode 是首次部署时的操作。如果集群已经运行过需要重新格式化时必须先停止所有服务再删除所有节点的 data 目录最后再格式化。反复格式化会导致 NameNode 和 DataNode 的 clusterID 不一致DataNode 无法启动。3.5.2、启动 HDFS 和 YARN在 hadoop01 上启动 HDFS、YARN[hadoophadoop01 hadoop-3.3.6]$ sbin/start-dfs.sh [hadoophadoop01 hadoop-3.3.6]$ sbin/start-yarn.sh3.5.3、验证进程使用 xcall 检查各节点进程[hadoophadoop01 hadoop-3.3.6]$ ~/bin/xcall jps预期输出节点进程hadoop01NameNode, DataNode, Jpshadoop02DataNode, ResourceManager, NodeManager, Jpshadoop03DataNode, SecondaryNameNode, NodeManager, Jps3.5.4、Web UI 访问服务地址说明HDFS NameNodehttp://hadoop01:9870HDFS 管理界面YARN ResourceManagerhttp://hadoop02:8088YARN 资源管理界面MapReduce HistoryServerhttp://hadoop01:19888历史任务查看 如果从 Windows 浏览器访问确保 hosts 文件中已配置 hadoop01/hadoop02/hadoop03 的 IP 映射或直接用 IP 地址访问。3.5.5、关闭集群[hadoophadoop01 hadoop-3.3.6]$ sbin/stop-yarn.sh [hadoophadoop01 hadoop-3.3.6]$ sbin/stop-dfs.sh3.6、一键启停脚本在/home/hadoop/bin下创建 hdp.sh[hadoophadoop01 bin]$ vim ~/bin/hdp.sh添加下文#!/bin/bash if [ $# -lt 1 ] then echo 没有输入参数 echo 示例hdp.sh start|stop exit ; fi case $1 in start) echo 启动 hadoop集群 echo --------------- 启动 hdfs --------------- ssh hadoop01 /opt/module/hadoop-3.3.6/sbin/start-dfs.sh echo --------------- 启动 yarn --------------- ssh hadoop02 /opt/module/hadoop-3.3.6/sbin/start-yarn.sh echo --------------- 启动 historyserver --------------- ssh hadoop01 /opt/module/hadoop-3.3.6/bin/mapred --daemon start historyserver ;; stop) echo 关闭 hadoop集群 echo --------------- 关闭 historyserver --------------- ssh hadoop01 /opt/module/hadoop-3.3.6/bin/mapred --daemon stop historyserver echo --------------- 关闭 yarn --------------- ssh hadoop02 /opt/module/hadoop-3.3.6/sbin/stop-yarn.sh echo --------------- 关闭 hdfs --------------- ssh hadoop01 /opt/module/hadoop-3.3.6/sbin/stop-dfs.sh ;; *) echo 输入参数有误 echo 示例hdp.sh start|stop ;; esac添加执行权限[hadoophadoop01 bin]$ chmod x ~/bin/hdp.sh使用方式[hadoophadoop01 bin]$ ~/bin/hdp.sh start # 启动集群 [hadoophadoop01 bin]$ ~/bin/hdp.sh stop # 关闭集群3.7、运行测试任务集群启动后运行一个示例任务验证# 创建 HDFS 测试目录 hdfs dfs -mkdir /input # 上传测试文件 hdfs dfs -put $HADOOP_HOME/etc/hadoop/core-site.xml /input/ # 运行 WordCount 示例 hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output # 查看结果 hdfs dfs -cat /output/part-r-000004、常见问题排查问题可能原因解决方案DataNode 启动失败多次格式化导致 clusterID 不一致停止集群删除所有节点的data和name目录重新格式化 NameNodeNameNode 安全模式无法写入未退出安全模式hdfs dfsadmin -safemode leaveYARN 容器被 kill内存不足或 vmem 检查调大 NM 内存配置关闭 vmem 检查Web UI 无法访问防火墙未关闭或 IP 映射错误检查防火墙状态确认 hosts 配置正确SSH 免密登录失败权限问题确保~/.ssh目录权限为 700authorized_keys权限为 6005、总结本文完成了 hadoop 3.3.6 分布式集群的安装部署主要涵盖以下内容5.1、部署流程回顾环境准备 → JDK 安装 → Hadoop 下载解压 → 配置文件修改 → 集群分发 → 格式化 → 启动验证5.2、关键节点总结阶段关键操作注意事项环境准备用户创建、静态IP、SSH免密、主机名3 台机器都要执行注意 IP 和主机名对应关系JDK 安装解压到 /opt/module配置环境变量需要分发到所有节点Hadoop 配置core-site / hdfs-site / yarn-site / mapred-site / workers在 hadoop01 上统一配置后分发集群启动格式化 NN → start-dfs → start-yarn → 启动 HistoryServer首次启动前必须格式化且只需格式化一次验证jps 查看进程 Web UI 访问确认各节点进程与规划表一致5.3、集群端口速查表服务端口节点HDFS NameNode RPC8020hadoop01HDFS NameNode Web UI9870hadoop01HDFS DataNode9866所有节点SecondaryNameNode Web UI9868hadoop03YARN ResourceManager Web UI8088hadoop02YARN NodeManager8042所有节点MapReduce HistoryServer19888hadoop015.4、Hadoop 2.x 与 3.x 主要差异差异点Hadoop 2.xHadoop 3.xNameNode Web UI 端口500709870SecondaryNN Web UI 端口500909868从节点配置文件slavesworkers支持的 Java 版本JDK 7/8JDK 8Erasure Coding不支持支持节省存储空间多 NameNode仅 HA 双 NN支持多 NN 联邦6、参考资源6.1、官方文档资源链接说明Hadoop 官方文档hadoop.apache.org/docs/r3.3.6Hadoop 3.3.6 完整文档HDFS 架构设计hadoop.apache.org/docs/r3.3.6/hadoop-project-dist/hadoop-hdfs/HdfsDesign.htmlHDFS 设计文档YARN 架构设计hadoop.apache.org/docs/r3.3.6/hadoop-yarn/hadoop-yarn-site/YARN.htmlYARN 架构说明6.2、推荐书籍书名作者说明《Hadoop 权威指南》(第4版)Tom WhiteHadoop 经典入门与进阶《Hadoop 大数据技术从入门到精通》黄宜华 等中文 Hadoop 实战指南6.3、常见问题参考问题参考链接DataNode 启动失败排查检查 clusterIDcat /opt/module/hadoop/data/current/VERSIONHadoop 3.x 端口变化说明Hadoop 3.x 默认端口列表JDK 环境变量配置JAVA_HOME必须指向 JDK 安装根目录不是 bin 目录
返回列表