CentOS环境下搭建Hadoop分布式集群全流程(以3节点为例)
一、前置准备
1. 虚拟机/物理机基础配置
- 节点规划:至少准备3台机器(1台Master节点:运行NameNode、ResourceManager;2台Slave节点:运行DataNode、NodeManager)。
- 静态IP设置:为每台机器配置静态IP(如
192.168.88.101、192.168.88.102、192.168.88.103),避免DHCP导致IP变动。 - 主机名设置:修改每台机器的主机名(如Master节点为
hadoop01,Slave节点为hadoop02、hadoop03),命令:hostnamectl set-hostname hadoop01。 - hosts文件配置:在每台机器的
/etc/hosts中添加IP与主机名映射,确保节点间可通过主机名互相访问:192.168.88.101 hadoop01 192.168.88.102 hadoop02 192.168.88.103 hadoop03 - 网络连通性测试:使用
ping命令测试节点间网络是否畅通(如ping hadoop02)。
2. 软件环境要求
- 操作系统:推荐使用CentOS 7(64位),避免32位系统对Hadoop堆内存的限制。
- Java环境:Hadoop依赖Java 8或更高版本(推荐JDK 1.8.0_361),需卸载系统自带OpenJDK并安装Oracle JDK。
- 卸载OpenJDK:
rpm -qa | grep jdk | xargs rpm -e --nodeps。 - 解压JDK包至
/export/servers目录,配置环境变量(/etc/profile中添加JAVA_HOME、PATH),并分发至所有节点:scp -r /export/servers/jdk hadoop02:/export/servers/。
- 卸载OpenJDK:
二、Hadoop安装与配置
1. 下载与解压Hadoop
- 从Apache官网下载稳定版Hadoop(如3.4.1),解压至
/export/servers目录并重命名:cd /export/software tar -zxvf hadoop-3.4.1.tar.gz -C /export/servers/ mv /export/servers/hadoop-3.4.1 /export/servers/hadoop - 配置Hadoop环境变量(
/etc/profile中添加):
执行export HADOOP_HOME=/export/servers/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource /etc/profile使配置生效。
2. 核心配置文件修改
进入$HADOOP_HOME/etc/hadoop目录,修改以下关键配置文件:
-
hadoop-env.sh:设置Java路径,取消
JAVA_HOME注释并修改为:export JAVA_HOME=/export/servers/jdk -
core-site.xml:配置HDFS默认文件系统和临时目录:
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://hadoop01:9000value> property> <property> <name>hadoop.tmp.dirname> <value>/export/servers/hadoop/tmpvalue> property> configuration> -
hdfs-site.xml:配置HDFS副本数、NameNode/DataNode目录:
<configuration> <property> <name>dfs.replicationname> <value>3value> property> <property> <name>dfs.namenode.name.dirname> <value>file:/export/servers/hadoop/tmp/dfs/namevalue> property> <property> <name>dfs.datanode.data.dirname> <value>file:/export/servers/hadoop/tmp/dfs/datavalue> property> configuration> -
mapred-site.xml(需先复制模板文件
mapred-site.xml.template):配置MapReduce运行框架为YARN:<configuration> <property> <name>mapreduce.framework.namename> <value>yarnvalue> property> configuration> -
yarn-site.xml:配置YARN资源管理器及Shuffle服务:
<configuration> <property> <name>yarn.resourcemanager.hostnamename> <value>hadoop01value> property> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce_shufflevalue> property> configuration> -
slaves文件:指定Slave节点列表(每行一个主机名):
hadoop02 hadoop03分发
slaves文件至所有节点:scp slaves hadoop02:/export/servers/hadoop/etc/hadoop/。
3. SSH免密登录配置
- 在Master节点(
hadoop01)生成SSH密钥:ssh-keygen -t rsa -P ""(直接回车,默认保存至~/.ssh/id_rsa)。 - 将公钥复制到所有节点(包括自身):
ssh-copy-id hadoop01 ssh-copy-id hadoop02 ssh-copy-id hadoop03 - 验证免密登录:
ssh hadoop02、ssh hadoop03(无需输入密码)。
三、启动集群
1. 格式化NameNode
仅在首次启动时执行,用于初始化HDFS元数据:
hdfs namenode -format
(注意:格式化会清除原有数据,生产环境需谨慎。)
2. 启动HDFS
在Master节点执行以下命令,启动HDFS相关进程(NameNode、DataNode):
start-dfs.sh
查看进程是否启动:jps(Master节点应看到NameNode、SecondaryNameNode;Slave节点应看到DataNode)。
3. 启动YARN
在Master节点执行以下命令,启动YARN相关进程(ResourceManager、NodeManager):
start-yarn.sh
查看进程是否启动:jps(Master节点应看到ResourceManager;Slave节点应看到NodeManager)。
四、集群验证
1. Web界面检查
- HDFS Web界面:
http://hadoop01:9870(查看NameNode状态、DataNode列表)。 - YARN Web界面:
http://hadoop01:8088(查看ResourceManager状态、集群资源使用情况)。
2. 命令行检查
- 查看HDFS文件系统信息:
hdfs dfsadmin -report(查看DataNode数量、存储容量)。 - 查看YARN节点列表:
yarn node -list(查看NodeManager状态)。
3. 运行示例程序
使用Hadoop自带的WordCount示例验证集群功能:
# 创建输入目录并上传文件
hdfs dfs -mkdir -p /input
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input
# 运行WordCount程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar wordcount /input /output
# 查看输出结果
hdfs dfs -cat /output/part-r-00000
若输出单词统计结果,则说明集群搭建成功。
注意事项
- 权限问题:确保Hadoop安装目录及数据目录的权限正确(如
/export/servers/hadoop属主为hadoop用户)。 - 防火墙关闭:若未开启防火墙,可跳过;若开启,需放行Hadoop相关端口(如9000、50070、8088)。
- 数据目录清理:首次格式化前,需删除
hadoop.tmp.dir指定的临时目录(如/export/servers/hadoop/tmp),避免元数据冲突。
以上就是关于“CentOS Hadoop 集群如何搭建”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm