如何在Debian上配置Hadoop集群
导读:一、环境准备 节点规划:搭建Hadoop集群需至少3个节点(1个NameNode主节点、1个NameNode备用节点、1个及以上DataNode;若启用YARN高可用,还需1个ResourceManager主节点、1个备用节点)。确保所有...
一、环境准备
- 节点规划:搭建Hadoop集群需至少3个节点(1个NameNode主节点、1个NameNode备用节点、1个及以上DataNode;若启用YARN高可用,还需1个ResourceManager主节点、1个备用节点)。确保所有节点处于同一局域网,能互相通信。
- 系统更新与基础软件安装:在所有节点执行
sudo apt update & & sudo apt upgrade -y
更新系统;安装OpenJDK 8(或更高版本,推荐Temurin):sudo apt install -y openjdk-8-jdk
(或使用Temurin源安装);安装SSH服务:sudo apt install -y openssh-server
,用于节点间无密码登录。
二、安装Hadoop
- 下载与解压:从Apache官网下载稳定版Hadoop(如3.3.x),解压至
/usr/local
目录:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz & & sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
。 - 配置环境变量:编辑
~/.bashrc
(或/etc/profile
),添加以下内容:
执行export HADOOP_HOME=/usr/local/hadoop-3.3.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 或Temurin路径
source ~/.bashrc
使配置生效;验证安装:hadoop version
,应显示Hadoop版本信息。
三、配置SSH免密登录
- 生成密钥对:在主节点(如NameNode)执行
ssh-keygen -t rsa -b 4096
,按提示回车(默认保存路径~/.ssh/id_rsa
,无需设置密码)。 - 分发公钥:将公钥复制到所有节点(包括自身):
ssh-copy-id hadoop@namenode
、ssh-copy-id hadoop@datanode1
(hadoop
为集群统一用户名,需提前在各节点创建)。 - 测试免密登录:执行
ssh hadoop@namenode
、ssh hadoop@datanode1
,无需输入密码即可登录,验证配置成功。
四、配置Hadoop核心文件
所有节点需配置core-site.xml
、mapred-site.xml
;NameNode节点需配置hdfs-site.xml
;若启用YARN,需配置yarn-site.xml
。
- core-site.xml:设置HDFS默认通信地址和临时目录:
< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://namenode:9000< /value> < !-- 主节点主机名 --> < /property> < property> < name> hadoop.tmp.dir< /name> < value> /opt/hadoop/tmp< /value> < !-- 临时目录,需提前创建 --> < /property> < /configuration>
- hdfs-site.xml(NameNode节点):配置HDFS副本数、NameNode数据目录、DataNode数据目录及高可用(可选):
< configuration> < property> < name> dfs.replication< /name> < value> 3< /value> < !-- 数据副本数,根据节点数量调整 --> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> /opt/hadoop/hdfs/namenode< /value> < !-- NameNode元数据目录 --> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> /opt/hadoop/hdfs/datanode< /value> < !-- DataNode数据目录 --> < /property> < !-- 高可用配置(可选) --> < property> < name> dfs.ha.namenodes.mycluster< /name> < value> nn1,nn2< /value> < !-- NameNode ID列表 --> < /property> < property> < name> dfs.namenode.rpc-address.mycluster.nn1< /name> < value> namenode1:8020< /value> < /property> < property> < name> dfs.namenode.rpc-address.mycluster.nn2< /name> < value> namenode2:8020< /value> < /property> < property> < name> dfs.namenode.shared.edits.dir< /name> < value> qjournal://journalnode1:8485; journalnode2:8485; journalnode3:8485/mycluster< /value> < !-- JournalNode共享目录 --> < /property> < property> < name> dfs.ha.automatic-failover.enabled< /name> < value> true< /value> < !-- 启用自动故障转移 --> < /property> < /configuration>
- mapred-site.xml:配置MapReduce运行框架为YARN:
< configuration> < property> < name> mapreduce.framework.name< /name> < value> yarn< /value> < /property> < /configuration>
- yarn-site.xml(ResourceManager节点):配置YARN资源管理器地址及Shuffle服务:
< configuration> < property> < name> yarn.resourcemanager.hostname< /name> < value> resourcemanager< /value> < !-- ResourceManager主机名 --> < /property> < property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < /property> < property> < name> yarn.nodemanager.aux-services.mapreduce.shuffle.class< /name> < value> org.apache.hadoop.mapred.ShuffleHandler< /value> < /property> < !-- 高可用配置(可选) --> < property> < name> yarn.resourcemanager.ha.enabled< /name> < value> true< /value> < /property> < property> < name> yarn.resourcemanager.cluster-id< /name> < value> yarn-cluster< /value> < /property> < property> < name> yarn.resourcemanager.ha.rm-ids< /name> < value> rm1,rm2< /value> < /property> < property> < name> yarn.resourcemanager.zk-address< /name> < value> namenode1:2181,namenode2:2181,namenode3:2181< /value> < /property> < /configuration>
五、配置主机名解析
编辑所有节点的/etc/hosts
文件,添加集群节点的IP地址与主机名映射(替换为实际IP):
127.0.0.1 localhost
192.168.1.100 namenode
192.168.1.101 datanode1
192.168.1.102 datanode2
192.168.1.103 resourcemanager
保存后执行ping namenode
测试解析是否正确。
六、初始化HDFS(仅NameNode节点)
在NameNode节点执行hdfs namenode -format
,格式化HDFS元数据目录(此操作会清除原有数据,仅首次启动需执行)。
七、启动Hadoop集群
- 启动HDFS:在NameNode节点执行
start-dfs.sh
,启动NameNode和DataNode服务;执行jps
查看进程,应显示NameNode
、DataNode
。 - 启动YARN:在ResourceManager节点执行
start-yarn.sh
,启动ResourceManager和NodeManager服务;执行yarn node -list
查看NodeManager列表,验证YARN启动成功。 - (可选)启动高可用组件:若配置了HDFS或YARN高可用,需启动JournalNode(
hadoop-daemons.sh start journalnode
)和ZooKeeper集群(zkServer.sh start
),并验证ZooKeeper状态(zkServer.sh status
)。
八、验证集群状态
- HDFS验证:执行
hdfs dfs -ls /
,若返回“Permission denied”,可执行hdfs dfs -mkdir -p /user/hadoop
创建用户目录,再执行hdfs dfs -ls /
查看根目录。 - YARN验证:执行
yarn node -list
,应显示所有NodeManager节点信息;提交测试任务:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 100
,验证YARN任务调度功能。 - Web UI验证:访问NameNode Web界面(
http://namenode:9000
)、ResourceManager Web界面(http://resourcemanager:8088
),查看集群状态。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian上配置Hadoop集群
本文地址: https://pptw.com/jishu/716861.html