Hadoop+Hbase 分布式集群架构“完全篇”,纯干货分享!

本文深入探讨了Hadoop和Hbase的基础概念、工作原理,详细介绍了Hadoop的四大部分及Hbase的体系架构。通过实际的集群搭建步骤,包括配置、启动和验证过程,展示了如何搭建和管理Hadoop和Hbase分布式集群。此外,还提供了Hbase的基本操作,如创建表、插入和查询数据等。
摘要由CSDN通过智能技术生成

1. 认识 Hadoop 和 Hbase

1.1 Hadoop 简单介绍

Hadoop 是一个使用 Java 编写的 Apache 开放源代码框架,它允许使用简单的编程模型跨大型计算机的大型数据集进行分布式处理。Hadoop 框架工作的应用程序可以在跨计算机群集提供分布式存储和计算的环境中工作。Hadoop 旨在从单一服务器扩展到数千台机器,每台机器都提供本地计算和存储。

1.2 Hadoop 架构

Hadoop 框架包括以下四个模块:

Hadoop Common:这些是其他 Hadoop 模块所需的 Java 库和实用程序。这些库提供文件系统和操作系统级抽象,并包含启动 Hadoop 所需的必要 Java 文件和脚本。

Hadoop YARN:这是作业调度和集群资源管理的框架。

【大数据开发学习资料领取方式】:加入大数据技术学习交流群458345782,点击加入群聊,私信管理员即可免费领取

Hadoop 分布式文件系统(HDFS):提供对应用程序数据的高吞吐量访问的分布式文件系统。

Hadoop MapReduce:这是基于 YARN 的大型数据集并行处理系统。

我们可以使用下图来描述 Hadoop 框架中可用的这四个组件。

自 2012 年以来,术语“Hadoop”通常不仅指向上述基本模块,而且还指向可以安装在 Hadoop 之上或之外的其他软件包,例如 Apache Pig、Apache Hive、Apache HBase、Apache 火花等。

 

1.3 Hadoop 如何工作?

(1)阶段1

用户/应用程序可以通过指定以下项目向 Hadoop(Hadoop 作业客户端)提交所需的进程:

分布式文件系统中输入和输出文件的位置。

Java类以 JAR 文件的形式包含了 Map 和 Reduce 功能的实现。

通过设置作业特定的不同参数来进行作业配置。

(2)阶段2

然后,Hadoop 作业客户端将作业(JAR/可执行文件等)和配置提交给 JobTracker,JobTracker 负责将软件/配置分发到从站,调度任务和监视它们,向作业客户端提供状态和诊断信息。

(3)阶段3

不同节点上的 TaskTrackers 根据 MapReduce 实现执行任务,并将 reduce 函数的输出存储到文件系统的输出文件中。

 

1.4 Hadoop 的优点

Hadoop 框架允许用户快速编写和测试分布式系统。它是高效的,它自动分配数据并在机器上工作,反过来利用 CPU 核心的底层并行性。

Hadoop 不依赖硬件提供容错和高可用性(FTHA),而是 Hadoop 库本身被设计为检测和处理应用层的故障。

服务器可以动态添加或从集群中删除,Hadoop 继续运行而不会中断。

Hadoop 的另一大优点是,除了是开放源码,它是所有平台兼容的,因为它是基于 Java 的。

 

1.5 HBase 介绍

Hbase 全称为 Hadoop Database,即 Hbase 是 Hadoop 的数据库,是一个分布式的存储系统。Hbase 利用 Hadoop 的 HDFS 作为其文件存储系统,利用 Hadoop 的 MapReduce 来处理 Hbase 中的海量数据。利用 ZooKeeper 作为其协调工具。 

 

1.6 HBase 体系架构

Client

包含访问 HBase 的接口并维护 Cache 来加快对 HBase 的访问

ZooKeeper

保证任何时候,集群中只有一个 Master

存贮所有 Region 的寻址入口。

实时监控 Region Server 的上线和下线信息。并实时通知 Master

存储 HBase 的 Schema 和 table 元数据

Master

为 Region Server 分配 region

负责 Region Server 的负载均衡

发现失效的 Region Server 并重新分配其上的 region

管理用户对 table 的增删改操作

RegionServer

Region Server 维护 region,处理对这些 region 的 IO 请求

Region Server 负责切分在运行过程中变得过大的 region

HLog(WAL log)

HLog 文件就是一个普通的 Hadoop Sequence File,Sequence File  的 Key 是  HLogKey 对象,HLogKey 中记录了写入数据的归属信息,除了 table 和 region 名字外,同时还包括 Sequence Number 和 Timestamp,Timestamp 是” 写入时间”,Sequence Number 的起始值为 0,或者是最近一次存入文件系统中 Sequence Number。

HLog SequeceFile 的 Value 是 HBase 的 KeyValue 对象,即对应 HFile 中的  KeyValue

Region

HBase 自动把表水平划分成多个区域(Rregion),每个 Region 会保存一个表里面某段连续的数据;每个表一开始只有一个 Region,随着数据不断插 入表,region 不断增大,当增大到一个阀值的时候,Region 就会等分会 两个新的 Region(裂变);

 

当 table 中的行不断增多,就会有越来越多的 Region。这样一张完整的表被保存在多个 Regionserver 上。

Memstore 与 StoreFile

一个 Region 由多个 Store 组成,一个 Store 对应一个 CF(列族)

store 包括位于内存中的 Memstore 和位于磁盘的 StoreFile 写操作先写入 Memstore,当 MemStore 中的数据达到某个阈值,HRegionServer 会启动  FlashCache 进程写入 StoreFile,每次写入形成单独的一个 StoreFile

当 StoreFile 文件的数量增长到一定阈值后,系统会进行合并(minor、 major compaction),在合并过程中会进行版本合并和删除工作 ,形成更大的  StoreFile。

当一个 Region 所有 StoreFile 的大小和超过一定阈值后,会把当前的 region 分割为两个,并由 HMaster 分配到相应的 RegionServer 服务器,实现负载均衡。

客户端检索数据,先在 MemStore 找,找不到再找 StoreFile。

HRegion 是 HBase 中分布式存储和负载均衡的最小单元。最小单元就表示不同的 HRegion 可以分布在不同的 HRegion Server上。

HRegion 由一个或者多个 Store 组成,每个 Store 保存一个 Columns Family。

每个 Strore 又由一个 MemStore 和 0 至多个 StoreFile 组成。

2. 安装搭建 Hadoop

2.1 配置说明

本次集群搭建共三台机器,具体说明下:

主机名IP说明

hadoop01192.168.10.101DataNode、NodeManager、ResourceManager、NameNode

hadoop02192.168.10.102DataNode、NodeManager、Secondary

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值