文档章节

Hadoop学习(八)

柠檬果过
 柠檬果过
发布于 01/12 22:47
字数 1912
阅读 8
收藏 0

ChainMap-ChainReduce

链式Map、链式Reduce。前面学习的都是让一个Map或者一个Reduce来做所有的工作,这样任务比较重。可以使用链式Map或者链式Reduce,就是使用多个Map来完成原来一个Map的工作,比如有三Map,Map0的输出传递给Map1,Map1的输出传递给Map2,Map2的输出作为整个Map的输出:

拿单词统计的例子来介绍。

每次调用map方法都是一行数据。MapB的输入是MapA的输出,MapB不做具体的改变,直接写入:

MapC也直接输出,不做具体的操作:

Reduce的输入是最后一个Map的输出类型:

MR主类:

本地模式下运行,设置运行参数:

MR的输入文件的内容:

运行的结果,第一个Map处理了6行,第二个Map处理了20行,

现在做两个输入文件。每个文件至少对应1片,所以这两个小文件会对应两片。设置的运行参数:

可以看到有两个切片:

每个切片文件对应着自己的MapA、MapB、MapC、Reduce。对于链条的Map可以看做整体的Map。之前是众多的Map并行运算,现在是众多的链条Map并行运算,一个Map链条中各个Map都是运行在同一个节点上的。

节点的服役和退役

意思就是Hadoop集群中途添加节点或者删除节点,就是集群的可伸缩性。这是Hadoop运维的部分。

服役一个新节点:

(将新克隆的文件作为辅助名称节点,被克隆的节点改为数据节点)

选择辅助名称节点的虚拟机,关机,然后选择“管理”--“克隆”,创建完整克隆。

修改:

重启S106机器。

修改脚本文件:

修改辅助名称节点:

删除新节点的数据文件:

上面显示的JPS没有启动S104的节点管理器,所以去把S104的节点管理器启动起来:

启动HDFS的webui查看数据节点的启动情况。接下来让新节点服役。

这个文件不用在集群内进行分发。

刷新HDFS的节点:

刷新yarn:

修改slaves文件(这个文件不需要分发):

启动数据节点和节点管理器:

查看HDFS的webui查看启动的数据节点有哪些:

实现集群的再平衡:

退役一个旧节点:

节点不是硬停掉的,这样会丢失数据,退役节点的时候会将数据复制到其他的节点上。

刷新名称NN、RN:

查看HDFS的webui,查看节点显示的是在退役中:

退役完成:

完成之后节点的移除:

刷新,此时HDFS的webui中就没有退役的节点了:

NameNode的HA高可用

NN有可能发生单点故障,所以需要配置HA高可用。高可用指的是持续提供服务的能力。数据节点是有副本数的,一个挂了可以使用副本。但是名称节点只有一个,如果名称节点挂了怎么办?辅助名称节点虽然可以作为名称节点的副本,但是它的性能很差。

HA架构:

一般JN的个数是3个(就是Zookeeper类似,因为一般的节点挂掉之后集群就不能使用了,所以配置奇数个JN)。

Active和StandBy是和JN通信的,Active如果挂掉了,StandBy就会立刻启用。Active往JN中写,StandBy从JN中读取:

配置:

翻译

部署:

在使用HA的时候是不能启动SecondaryNamenode的。所以要将集群中的S106辅助名称节点改造为StandBy节点(Namenode的副本节点)。分析一下现在的Hadoop集群:

S100(NN)

S101-S105(DN)

S106(StandBy)

要实现S100可以无密登录到S101-S105,并且S106(StandBy)也可以无密登录到S101-S105。

现在配置S106可以无密登录到S101-S105:

将生成的公钥分发到不同的数据节点上:

还要配置自己也可以远程无密登录到自己的机器上:

现在S106就可以无密登录到自己或者其他数据节点了:

配置HA:

添加:

配置的JN在S101-S103上:

每个JN节点上存放JN编辑日志的位置:

部署HA:

现在是处于第二种情况:

使用ha的名称是不合适的,因为会把JN日志放到临时目录下。所以把ha的名称改一下。

先把hadoop文件做一个保险的备份:

如果S100机器上没有cluster这个文件,就从S101上拷贝cluster文件到S100上:

可以看到S100上现在就有cluster文件夹了:

现在Hadoop集群上的每个节点上都有ha文件夹,现在来利用符号链接来改名称:

启动S100这个Namenode上的集群:

(读取slaves文件,启动数据节点)

Hadoop集群启动起来之后,启动S101-S103上的JN进程:

查看集群的守护进程的变化:

因为是属于第二种情况,所以将S100的元数据目录(镜像文件、编辑日志文件等)复制到(StandBy)S106上去:

然后远程登录到S106上查看~/hadoop/dfs下有很多的镜像文件、编辑日志文件等元数据了。

 执行命令:

因为已经把元数据拷贝过来了,所以不要重新格式化:

然后在S101-S103上就可以看到生成的JN的编辑日志存放的目录生成了:

但是里面还没有数据:

所以还需要初始化JN编辑日志,就是将NN编辑日志到JN中:

如果发生进程被锁住了,就去S106上执行这个命令,因为S106没有启动任何进程:

这个时候JN的S101-S103的JN编辑日志目录里面就有日志文件了:

这样就保证了S101-S103的JN编辑日志里面有内容。

启动StandBy(S106)的namenode,查看Webui:

因为启动的时候默认所有的就是都是standBy的状态。从webui中可以看到S100和S106上的数据节点都连接上了:

因为现在两个节点都是StandBy状态,所以谁也不能提供服务:

所以现在应该把其中一个激活:

(保证集群是启动的)

这样就可以提供服务了:

其中一个激活了,另一个就不能再被激活了,否则就“脑裂”了。

也可以将一个节点(NN)变为StandBy状态(不活跃):

如果现在nn2(S106)是激活的,S100(nn1)是不活跃StandBy状态,可以做一个nn2到nn1的“容灾”切换,就是把nn2变为StandBy,把nn1变为活跃的状态:

也可以查看状态:

到现在实现的是手动容灾,如果一个active状态的节点挂了,也不能自动的切换到另一个节点进行容灾,所以这是手动容灾的缺点。如果想自动容灾,要结合Zookeeper使用。

ResourceManager HA资源管理器高可用

前面介绍了NN有可能发生单点故障,所以需要配置HA高可用,RN也有可能发生单点故障,所以也需要配置HA。

这个也是要结合Zookeeper来介绍的。

© 著作权归作者所有

共有 人打赏支持
上一篇: Hadoop学习(九)
下一篇: HBase学习(一)
柠檬果过
粉丝 0
博文 60
码字总数 95179
作品 0
衡水
私信 提问
大数据分析的八大趋势

Intuit数据工程副主管Loconzolo双脚都已经迈进数据湖里了。Smarter Remarketer首席数据科学家DeanAbbott也为云技术的发展指出了捷径。他们二人一致认为, 大数据与分析学前沿是个活动目标,这...

dongzhumao
2015/05/19
0
0
学习东西总结:

一.JAVA 基础 1、JAVA并发编程 2.JAVA NIO系列 3.JVM深入了解 4.JAVA性能优化相关研究 5.JAVA7,8新特性 二、数据库 1.数据库优化研究 2.MYSQL高可用性研究 3.MYSQL源码研究 三、网络 1.HTTP...

QH_C
2016/03/25
5
0
大数据教程(6.7)第六章问题总结

本篇博主将介绍大家中学习前面的hadoop文章中可能出现的问题。 首先,可能涉及的命令: 一、运行mr程序出错 二、初始化工作目录结构 hdfs namenode -format 只是初始化了namenode的工作目录,...

em_aaron
2018/11/06
0
0
年薪500k阿里云大咖:掌握好以下数据库八大要点,月薪50k不是梦

阿里 如今,我们每个人都在谈论“数据科学”,《哈佛商业评论》甚至将数据科学家定义为“21世纪最性感的职业”。在这个大数据时代,究竟什么是数据科学?数据科学家又究竟是怎样的一群人?他...

qq_42002381
2018/04/18
0
0
hadoop集群的安装配置

一、环境 192.168.3.66 namenode NameNode,JobTracker 192.168.3.67 datanode1 DataNode,TaskTracker 192.168.3.68 datanode2 DataNode,TaskTracker 二、添加用户,配置hosts本机解析,配置s......

ly36843
2016/04/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

看过上百部片子的这个人教你视频标签算法解析

本文由云+社区发表 随着内容时代的来临,多媒体信息,特别是视频信息的分析和理解需求,如图像分类、图像打标签、视频处理等等,变得越发迫切。目前图像分类已经发展了多年,在一定条件下已经...

腾讯云加社区
25分钟前
0
0
2. 红黑树

定义:红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树(Binary Search Tree)。 要理解红黑树,先要了解什么是二叉查找树。在上一章中,我们学习了什么是二叉树,以及二叉树...

火拳-艾斯
26分钟前
0
0
input的button类型,点击页面跳转

一、input type=button 不做任何操作 例如: <input type="button" class="btn btn-primary" style="width: 30%" value="返回" onclick="window.location.href='/users/list'"></input> onc......

Sunki
32分钟前
0
0
踩坑:js 小数运算出现精度问题

背景 在学习小程序商城源码时发现了这个问题,单价可能出现小数,小数之间运算结果会莫名其妙多出一大串数字,比如下面这样👇。 在此之前我是知道 js 中著名的 0.1 + 0.2 != 0.3 的问题的,...

dkvirus
37分钟前
0
0
zookeeper和HBASE总结

zookeeper快速上手 zookeeper的基本功能和应用场景 zookeeper的整体运行机制 zookeeper的数据存储机制 数据存储形式 zookeeper中对用户的数据采用kv形式存储 只是zk有点特别: key:是以路径...

瑞查德-Jack
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部