阅读量:2
CentOS 7/8 单机快速搭建 HDFS 实例教程
本教程在 CentOS 7/8 上以 Hadoop 3.3.x 为例,完成 HDFS 的单机部署与验证,包含端口、目录、权限与防火墙等关键细节,可直接照做并用于学习与测试环境。
一 环境准备
- 准备一台 CentOS 7/8 主机,确保可外网访问与系统更新。
- 安装 Java 8(Hadoop 3.3.x 推荐 Java 8):
- 执行:
sudo yum install java-1.8.0-openjdk-devel -y - 验证:
java -version
- 执行:
- 创建专用用户(推荐):
sudo useradd hadoop && sudo passwd hadoop,后续操作尽量使用 hadoop 用户执行(文件权限更清晰)。
二 安装与配置 Hadoop
- 下载并解压 Hadoop(示例版本 3.3.4):
- 执行:
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz - 解压:
sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/ - 重命名:
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
- 执行:
- 配置环境变量(所有节点一致):
- 新建文件:
sudo vim /etc/profile.d/hadoop.sh - 写入:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin - 生效:
source /etc/profile.d/hadoop.sh - 验证:
hadoop version
- 新建文件:
- 创建数据与临时目录(示例路径,可按需调整):
- 执行:
sudo mkdir -p /usr/local/hadoop/data/namenode sudo mkdir -p /usr/local/hadoop/data/datanode sudo mkdir -p /usr/local/hadoop/tmp sudo chown -R hadoop:hadoop /usr/local/hadoop
- 执行:
- 配置核心文件(路径均为 $HADOOP_HOME/etc/hadoop/):
- core-site.xml
fs.defaultFS hdfs://localhost:9000 hadoop.tmp.dir /usr/local/hadoop/tmp - hdfs-site.xml
dfs.replication 1 dfs.namenode.name.dir /usr/local/hadoop/data/namenode dfs.datanode.data.dir /usr/local/hadoop/data/datanode dfs.permissions.enabled false - 说明:
- 单机学习将副本数设为 1;生产环境建议 3。
- 关闭权限校验便于测试,生产请开启并配置 Kerberos。
- core-site.xml
三 启动与验证
- 首次启动前格式化 NameNode(仅一次):
- 执行:
hdfs namenode -format
- 执行:
- 启动 HDFS:
- 执行:
start-dfs.sh
- 执行:
- 进程检查:
- 执行:
jps - 期望看到:NameNode、DataNode、SecondaryNameNode
- 执行:
- Web 界面:
- 访问:http://<服务器IP>:50070(NameNode HTTP 地址)
- 基本操作验证:
hdfs dfs -mkdir /user/test hdfs dfs -put /etc/hosts /user/test hdfs dfs -ls /user/test hdfs dfsadmin -report - 停止服务:
- 执行:
stop-dfs.sh
- 执行:
四 防火墙与端口放行
- 放行常用端口(示例以 firewalld 为例):
sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp sudo firewall-cmd --permanent --zone=public --add-port=50010/tcp sudo firewall-cmd --permanent --zone=public --add-port=50020/tcp sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp sudo firewall-cmd --permanent --zone=public --add-port=50075/tcp sudo firewall-cmd --permanent --zone=public --add-port=50090/tcp sudo firewall-cmd --reload - 说明:
- 9000 为 HDFS RPC 端口;50070 为 NameNode Web UI;其余为 DataNode/辅助服务端口。
- 生产环境不建议直接关闭防火墙,应精细化放行端口与来源网段。
五 常见问题与优化建议
- SSH 免密登录(多节点或脚本化管理时强烈建议):
ssh-keygen -t rsa ssh-copy-id hadoop@ - 时间与主机名解析:
- 建议安装并启用 NTP 同步时间;在 /etc/hosts 或 DNS 中正确解析各节点主机名,避免通信异常。
- 目录与权限:
- 确保 dfs.namenode.name.dir、dfs.datanode.data.dir 所在磁盘有足够空间与正确属主(如 hadoop:hadoop)。
- 副本与容量规划:
- 单机测试用 dfs.replication=1;多节点生产建议 3,并结合磁盘容量与容错需求调整。
- 安全建议:
- 生产环境开启 dfs.permissions.enabled,并考虑 Kerberos、网络分区与访问控制策略。
以上就是关于“CentOS HDFS配置实例教程”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm