阅读量:4
1. 环境准备
- 操作系统:选择CentOS、Ubuntu等Linux发行版(建议使用CentOS 7/8或Ubuntu 20.04及以上版本)。
- 硬件要求:确保各节点(NameNode、DataNode)具备足够资源:CPU(2核及以上)、内存(NameNode建议8GB+,DataNode建议4GB+)、存储(DataNode磁盘空间根据数据量调整,建议预留10%以上空闲空间)。
- 网络配置:所有节点处于同一局域网,配置静态IP地址;修改
/etc/hosts文件,将节点IP与主机名映射(如192.168.1.100 namenode、192.168.1.101 datanode1),确保节点间可通过主机名互相访问。
2. 安装Java环境
HDFS基于Java开发,需安装JDK 8或11(推荐OpenJDK,兼容性更好)。
- 安装命令(以CentOS为例):
sudo yum update sudo yum install -y java-1.8.0-openjdk-devel - 验证安装:
输出应包含Java版本信息(如java -versionopenjdk version "1.8.0_392")。 - 配置环境变量(可选但推荐):编辑
~/.bashrc或/etc/profile,添加JAVA_HOME路径:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:$JAVA_HOME/bin source ~/.bashrc # 使配置生效
3. 下载并解压Hadoop
- 下载Hadoop:从Apache官网获取最新稳定版本(如3.3.6),使用
wget命令下载:wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz - 解压安装:将压缩包解压至指定目录(如
/opt/hadoop):sudo tar -zxvf hadoop-3.3.6.tar.gz -C /opt/hadoop sudo chown -R hadoop:hadoop /opt/hadoop # 修改所有者(hadoop为用户) - 设置HADOOP_HOME:编辑
~/.bashrc,添加Hadoop环境变量:export HADOOP_HOME=/opt/hadoop/hadoop-3.3.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source ~/.bashrc # 使配置生效
4. 配置Hadoop核心文件
Hadoop的主要配置文件位于$HADOOP_HOME/etc/hadoop/目录下,需修改以下核心文件:
- core-site.xml(集群全局配置):
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://namenode:9000value> property> <property> <name>hadoop.tmp.dirname> <value>/opt/hadoop/hadoop-3.3.6/tmpvalue> property> configuration> - hdfs-site.xml(HDFS配置):
<configuration> <property> <name>dfs.replicationname> <value>3value> property> <property> <name>dfs.namenode.name.dirname> <value>/opt/hadoop/hadoop-3.3.6/data/namenodevalue> property> <property> <name>dfs.datanode.data.dirname> <value>/opt/hadoop/hadoop-3.3.6/data/datanodevalue> property> configuration> - slaves文件(指定DataNode节点):
编辑$HADOOP_HOME/etc/hadoop/slaves,添加所有DataNode的主机名(每行一个):datanode1 datanode2 datanode3
5. 配置SSH免密登录
集群节点间需通过SSH无密码通信(如NameNode向DataNode分发任务),步骤如下:
- 生成密钥对(在NameNode上执行):
ssh-keygen -t rsa # 按回车键接受默认路径和空密码 - 复制公钥到所有节点:
ssh-copy-id hadoop@namenode # 本机无需复制 ssh-copy-id hadoop@datanode1 ssh-copy-id hadoop@datanode2 ssh-copy-id hadoop@datanode3 - 验证免密登录:
ssh hadoop@datanode1 # 应无需输入密码即可登录
6. 格式化HDFS
仅在NameNode上执行一次,用于初始化HDFS元数据(会清空所有数据,请谨慎操作):
hdfs namenode -format
格式化完成后,会在dfs.namenode.name.dir指定的目录下生成fsimage(元数据镜像)和edits(编辑日志)文件。
7. 启动HDFS集群
- 启动HDFS服务(在NameNode上执行):
该命令会自动启动NameNode、SecondaryNameNode(若配置了start-dfs.shdfs.namenode.secondary.http.address)和所有DataNode(根据slaves文件)。 - 验证进程是否启动:
应看到jps # 查看Java进程NameNode、DataNode、SecondaryNameNode等进程(若未启动,检查日志文件$HADOOP_HOME/logs/下的错误信息)。
8. 验证集群状态
- 查看集群摘要:
输出应显示NameNode信息、DataNode列表、存储容量、副本数等。hdfs dfsadmin -report - 访问Web界面:
在浏览器中输入http://namenode:9870(默认端口9870),查看HDFS集群状态、文件系统树、DataNode分布等。 - 简单文件操作:
hdfs dfs -mkdir -p /user/hadoop # 创建用户目录 hdfs dfs -put /opt/hadoop/hadoop-3.3.6/LICENSE.txt /user/hadoop/ # 上传文件到HDFS hdfs dfs -ls /user/hadoop # 查看文件列表
9. 可选:配置防火墙
若集群节点启用了防火墙,需开放Hadoop所需端口(避免通信阻塞):
sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp # NameNode RPC端口
sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp # NameNode Web端口(旧版本)
sudo firewall-cmd --permanent --zone=public --add-port=9870/tcp # NameNode Web端口(新版本)
sudo firewall-cmd --reload # 重新加载防火墙规则
以上就是关于“Linux中HDFS集群搭建步骤是什么”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm