1. 准备工作
- 系统要求:确保Debian系统为最新稳定版(如Debian 11/12),关闭防火墙(
sudo ufw disable)或放行HDFS相关端口(如9000、50070、8020等)。 - 硬件要求:NameNode建议至少2GB内存,DataNode建议1GB以上内存;每个节点需预留足够磁盘空间(如100GB以上)用于存储数据。
- 网络配置:为每个节点分配静态IP(如master节点
192.168.1.100、DataNode节点192.168.1.101-192.168.1.103),编辑/etc/hosts文件添加所有节点的IP与主机名映射(如192.168.1.100 master、192.168.1.101 node1)。
2. 安装Java环境 Hadoop依赖Java 11及以上版本,推荐使用OpenJDK:
sudo apt update && sudo apt install -y openjdk-11-jdk
# 验证安装
java -version # 应输出Java 11及以上版本信息
3. 创建Hadoop专用用户 为避免权限问题,创建专用用户并授予权限:
sudo adduser hadoop # 设置密码及个人信息
sudo usermod -aG sudo hadoop # 加入sudo组
# 切换至hadoop用户
su - hadoop
4. 下载并解压Hadoop
从Apache官网下载稳定版Hadoop(如3.3.6),解压至/usr/local/并重命名:
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
# 设置目录权限
sudo chown -R hadoop:hadoop /usr/local/hadoop
5. 配置Hadoop环境变量
编辑/etc/profile文件,添加Hadoop及Java环境变量:
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /etc/profile
echo 'export HADOOP_HOME=/usr/local/hadoop' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile
# 使配置生效
source /etc/profile
6. 配置SSH免密码登录 在NameNode上生成SSH密钥,并复制至所有节点(包括自身):
ssh-keygen -t rsa -b 4096 -C "hadoop@cluster" # 直接回车,默认路径
ssh-copy-id hadoop@master # 复制至NameNode自身
ssh-copy-id hadoop@node1 # 复制至DataNode1
ssh-copy-id hadoop@node2 # 复制至DataNode2
# 测试免密登录(如ssh hadoop@node1应无需密码)
7. 配置Hadoop核心文件
所有配置文件位于$HADOOP_HOME/etc/hadoop/目录下,需修改以下文件:
- core-site.xml(定义HDFS默认文件系统):
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://master:9000value> property> <property> <name>hadoop.tmp.dirname> <value>/opt/hadoop/tmpvalue> property> configuration> - hdfs-site.xml(定义HDFS副本数及数据目录):
<configuration> <property> <name>dfs.replicationname> <value>3value> property> <property> <name>dfs.namenode.name.dirname> <value>/opt/hadoop/hdfs/namenodevalue> property> <property> <name>dfs.datanode.data.dirname> <value>/opt/hadoop/hdfs/datanodevalue> property> configuration> - mapred-site.xml(定义MapReduce框架):
<configuration> <property> <name>mapreduce.framework.namename> <value>yarnvalue> property> configuration> - yarn-site.xml(定义YARN配置):
<configuration> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce_shufflevalue> property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname> <value>org.apache.hadoop.mapred.ShuffleHandlervalue> property> <property> <name>yarn.resourcemanager.hostnamename> <value>mastervalue> property> configuration>
8. 格式化NameNode 仅在NameNode上执行一次,用于初始化HDFS元数据:
hdfs namenode -format
# 执行后会提示“Successfully formatted”,表示成功
9. 启动HDFS集群 在NameNode上启动HDFS服务(包含NameNode和DataNode):
$HADOOP_HOME/sbin/start-dfs.sh
# 查看进程是否启动
jps # 应显示NameNode、DataNode进程
10. 验证集群状态
- Web界面:访问
http://master:9870(HDFS Web UI),查看集群状态、节点列表及存储信息。 - 命令行验证:
hdfs dfsadmin -report # 查看DataNode状态 hdfs dfs -mkdir /test # 创建测试目录 hdfs dfs -put /home/hadoop/testfile.txt /test # 上传测试文件 hdfs dfs -ls /test # 查看文件是否上传成功
注意事项:
- 确保所有节点的时间同步(可使用
ntpdate命令同步)。 - 若启动失败,检查
$HADOOP_HOME/logs/目录下的日志文件(如NameNode.log、DataNode.log)定位问题。 - 生产环境中建议配置高可用(HA),避免单点故障。
以上就是关于“Debian上HDFS集群怎么搭建”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm