- 博客(10)
- 收藏
- 关注
原创 HDFS高可用集群中NameNode无法启动——解决方案
我是在刚搭建好HDFS高可用后,发现存在一台NamNode节点无法启动,但该节点上的DataNode仍可正常运行。其它的NameNode在正常运行。问题可能是由多个NameNode上的元数据信息不一致,解决方法如下:1、停止HDFS集群。2、删除每个NameNode节点上的data、logs。(我是在刚搭好HDFS集群遇到的这个问题,所有data和logs中的数据可直接删除。如果data和logs中存在重要的不能删除的数据,还请将数据迁移保存至别处,或使用其它方法进行解决)。3、在每一个Jo
2021-12-15 22:43:53 6821 1
原创 Zookeeper选举机制详解
半数机制:集群中半数以上机器存活,集群就可以正常使用。Zookeeper集群适合安装奇数台服务器。Zookeeper虽然在配置文件中没有指定Master和Slave。但是Zookeeper工作时,是有一个节点为Leader,其他节点为Follower,Leader是通过内部的选举机制临时产生的。以下面的例子来具体说明选举的过程:假设有五台服务器组成的Zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的。假设这些服务器依序启动,来
2021-12-14 10:43:23 205
原创 Zookeeper入门
Zookeeper是开源的、分布式的,能够为分布式应用提供协调服务。从设计模式的角度分析,Zookeeper是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。Zookeeper = 文件系统 + 通知机制Zookeeper图标如下图所示:Zookeeper形象的理解就是动物管理员,在大数据中很多的图标都是动物,就需要通过Zookee
2021-12-13 11:01:58 2608
原创 HDFS添加白名单和黑名单(含具体实现)
白名单和黑名单是hadoop管理集群机器的一种机制。添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。添加到黑名单的主机节点,不允许访问NameNode,会将黑名单的主机节点上的数据迁移到白名单主机节点上,然后退出该黑名单节点。实际情况下,白名单用于确定允许访问NameNode的DataNode节点。黑名单用于在集群运行过程中退役DataNode节点。一、配置白名单和黑名单的具体步骤如下:1、在NameNode节点的/opt/module/hadoop
2021-12-12 10:55:54 3536
原创 MapReduce编程规范——Mapper、Reducer和Driver具体实现
MapReduce程序一般都需要包含三个部分:Mapper、Reducer和Driver。注意:Mapper类中的map方法是每执行一行数据执行一次。 Reducer类中的reduce方法是相同的key值的数据执行一次。 具体泛型类型根据具体需求而定。 导入包时要认真,以免导错包,会影响输出结果。自定义Mapper、Reduce和Driver具体实现如下:自定义Mapper类:Mapper类:(程序的Map阶段)impor...
2021-12-11 11:32:04 4817
原创 Hadoop序列化(含代码实现)
序列化:把内存中的对象,转换为字节序列,便于存储到磁盘和进行网络传输。反序列化:将磁盘中的数据或通过网络传输接收到的字节序列,转换为内存中的对象。序列化的作用:可以将内存中的对象存储到磁盘中进行持久化存储,也可将对象通过网络传输发送到远程计算机上。Hadoop序列化的特点:快速:读写数据的额外开销小。 紧凑:高效利用存储空间。 可扩展:随着通信协议的迭代升级而升级。 互操作:支持多语言的交互。提出问题:为什么不适应Java的序列化?答:Java的序列化机制是一个重量级序列化框架,
2021-12-10 12:54:26 956
原创 HDFS中副本存储节点选择——机架感知
HDFS中副本存储节点的选择是根据机架感知来选择的。副本数量默认为3。可以通过配置进行修改,但设置副本数应满足不大于DataNode的数量。比如目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数最多才能达到10。副本节点选择的原则(以副本数为3举例):第一个副本:在Client所在的节点上,如果客户端在集群外,则随机挑选一个节点。第二个副本:在另一个机架上随机挑选一个节点。第三个副本:在第二个副本所在的机架内再随机挑选一个节点。机架感知官方说明(附中文翻译):
2021-12-09 10:10:32 1773
原创 简述HDFS架构——入门了解
HDFS(Hadoop Distributed File System):Hadoop分布式文件系统。HDFS只是分布式文件系统中的一种。产生背景:随着数据量越来越大,一个操作系统已经很难存下所有数据,此时就需要将数据分配到多个操作系统的磁盘中进行管理和维护。由于无法对多个操作系统上的文件进行高效的管理和维护,因此产生了分布式文件系统。定义:HDFS是Hadoop分布式文件系统,用于存储文件,通过目录树定位文件位置,由许多服务器联合起来实现文件管理功能,并...
2021-12-08 21:43:33 1068
原创 MapReduce中Shuffle机制下的Partition分区方法实现——针对执行后需要多个结果文件的需求
在现实需求中,我们时长会遇到将执行结果按照某些条件存放到不同的结果文件中,Partition分区即可实现这个功能。Partition分区有默认Partition分区和自定义Partition分区两种,下面我们逐一介绍。一、默认Partition分区:public class HashPartitioner<K, V> extends Partitioner<K, V> { //提供空参构造器 public HashPartitioner() {
2021-12-07 12:57:35 316
原创 数据切片和MapTask的关系
数据切片:数据切片仅仅是在逻辑上对输入内容进行切片,并不是真正在磁盘上将输入内容切分进行存储。数据切片是MapReduce程序计算输入数据的单位,每一个切片会对应启动一个MapTask。默认切片大小与默认块大小一致,为128M。数据块:块Block是HDFS物理上将数据切分成一块一块进行存储。数据块是HDFS存储数据的单位。默认块大小为128M。切片的大小和块的大小都可由用户自己配置决定。...
2021-12-06 23:06:50 522
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人