CentOS HDFS与YARN集成实践
导读:CentOS环境下HDFS与YARN集成实践指南 HDFS(Hadoop分布式文件系统)负责分布式存储,YARN(Yet Another Resource Negotiator)负责资源管理与任务调度,二者集成是构建Hadoop大数据生态的...
CentOS环境下HDFS与YARN集成实践指南
HDFS(Hadoop分布式文件系统)负责分布式存储,YARN(Yet Another Resource Negotiator)负责资源管理与任务调度,二者集成是构建Hadoop大数据生态的核心步骤。以下是在CentOS系统上的详细集成实践流程:
一、前置准备
集成前需完成以下基础配置,确保集群环境一致性:
- 系统环境配置:
- 使用CentOS 7及以上版本操作系统;
- 关闭防火墙(
systemctl stop firewalld & & systemctl disable firewalld
)以简化端口测试; - 禁用SELinux(
setenforce 0
并修改/etc/selinux/config
中SELINUX=disabled
); - 配置NTP时间同步(如
yum install chrony -y & & systemctl enable --now chronyd
),避免节点间时间偏差。
- 主机名与IP映射:
编辑所有节点的/etc/hosts
文件,添加< IP地址> < 主机名>
映射(如192.168.1.100 namenode
、192.168.1.101 datanode1
),确保主机名解析正确。 - SSH无密钥登录:
在NameNode节点生成SSH密钥(ssh-keygen -t rsa
),并将公钥(id_rsa.pub
)复制到所有DataNode节点(ssh-copy-id datanode1
),实现免密登录。 - 安装JDK 8:
所有节点安装OpenJDK 8(yum install java-1.8.0-openjdk-devel -y
),并通过java -version
验证安装(需显示1.8.0
版本)。
二、Hadoop安装与基础配置
- 下载与解压Hadoop:
从Apache官网下载Hadoop稳定版(如3.3.1),解压至/usr/local/
目录:wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
- 配置环境变量:
编辑/etc/profile.d/hadoop.sh
文件,添加以下内容:
执行export HADOOP_HOME=/usr/local/hadoop-3.3.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile.d/hadoop.sh
使配置生效。 - 核心配置文件修改:
- core-site.xml(HDFS核心配置):
< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://namenode:9000< /value> < !-- NameNode地址 --> < /property> < /configuration>
- hdfs-site.xml(HDFS副本与数据目录):
< configuration> < property> < name> dfs.replication< /name> < value> 1< /value> < !-- 副本数(生产环境建议≥3) --> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> /usr/local/hadoop-3.3.1/data/namenode< /value> < !-- NameNode数据目录 --> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> /usr/local/hadoop-3.3.1/data/datanode< /value> < !-- DataNode数据目录 --> < /property> < /configuration>
- yarn-site.xml(YARN资源管理配置):
< configuration> < property> < name> yarn.resourcemanager.hostname< /name> < value> namenode< /value> < !-- ResourceManager所在节点 --> < /property> < property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < !-- MapReduce Shuffle服务 --> < /property> < /configuration>
- mapred-site.xml(MapReduce框架绑定):
若mapred-site.xml
不存在,可复制模板生成(cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
),然后添加:< configuration> < property> < name> mapreduce.framework.name< /name> < value> yarn< /value> < !-- 绑定YARN作为资源调度框架 --> < /property> < /configuration>
- core-site.xml(HDFS核心配置):
三、HDFS集群初始化与启动
- 格式化NameNode:
在NameNode节点执行格式化命令(仅首次启动需执行,会清除已有数据):hdfs namenode -format
- 启动HDFS集群:
执行start-dfs.sh
脚本启动HDFS服务,启动后可通过jps
命令查看进程:start-dfs.sh jps # 应显示NameNode、DataNode进程(若配置了SecondaryNameNode,也会显示)
- 验证HDFS状态:
- 访问HDFS Web界面(
http://namenode:50070
),查看集群状态; - 创建输入目录并上传测试文件:
hdfs dfs -mkdir -p /input hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input # 上传示例文件
- 访问HDFS Web界面(
四、YARN集群启动与集成
- 启动YARN服务:
在ResourceManager节点执行start-yarn.sh
脚本启动YARN服务,然后在所有DataNode节点启动NodeManager(若已同步配置文件,可直接在ResourceManager节点执行yarn-daemon.sh start nodemanager
):start-yarn.sh
- 验证YARN状态:
- 访问YARN Web界面(
http://namenode:8088
),查看ResourceManager与NodeManager状态; - 查看集群资源使用情况(
yarn node -list
)。
- 访问YARN Web界面(
五、集成验证(运行MapReduce作业)
通过运行经典的WordCount程序,验证HDFS与YARN的集成是否成功:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
- 步骤说明:
/input
为HDFS中的输入目录(需提前创建并上传文件);/output
为输出目录(需确保不存在,YARN会自动创建);- 执行完成后,通过
hdfs dfs -cat /output/part-r-00000
查看结果。
- 预期结果:
若作业成功执行,Web界面会显示作业状态为“SUCCEEDED”,且/output
目录下生成统计结果文件。
注意事项
- 配置一致性:所有节点的
core-site.xml
、hdfs-site.xml
、yarn-site.xml
需保持一致; - 端口开放:确保防火墙开放HDFS(9000、50070)、YARN(8088)等关键端口;
- 生产环境建议:使用Hadoop 3.x及以上版本,配置HDFS副本数≥3、YARN ResourceManager HA(高可用),并定期备份NameNode元数据。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS HDFS与YARN集成实践
本文地址: https://pptw.com/jishu/724005.html