阅读量:3
Ubuntu与Hadoop高可用性(HA)配置指南
高可用性(HA)配置是Hadoop生产环境的核心需求,旨在通过NameNode主备切换、ResourceManager主备切换及ZooKeeper协调,解决单点故障问题,保障集群稳定运行。以下是基于Ubuntu系统的详细配置步骤:
一、前置准备
-
环境要求
- 至少3台Ubuntu服务器(如
node1、node2、node3),建议4台(区分NameNode、DataNode、JournalNode角色); - 所有节点安装JDK 8(
sudo apt install openjdk-8-jdk); - 配置静态IP、主机名(如
node1对应192.168.1.101)及**/etc/hosts**映射(避免DNS依赖); - 配置SSH免密登录(主节点需免密登录所有节点,使用
ssh-keygen -t rsa生成密钥,ssh-copy-id分发公钥); - 部署ZooKeeper集群(3节点,参考Ubuntu下ZooKeeper集群搭建教程,确保
zkServer.sh status显示Leader/Follower状态正常)。
- 至少3台Ubuntu服务器(如
-
Hadoop安装
- 下载Hadoop(如2.7.3或3.3.4版本),解压至
/usr/local/hadoop; - 配置环境变量(
~/.bashrc中添加export HADOOP_HOME=/usr/local/hadoop、export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin,执行source ~/.bashrc生效)。
- 下载Hadoop(如2.7.3或3.3.4版本),解压至
二、核心配置步骤
1. NameNode高可用配置(HDFS HA)
NameNode HA通过**QJM(Quorum Journal Manager)**实现元数据同步,确保主备NameNode数据一致。
- 修改
core-site.xml(定义HDFS命名空间及ZooKeeper地址):<property> <name>fs.defaultFSname> <value>hdfs://myclustervalue> property> <property> <name>ha.zookeeper.quorumname> <value>node1:2181,node2:2181,node3:2181value> property> <property> <name>dfs.ha.automatic-failover.enabledname> <value>truevalue> property> - 修改
hdfs-site.xml(配置主备NameNode、JournalNode及故障转移机制):<property> <name>dfs.nameservicesname> <value>myclustervalue> property> <property> <name>dfs.ha.namenodes.myclustername> <value>nn1,nn2value> property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1name> <value>node1:8020value> property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2name> <value>node2:8020value> property> <property> <name>dfs.namenode.http-address.mycluster.nn1name> <value>node1:50070value> property> <property> <name>dfs.namenode.http-address.mycluster.nn2name> <value>node2:50070value> property> <property> <name>dfs.namenode.shared.edits.dirname> <value>qjournal://node1:8485;node2:8485;node3:8485/myclustervalue> property> <property> <name>dfs.journalnode.edits.dirname> <value>/usr/local/hadoop/data/journalnodevalue> property> <property> <name>dfs.ha.fencing.methodsname> <value>sshfencevalue> property> <property> <name>dfs.ha.fencing.ssh.private-key-filesname> <value>/home/hadoop/.ssh/id_rsavalue> property> - 格式化NameNode(仅在主NameNode上执行一次):
hdfs namenode -format - 启动JournalNode(在所有JournalNode节点上执行):
hdfs --daemon start journalnode - 初始化共享编辑日志(在主NameNode上执行):
hdfs namenode -initializeSharedEdits - 启动HDFS集群:
start-dfs.sh
2. ResourceManager高可用配置(YARN HA)
ResourceManager HA通过主备RM实现资源管理高可用,配置步骤类似NameNode。
- 修改
yarn-site.xml(启用RM HA及故障转移):<property> <name>yarn.resourcemanager.ha.enabledname> <value>truevalue> property> <property> <name>yarn.resourcemanager.cluster-idname> <value>yarn-clustervalue> property> <property> <name>yarn.resourcemanager.ha.rm-idsname> <value>rm1,rm2value> property> <property> <name>yarn.resourcemanager.hostname.rm1name> <value>node1value> property> <property> <name>yarn.resourcemanager.hostname.rm2name> <value>node2value> property> <property> <name>yarn.resourcemanager.zk-addressname> <value>node1:2181,node2:2181,node3:2181value> property> <property> <name>yarn.resourcemanager.failover.enabledname> <value>truevalue> property> <property> <name>yarn.resourcemanager.failover.typename> <value>zookeepervalue> property> - 启动YARN集群:
start-yarn.sh
三、验证高可用性
- 检查进程状态:
在各节点执行jps,确认主备NameNode、ResourceManager及JournalNode进程正常运行(如NameNode、StandbyNameNode、ResourceManager、NodeManager)。 - Web界面验证:
访问http://node1:50070(HDFS Web UI)和http://node1:8088(YARN Web UI),查看集群状态及主备角色切换情况。 - 模拟故障切换:
- 杀死主NameNode进程(
kill -9),观察备用NameNode是否自动接管(jps中StandbyNameNode变为NameNode); - 杀死主ResourceManager进程,验证备用ResourceManager是否自动启动。
- 杀死主NameNode进程(
四、优化建议
- 数据备份:定期备份HDFS关键数据(如
/user/hadoop目录),使用hdfs dfs -cp命令复制到异地节点; - 监控告警:部署Prometheus+Granafa监控集群状态(如NameNode内存、磁盘使用率、YARN资源利用率),设置阈值告警(如邮件、短信通知);
- 性能调优:调整HDFS块大小(
dfs.blocksize,默认128MB,大文件可设为256MB)、YARN容器资源分配(yarn.scheduler.maximum-allocation-mb,根据节点内存调整)。
通过以上步骤,可在Ubuntu系统上实现Hadoop集群的高可用性,确保元数据及资源管理服务的高可靠性,满足生产环境需求。
以上就是关于“Ubuntu与Hadoop的高可用性配置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm