Hadoop2.2.0 自动切换HA环境搭建
自动切换的HA,比手动切换HA集群多了一个zookeeper集群
机器分配:
zookeeper:hadoop4,hadoop5,hadoop6
namenode:hadoop4,hadoop5
datanode:hadoop4,hadoop5,hadoop6
journalnode:hadoop4,hadoop5,hadoop6,仅仅是为了实现HA,和集群没有任何关系,最少三个机器,奇数个
resourcemanager:hadoop4
nodemanager:hadoop4,hadoop5,hadoop6
zookeeper就是实现数据之间共享的,我们把数据提交到一个节点,这时候我们就可以同时在多个节点共享,能够保证数据传上去之后,原子性
1.1搭建zookeeper集群,启动zookeeper集群
1.1.1 在hadoop4上解压缩,重命名为zookeeper,把conf/zoo_sample.cfg重命名为conf/zoo.cfg
修改文件conf/zoo.cfg
(1) dataDir=/usr/local/zookeeper/data
(2) 增加以下内容:
server.4=hadoop4:2888:3888
server.5=hadoop5:2888:3888
server.6=hadoop6:2888:3888
创建目录 mkdir zookeeper/data
写入文件echo 4 zookeeper/data/myid
复制zookeeper文件夹到hadoop5,hadoop6上
scp -rq zookeeper hadoop5:/usr/local
scp -rq zookeeper hadoop6:/usr/local
在hadoop5上执行echo 5 > zookeeper/data/myid
在hadoop6上执行echo 6 > zookeeper/data/myid
1.1.2 启动
在hadoop4,hadoop5,hadoop6上分别执行命令: zookeeper/bin/zkServer.sh start
1.1.3 验证:执行命令 zookeeper/bin/zkCli.sh 进入后执行 ls /
1.2 修改配置文件,在手动切换的基础上进行修改
core-site.xml中加入 zookeeper集群配置
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop4:2181,hadoop5:2181,hadoop6:2181</value>
</property>
hdfs-site.xml中,启用zookeeper集群
<property>
<name>dfs.ha.automatic-failover.enabled.cluster1</name>
<value>true</value>
</property>
1.3格式化zookeeper,使用zookeeper集群监控namenode,格式化就是把namenode集群增加到集群中。
清空环境,脚本allmv.sh
#!/bin/sh
ssh hadoop4 '/usr/local/hadoop/sbin/stop-all.sh'
for((i=4;i<=6;i++));
do
ssh hadoop$i 'rm -rf /usr/local/hadoop/logs/*'
ssh hadoop$i 'rm -rf /usr/local/hadoop/tmp/*'
echo "remove at hadoop$i"
done
删除其他节点的hadoop文件夹,然后把hadoop4上的hadoop文件夹复制到hadoop4、hadoop5、hadoop6节点
在hadoop4上执行hadoop/bin/hdfs zkfc -formatZK
格式化成功之后,可以使用zkCli.sh 客户端查看
1.4 启动journalnode集群
hadoop4,hadoop5,hadoop6上分别执行:
hadoop/sbin/hadoop-daemon.sh start journalnode
1.5 格式化namenode,启动namenode
hadoop4上执行格式化:hadoop/bin/hdfs namenode -format
hadoop4上执行 hadoop/sbin/hadoop-daemon.sh start namenode
hadoop5上执行 hadoop/bin/hdfs namenode -bootstrapStandby
hadoop5上执行 hadoop/sbin/hadoop-daemon.sh start namenode
1.6 启动datanode
在hadoop4上执行hadoop/sbin/hadoop-daemons.sh start datanode
1.7 在namenode节点启动ZKFC
在hadoop4,hadoop5节点上分别执行命令hadoop/sbin/hadoop-daemon.sh start zkfc
1.8 启动resourcemanager和nodemanager
在hadoop4上执行hadoop/sbin/start-yarn.sh start resourcemanager
验证方式:hadoop0:8088
总结:自动切换比手工切换多出来的配置和操作:
(1) core-site.xml增加了配置项ha.zookeeper.quorum,hdfs-site.xml中吧dfs.ha.automatic-failover.enabled.cluster1改为true
(2) 操作上格式化zk,执行命令bin/hdfs zkfc -formatZK;启动zkfc,执行命令sbin/hadoop-daemon.sh start zkfc
Hadoop2.2.0 自动切换HA环境搭建的更多相关文章
- Hadoop2.2.0 手动切换HA环境搭建
ssh-copy-id -i hadoop5含义: 节点hadoop4上执行ssh-copy-id -i hadoop5的含义是把hadoop4上的公钥id_rsa.pub的内容追加到hadoop5的 ...
- hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(4)SPARK 安装
hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(4)SPARK 安装 一.依赖文件安装 1.1 JDK 参见博文:http://www.cnblogs.com/liugh ...
- Linux -- 之HDFS实现自动切换HA(全新HDFS)
Linux -- 之HDFS实现自动切换HA(全新HDFS) JDK规划 1.7及以上 https://blog.csdn.net/meiLin_Ya/article/details/8065094 ...
- Apache Spark1.1.0部署与开发环境搭建
Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构.与MapReduce不同,Spark并不局限于编写map和reduce ...
- 24、自动装配-@Profile环境搭建
24.自动装配-@Profile环境搭建 Spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能. 开发环境.测试环境.正式环境 数据源切换 24.1 添加 数据源和jdbc驱动 ...
- Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程
准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14(我用的php 5.3.10安装版) MySQL版本:MySQL5.5.25 ...
- hadoop-2.6.0集群开发环境配置
hadoop-2.6.0集群开发环境配置 一.环境说明 1.1安装环境说明 本例中,操作系统为CentOS 6.6, JDK版本号为JDK 1.7,Hadoop版本号为Apache Hadoop 2. ...
- Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解
作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...
- SDL2.0的VS开发环境搭建
SDL2.0的VS开发环境搭建 [前言] 我是用的是VS2012,VS的版本应该大致一样. [开发环境搭建] >>>SDL2.0开发环境配置:1.从www.libsdl.org 下载 ...
随机推荐
- hdu - 1242 Rescue && hdu - 2425 Hiking Trip (优先队列+bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1242 感觉题目没有表述清楚,angel的朋友应该不一定只有一个,那么正解就是a去搜索r,再用普通的bfs就能过了 ...
- task判断任务是否存在
tasklist|find /i "qq.exe" ||exit taskkill /im qq.exe /f
- ZOJ 3367 Counterfeit Money(最大相同子矩阵)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3909 题意:给出两个矩阵A和B,找出最大的相同子矩阵S.输出S的高和 ...
- STL容器的遍历删除
STL容器的遍历删除 今天在对截包程序的HashTable中加入计时机制时,碰到这个问题.对hash_map中的每个项加入时间后,用查询函数遍历hash_map,以删除掉那些在表存留时间比某个阈值长的 ...
- POJ3415 Common Substrings
后缀数组 求长度不小于k的公共子串的个数 代码: #include <stdio.h> #include <string.h> ; int len, len1; int wa[ ...
- laravel中的$request对象构造及请求生命周期
laravel应用程序中index.php是所有请求的入口.当用户提交一个form或者访问一个网页时,首先由kernel捕捉到该session PHP运行环境下的用户数据, 生成一个request对象 ...
- js数组的声明与应用
js数组的声明与应用 数组:一种容器,存储批量数据.JavaScript是一种弱类型语言.什么是弱类型,就是变量可以存储多种类型变量的引用不会报错.所以js数组可以存储不同的数据. 一.数组的作用:只 ...
- 用canvas实现图片滤镜效果
1.灰度效果 图片过滤效果之灰度效果 算法及原理: .299 * r + .587 * g + .114 * b; 2.油画效果 算法及原理: 用当前点四周一定范围内任意一点的颜色来替代当前点颜色,最 ...
- MYSQL复制的几种模式
MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制. MYSQL复制的几种模式 MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制.简言之,这种新技 ...
- 今天开始自学Andrew Ng的机器学习,希望可以坚持下来
今天开始正式接触机器学习,20集的课程争取在开学前看完.每看完一集会在博客记录笔记,加油! 版权声明:本文为博主原创文章,未经博主允许不得转载.