hadoop2.7.3+HA+YARN+zookeeper高可用集群如何部署
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"hadoop2.7.3+HA+YARN+zookeeper高可用集群如何部署"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情
千家信息网最后更新 2026年11月02日hadoop2.7.3+HA+YARN+zookeeper高可用集群如何部署
本篇内容介绍了"hadoop2.7.3+HA+YARN+zookeeper高可用集群如何部署"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、安装版本:
| JDK | 1.8.0_111-b14 |
| hadoop | hadoop-2.7.3 |
| zookeeper | zookeeper-3.5.2 |
二、安装步骤:
JDK的安装和集群的依赖环境配置不再叙述
1、hadoop配置
hadoop配置主要涉及hdfs-site.xml,core-site.xml,mapred-site.xml,yarn-site.xml四个文件。以下详细介绍每个文件的配置。
core-site.xml的配置
fs.defaultFS hdfs://cluster1 HDFS namenode的逻辑名称,也就是namenode HA,此值要对应hdfs-site.xml里的dfs.nameservices hadoop.tmp.dir /usr/hadoop/tmp hdfs中namenode和datanode的数据默认放置路径,也可以在hdfs-site.xml中分别指定 ha.zookeeper.quorum master:2181,salve1:2181,salve2:2181 zookeeper集群的地址和端口,zookeeper集群的节点数必须为奇数 hdfs-site.xml的配置(重点配置)
dfs.name.dir /usr/hadoop/hdfs/name namenode的数据放置目录 dfs.data.dir /usr/hadoop/hdfs/data datanode的数据放置目录 dfs.replication 4 数据块的备份数,默认是3 dfs.nameservices cluster1 HDFS namenode的逻辑名称,也就是namenode HA dfs.ha.namenodes.cluster1 ns1,ns2 nameservices对应的namenode逻辑名 dfs.namenode.rpc-address.cluster1.ns1 master:9000 指定namenode(ns1)的rpc地址和端口 dfs.namenode.http-address.cluster1.ns1 master:50070 指定namenode(ns1)的web地址和端口 dfs.namenode.rpc-address.cluster1.ns2 salve1:9000 指定namenode(ns2)的rpc地址和端口 dfs.namenode.http-address.cluster1.ns2 salve1:50070 指定namenode(ns2)的web地址和端口 dfs.namenode.shared.edits.dir qjournal://master:8485;salve1:8485;salve2:8485/cluster1 这是NameNode读写JNs组的uri,active NN 将 edit log 写入这些JournalNode,而 standby NameNode 读取这些 edit log,并作用在内存中的目录树中 dfs.journalnode.edits.dir /usr/hadoop/journal ournalNode 所在节点上的一个目录,用于存放 editlog 和其他状态信息。 dfs.ha.automatic-failover.enabled true 启动自动failover。自动failover依赖于zookeeper集群和ZKFailoverController(ZKFC),后者是一个zookeeper客户端,用来监控NN的状态信息。每个运行NN的节点必须要运行一个zkfc dfs.client.failover.proxy.provider.cluster1 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider 配置HDFS客户端连接到Active NameNode的一个java类 dfs.ha.fencing.methods sshfence 解决HA集群脑裂问题(即出现两个 master 同时对外提供服务,导致系统处于不一致状态)。在 HDFS HA中,JournalNode 只允许一个 NameNode 写数据,不会出现两个 active NameNode 的问题,但是,当主备切换时,之前的 active NameNode 可能仍在处理客户端的 RPC 请求,为此,需要增加隔离机制(fencing)将之前的 active NameNode 杀死。常用的fence方法是sshfence,要指定ssh通讯使用的密钥dfs.ha.fencing.ssh.private-key-files和连接超时时间 dfs.ha.fencing.ssh.private-key-files /home/hadoop/.ssh/id_rsa ssh通讯使用的密钥 dfs.ha.fencing.ssh.connect-timeout 30000 连接超时时间 mapred-site.xml的配置
mapreduce.framework.name yarn 指定运行mapreduce的环境是yarn,与hadoop1截然不同的地方 mapreduce.jobhistory.address master:10020 MR JobHistory Server管理的日志的存放位置 mapreduce.jobhistory.webapp.address master:19888 查看历史服务器已经运行完的Mapreduce作业记录的web地址,需要启动该服务才行 mapreduce.jobhistory.done-dir /data/hadoop/done MR JobHistory Server管理的日志的存放位置,默认:/mr-history/done mapreduce.jobhistory.intermediate-done-dir hdfs://mycluster-pha/mapred/tmp MapReduce作业产生的日志存放位置,默认值:/mr-history/tmp yarn-site.xml的配置
yarn.nodemanager.aux-services mapreduce_shuffle 默认 yarn.nodemanager.auxservices.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address master:8032 yarn.resourcemanager.scheduler.address master:8030 yarn.resourcemanager.resource-tracker.address master:8031 yarn.resourcemanager.admin.address master:8033 yarn.resourcemanager.webapp.address master:8088 yarn.nodemanager.resource.memory-mb 1024 该值配置小于1024时,NM是无法启动的!会报错:NodeManager from slavenode2 doesn't satisfy minimum allocations, Sending SHUTDOWN signal to the NodeManager.
2.zookeeper配置
zookeeper的配置主要是zoo.cfg和myid两个文件
conf/zoo.cfg配置:先将zoo_sample.cfg改成zoo.cfg
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir:数据的放置路径dataLogDir:log的放置路径
initLimit=10syncLimit=5clientPort=2181tickTime=2000dataDir=/usr/zookeeper/tmp/datadataLogDir=/usr/zookeeper/tmp/logserver.1=master:2888:3888server.2=slave1:2888:3888server.3=slave2:2888:3888
在[master,slave1,slave2]节点的dataDir目录新建文件myid
vi myid
master节点编辑:1
slave1节点编辑:2
slave2节点编辑:3
如下:
[hadoop@master data]$ vi myid 1
三、启动集群
1.zookeeper集群启动
1.启动zookeeper集群,在三个节点全部启动
bin/zkServer.sh start
2.查看集群zookeeper状态:zkServer.sh status,一个learer两个follower。
[hadoop@master hadoop-2.7.3]$ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper-3.5.2-alpha/bin/../conf/zoo.cfgClient port found: 2181. Client address: localhost.Mode: follower
[hadoop@slave1 root]$ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper-3.5.2-alpha/bin/../conf/zoo.cfgClient port found: 2181. Client address: localhost.Mode: leader
[hadoop@slave2 root]$ zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper-3.5.2-alpha/bin/../conf/zoo.cfgClient port found: 2181. Client address: localhost.Mode: follower
3.验证zookeeper(非必须): 执行zkCli.sh
[hadoop@slave1 root]$ zkCli.shConnecting to localhost:21812016-12-18 02:05:03,115 [myid:] - INFO [main:Environment@109] - Client environment:zookeeper.version=3.5.2-alpha-1750793, built on 06/30/2016 13:15 GMT2016-12-18 02:05:03,118 [myid:] - INFO [main:Environment@109] - Client environment:host.name=salve12016-12-18 02:05:03,118 [myid:] - INFO [main:Environment@109] - Client environment:java.version=1.8.0_1112016-12-18 02:05:03,120 [myid:] - INFO [main:Environment@109] - Client environment:java.vendor=Oracle Corporation2016-12-18 02:05:03,120 [myid:] - INFO [main:Environment@109] - Client environment:java.home=/usr/local/jdk1.8.0_111/jre2016-12-18 02:05:03,120 [myid:] - INFO [main:Environment@109] - Client environment:java.class.path=/usr/local/zookeeper-3.5.2-alpha/bin/../build/classes:/usr/local/zookeeper-3.5.2-alpha/bin/../build/lib/*.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/slf4j-log4j12-1.7.5.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/slf4j-api-1.7.5.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/servlet-api-2.5-20081211.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/log4j-1.2.17.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/jline-2.11.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/jetty-util-6.1.26.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/jetty-6.1.26.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/javacc.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/jackson-mapper-asl-1.9.11.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/jackson-core-asl-1.9.11.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../lib/commons-cli-1.2.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../zookeeper-3.5.2-alpha.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../src/java/lib/*.jar:/usr/local/zookeeper-3.5.2-alpha/bin/../conf:.:/usr/local/jdk1.8.0_111/lib/dt.jar:/usr/local/jdk1.8.0_111/lib/tools.jar:/usr/local/zookeeper-3.5.2-alpha/bin:/usr/local/hadoop-2.7.3/bin2016-12-18 02:05:03,120 [myid:] - INFO [main:Environment@109] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib2016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:java.io.tmpdir=/tmp2016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:java.compiler=2016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:os.name=Linux2016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:os.arch=amd642016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:os.version=3.10.0-327.22.2.el7.x86_642016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:user.name=hadoop2016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:user.home=/home/hadoop2016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:user.dir=/tmp/hsperfdata_hadoop2016-12-18 02:05:03,121 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.free=52MB2016-12-18 02:05:03,123 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.max=228MB2016-12-18 02:05:03,123 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.total=57MB2016-12-18 02:05:03,146 [myid:] - INFO [main:ZooKeeper@855] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@593634adWelcome to ZooKeeper!2016-12-18 02:05:03,171 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1113] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)JLine support is enabled2016-12-18 02:05:03,243 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@948] - Socket connection established, initiating session, client: /127.0.0.1:56184, server: localhost/127.0.0.1:21812016-12-18 02:05:03,252 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1381] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x200220f5fe30060, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: localhost:2181(CONNECTED) 0]
2.hadoop集群启动
1.第一次配置启动
1.1在三个节点上启动Journalnode deamons,然后jps,出现JournalNode进程。
sbin/./hadoop-daemon.sh start journalnode
jpsJournalNode
1.2格式化master上的namenode(任意一个),然后启动该节点的namenode。
bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode
1.3在另一个namenode节点slave1上同步master上的元数据信息
bin/hdfs namenode -bootstrapStandby
1.4停止hdfs上的所有服务
sbin/stop-dfs.sh
1.5初始化zkfc
bin/hdfs zkfc -formatZK
1.6启动hdfs
sbin/start-dfs.sh
1.7启动yarn
sbin/start-yarn.sh
2.非第一次配置启动
2.1直接启动hdfs和yarn即可,namenode、datanode、journalnode、DFSZKFailoverController都会自动启动。
sbin/start-dfs.sh
2.2启动yarn
sbin/start-yarn.sh
四、查看各节点的进程
4.1master
[hadoop@master hadoop-2.7.3]$ jps26544 QuorumPeerMain25509 JournalNode25704 DFSZKFailoverController26360 Jps25306 DataNode25195 NameNode25886 ResourceManager25999 NodeManager
4.2slave1
[hadoop@slave1 root]$ jps2289 DFSZKFailoverController9400 QuorumPeerMain2601 Jps2060 DataNode2413 NodeManager2159 JournalNode1983 NameNode
4.3slave2
[hadoop@slave2 root]$ jps11984 DataNode12370 Jps2514 QuorumPeerMain12083 JournalNode12188 NodeManager
"hadoop2.7.3+HA+YARN+zookeeper高可用集群如何部署"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
配置
集群
节点
数据
地址
目录
端口
两个
文件
状态
服务
运行
位置
信息
客户
日志
路径
逻辑
三个
也就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
广州紫鲸互联网科技有限公司
湖南永感互联网科技有限公司
互联网最新的科技有限公司
港股互联网科技股
互联网 科技公司
互联网科技的英文
唐信互联网科技 大连
多迪互联网科技有限公司
字节跳动和互联网科技
宁夏众和广鑫互联网科技有限公司
移动互联网科技公司
互联网科技公司有风险吗
佛山市翊博互联网络科技有限公司
佛山市拉法互联网科技有限公司
21世纪互联网科技成就
兰石爱特工业互联网科技分公司
绵阳真晨互联网科技有限公司
互联网科技博主张洲
优雇互联网科技有限公司
互联网科技资迅
上海挚品互联网科技
卓越科技互联网 招聘
甘肃拓世互联网科技有限公司
互联网科技热点资讯
崇明区互联网教育科技诚信经营
中国航天科技大学国际工业互联网
2021世界互联网领先科技成果发布
陕西彩京云互联网科技有限公司
利用互联网等科技手段