步骤一;
干净的集群,全新的hdfs
在第一台主机上配置配置文件
core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bcqm1711</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.6.1/hadoopdata/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
</configuration>

hdfs-site.xml:
<configuration>
<!-- 指定hdfs的nameservice为beicai,就是那个代理程序,询问zk集群哪个namenode还活着 -->
<property>
<name>dfs.nameservices</name>
<value>bcqm1711</value>
</property>

<!—指定hdfs的两个NameNode都是什么名字(等会儿下面会配置他们所对应的机器的信息)-->
<property>
<name>dfs.ha.namenodes.bcqm1711</name>
<value>nn1,nn2</value>
</property>

<!—NameNode1的rpc通讯地址-->
<property>
<name>dfs.namenode.rpc-address.bcqm1711.nn1</name>
<value>hdp-qm-01:8020</value>
</property>

<!—NameNode2的rpc通讯地址-->
<property>
<name>dfs.namenode.rpc-address.bcqm1711.nn2</name>
<value>hdp-qm-02:8020</value>
</property>

<!—NameNode1的web界面地址-->
<property>
<name>dfs.namenode.http-address.bcqm1711.nn1</name>
<value>hdp-qm-01:50070</value>
</property>
<!—NameNode2的web界面地址-->
<property>
<name>dfs.namenode.http-address.bcqm1711.nn2</name>
<value>hdp-qm-02:50070</value>
</property>

######如果给一个有数据的HDFS添加HA,此处无需更改,保持原有地址即可#####
<!---namenode存放元数据信息的Linux本地地址,这个目录不需要我们自己创建->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/name</value>
</property>

<!—datanode存放用户提交的大文件的本地Linux地址,这个目录不需要我们自己创建-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/data</value>
</property>

<!—QJM存放共享数据的方式-->
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>
qjournal://hdp-qm-01:8485;hdp-qm-02:8485;hdp-qm-03:8485/bcqm1711</value>
</property>

<!—单个QJM进程(角色)存放本地edits文件的Linux地址-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/hadoop-2.6.1/hadoopdata/journal</value>
</property>

<!—开启hdfs的namenode死亡后自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

<!-- 指定zookeeper集群地址,辅助两个namenode进行失败切换 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>hdp-qm-01:2181,hdp-qm-02:2181,hdp-qm-03:2181</value>
</property>

<!—zkfc程序的主类-->
<property>
<name>dfs.client.failover.proxy.provider.bcqm1711</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!—防止多个namenode同时active(脑裂)的方式-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>

<!—指定本机的私钥所在目录,
注意:如果是普通用户hadoop则修改为root为”/home/hadoop/.ssh/id_rsa”-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>

<!—指定ssh通讯超时时间-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

yarn-site.xml:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>bcqm1711yarn</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hdp-qm-01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hdp-qm-02</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hdp-qm-01:2181,hdp-qm-02:2181,hdp-qm-03:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!--RM1-->
<property>
<name>yarn.resourcemanager.address</name>
<value>hdp-qm-01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hdp-qm-01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hdp-qm-01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hdp-qm-01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hdp-qm-01:8088</value>
</property>

<!--RM2-->
<property>
<name>yarn.resourcemanager.address</name>
<value>hdp-qm-02:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hdp-qm-02:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hdp-qm-02:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hdp-qm-02:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hdp-qm-02:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hdp-qm-02:8088</value>
</property>
</configuration>

步骤二;
在配置hdfs-site.xml配置文件之前,要先删掉之前的记录
删掉hadoopdata目录下的所有文件

删掉/home/hadoop/.ssh/*下的内容
rm -rf /home/hadoop/.ssh/*
步骤三:
配置免密
在/home/hadoop/hadoop-2.6.1/etc/hadoop/目录下
cd /home/hadoop/hadoop-2.6.1/etc/hadoop/
$ ssh-keygen -t rsa 一直回车

在根目录下
发送免密
ssh-copy-id hadoop@hdp-qm-01
ssh-copy-id hadoop@hdp-qm-02
ssh-copy-id hadoop@hdp-qm-03

步骤四:
发送配置好的hadoop文件夹到其他节点
scp -r hadoop-2.6.1 hadoop@hdp-qm-02:/home/hadoop/
scp -r hadoop-2.6.1 hadoop@hdp-qm-03:/home/hadoop/

步骤五;
启动zk集群
sh zkServer.sh start

查看各节点启动状态

步骤六:
启动journanode,在各个节点都启动
# hadoop-daemon.sh start journalnode
运行jps命令检验,多了journalNode进程

步骤七;
在第一台格式化
格式化hdfs(在master上执行命令: 格式化HA必须先启动zk服务、journalnode)
# hadoop namenode -format

步骤八:
在hadoopdata目录下
开启namenode
$ hadoop-daemon.sh start namenode

步骤九;
同步元数据信息,在第二台进行
$ hdfs namenode -bootstrapStandby

步骤十:
在hadoopdata目录下,
$ hdfs zkfc -formatZK

步骤十一:
在hadoopdata目录下,开启集群
$ start-all.sh

步骤十二:
开启第二台的namenode
yarn-daemon.sh start resourcemanager

步骤十三:
jps验证是否功能全部开启
网页登录hdp-qm-01:50070
网页登录hdp-qm-02:50070

网页登录hdp-qm-01:8088
网页登录hdp-qm-02:8088

查看到第一台处于active,第二台处于standby
表示配置成功

对于三节点集群zookeeper配置步骤:的更多相关文章

  1. PostgreSQL 三节点集群故障模拟及恢复

    PostgreSQL 三节点集群故障模拟及恢复 (postgreSQL9.5.1) 正常状态: 10.2.208.10:node1:master 10.2.208.11:node2:standby1同 ...

  2. k8s(docker-desktop)简单搭建zookeeper三节点集群

    前提 已经安装了docker-desktop,并且其中的kubernetes启动运行的.或者安装了k8s环境就行 可以正常下载dockerhub的镜像,这里采用了dockerhub官方制作的镜像 启动 ...

  3. zookeeper三节点集群安装记录

    以下是3个节点的zk安装记录. 下载 下载地址: http://mirrors.shu.edu.cn/apache/zookeeper/ cd /data/opt/zk wget http://mir ...

  4. CentOS7.6搭建Hadoop2.7.2运行环境-三节点集群模式

    一 环境准备 1.    准备机器 2.    修改静态IP 3.    修改主机名 4.    关闭防火墙 5.    创建普通用户hadoop 添加hadoop用户 [root@hadoop102 ...

  5. 部署hadoop2.7.2 集群 基于zookeeper配置HDFS HA+Federation

    转自:http://www.2cto.com/os/201605/510489.html hadoop1的核心组成是两部分,即HDFS和MapReduce.在hadoop2中变为HDFS和Yarn.新 ...

  6. HBase的多节点集群详细启动步骤(3或5节点)(分为Zookeeper自带还是外装)

    HBase的多节点集群详细启动步骤(3或5节点)分为: 1.HBASE_MANAGES_ZK的默认值是false(zookeeper外装)(推荐) 2.HBASE_MANAGES_ZK的默认值是tru ...

  7. hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置

    配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...

  8. Kafka的3节点集群详细启动步骤(Zookeeper是外装)

    首先,声明,kafka集群是搭建在hadoop1.hadoop2和hadoop3机器上. kafka_2.10-0.8.1.1.tgz的1或3节点集群的下载.安装和配置(图文详细教程)绝对干货 如下分 ...

  9. MySQL数据库集群进行正确配置步骤

    MySQL数据库集群进行正确配置步骤 2010-06-09 10:47 arrowcat 博客园 字号:T | T 我们今天是要和大家一起分享的是对MySQL数据库集群进行正确配置,我前两天在相关网站 ...

  10. [推荐]Hadoop+HBase+Zookeeper集群的配置

    [推荐]Hadoop+HBase+Zookeeper集群的配置 Hadoop+HBase+Zookeeper集群的配置  http://wenku.baidu.com/view/991258e881c ...

随机推荐

  1. 五、Doris数据分布

    在 Doris 中,数据都以表(Table)的形式进行逻辑上的描述 名词解释 数据分布:数据分布是将数据划分为子集, 按一定规则, 均衡地分布在不同节点上,以期最大限度地利用集群的并发性能 短查询:s ...

  2. linux下的开机启动

    使用systemctl命令,systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 据说在CentOS7.0后,不再使用service, ...

  3. 如何使用go module导入本地包

    go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具. 到今天Go1.14版本推出之后Go modules 功能 ...

  4. ansible系列(25)--ansible的notify和handlers

    1. notify和handlers Handlers 是一个触发器,同时是一个特殊的 tasks ,它无法直接运行,它需要被tasks 通知后才会运行.比如: httpd 服务配置文件发生变更,我们 ...

  5. MindSponge分子动力学模拟——体系控制(2024.05)

    技术背景 在传统的分子动力学模拟软件中,对于分子体系的控制,例如控制体系的相对位置亦或是绝对位置,通常都是通过施加一些约束算法来实现的.例如用于限制化学键的LINCS算法,又比如水分子体系非常常用的S ...

  6. 【c++】const 限定符

    #include <iostream> int main() { using namespace std; cout << "Hello World!\n" ...

  7. 源码分析——MyBatis与Spring整合后如何保证SqlSession线程安全

    在MyBatis架构中SqlSession是提供给外层调用的顶层接口,它是MyBatis对外暴露的最重要的接口,用户通过该接口即可完成数据库的全部操作.在上文中我们明白了我们常用的Mybatis动态代 ...

  8. css之伪元素选择器

    注:本博客内容来自尚硅谷禹神的前端入门课程 什么是伪元素? 很像元素,但不是元素(element),是元素中的一些特殊位置. 伪元素语法中的::可以用:,因为css2中没有明确区分伪类和伪元素,但是s ...

  9. 8.11考试总结(NOIP模拟36)[Dove 打扑克·Cicada 与排序·Cicada 拿衣服]

    我会化作人间的风雨陪在你的身边 T1 Dove 打扑克 解题思路 考场上是想了一个树状数组维护的打法,但是竟然和 \(qn^2\) 的算法一样是 65pts 暴力就是对于每一次 2 询问重新建一下树状 ...

  10. 『手撕Vue-CLI』下载指定模板

    开篇 经上篇文章的介绍,实现了获取下载目录地址,接下来实现下载指定模板的功能. 背景 通过很多章节过后,已经可以拿到模板名称,模板版本号,下载目录地址,这些信息都是为了下载指定模板做准备的. 实现 如 ...