Hadoop在CentOS 7单机环境下的部署与配置指南
准备工作
在开始Hadoop部署前,需确保系统满足基础要求并完成必要配置。
硬件与软件需求
- 硬件:建议至少4GB内存(用于运行MapReduce任务)、50GB可用磁盘空间。
- 软件:CentOS 7操作系统(64位)、Java JDK 8或11(Hadoop依赖Java运行时环境)。
关闭防火墙与SELinux
为避免网络访问限制,执行以下命令:
# 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld # 永久关闭SELinux(需重启生效) sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config reboot # 重启后验证:getenforce应返回Disabled
配置主机名与hosts文件
设置静态主机名并添加本地解析:
hostnamectl set-hostname hadoop-node echo "127.0.0.1 localhost hadoop-node" >> /etc/hosts
安装Java开发工具包(JDK)
通过yum安装OpenJDK并配置环境变量:
yum install java-1.8.0-openjdk-devel -y echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> ~/.bashrc source ~/.bashrc java -version # 验证版本输出
Hadoop核心组件介绍
Hadoop生态包含多个模块,单机部署仅需关注核心组件:
组件 | 功能描述 | 核心配置文件 |
---|---|---|
HDFS | 分布式文件系统 | hdfs-site.xml |
YARN | 资源调度与管理框架 | yarn-site.xml |
MapReduce | 分布式计算引擎 | mapred-site.xml |
Hadoop安装与配置步骤
下载与解压Hadoop
从Apache官网获取稳定版压缩包(如hadoop-3.3.6.tar.gz
),解压至指定目录:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz tar -zxvf hadoop-3.3.6.tar.gz -C /opt/ ln -s /opt/hadoop-3.3.6 /opt/hadoop # 创建软链接便于管理
配置环境变量
编辑~/.bashrc
添加Hadoop路径:
echo "export HADOOP_HOME=/opt/hadoop" >> ~/.bashrc echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> ~/.bashrc source ~/.bashrc
修改核心配置文件
进入${HADOOP_HOME}/etc/hadoop
目录,按顺序编辑以下文件:
hadoop-env.sh:指定Java路径
echo "export JAVA_HOME=${JAVA_HOME}" >> hadoop-env.sh
core-site.xml:配置默认文件系统与临时目录
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/data/tmp</value> </property> </configuration>
hdfs-site.xml:设置NameNode与DataNode存储路径
<configuration> <property> <name>dfs.replication</name> <value>1</value> <!-- 单机模式无需副本 --> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/data/datanode</value> </property> </configuration>
mapred-site.xml:配置MapReduce框架
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml:YARN资源管理器参数
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
启动与验证服务
格式化NameNode
首次启动前需格式化HDFS命名空间:
hdfs namenode -format
启动Hadoop集群
使用脚本启动所有组件:
start-dfs.sh && start-yarn.sh jps # 验证进程:应包含NameNode、DataNode、ResourceManager、NodeManager
Web界面验证
- HDFS管理界面:http://localhost:9870
- YARN资源管理器:http://localhost:8088
常用操作示例
上传文件至HDFS
hdfs dfs -mkdir /input hdfs dfs -put /etc/passwd /input hdfs dfs -ls /input # 列出文件
运行WordCount示例
将示例jar包复制到HDFS并执行:
hdfs dfs -copyFromLocal ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar . yarn jar hadoop-mapreduce-examples-*.jar wordcount /input /output hdfs dfs -cat /output/* # 查看结果
相关问答FAQs
Q1:启动Hadoop时提示“Permission denied”错误,如何解决?
A:通常因目录权限不足导致,执行以下命令修复:
chown -R $USER:$USER /opt/hadoop/data # 将数据目录所有权赋予当前用户 chmod -R 755 /opt/hadoop/data # 设置读写权限
Q2:为什么单机模式下HDFS的副本数设置为1?
A:HDFS默认副本数为3,但在单机环境中仅有一台节点,若设置多副本会导致写入失败,设为1可确保数据在本地完整存储,不影响功能演示,生产环境需根据集群规模调整此参数。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复