Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构),第1张

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

广义的Hadoop,一般称为Hadoop生态系统,如下所示。
Hadoop生态系统中这些软件的作用:

HDFS 采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。
HDFS采用Java语言开发,因此任何支持JVM的机器都可以部署名称节点和数据节点。

在配置好Hadoop 集群之后,可以通过浏览器访问 >前身:BigTable

网页搜索:

google分布式存储系统BigTable依赖GFS

Hbase(bigtable的开源实现): 高可靠、高性能、面向列、可伸缩

存储结构化和半结构化的数据

优点:

水平可扩展性特别好:

依赖:

文件存储系统:HDFS

海量数据处理:MapReduce

协同管理服务:Zookeeper
满足了:大数据量的实时计算
数据类型:

    RDBMS:关系数据模型、多种数据类型

    Hbase:

数据 *** 作:

存储模式:

索引:

数据维护:

可伸缩性:

        纵向扩展:

        水平扩展:

Hbase的访问接口:

            JAVA API

            shell

            thrift Gateway

            restful Gateway

            SQL接口:pig编写类sql  hive用hivesql访问Hbase

Hbase的数据类型:

        列限定符

        每个值都是未解释的bytes

        一个行可以有一个行键和多列

        表由列族组成
Hbase数据模型:

    列族支持动态扩展、保留旧版本(HDFS只能追加数据)

基础元素:

    行键 : rowkey

    列族

    列限定符

    单元格 (时间戳概念、对应数据版本)

坐标概念:

    四维定位:行键、列族、列限定符、时间戳

稀疏表

HBASE:面向列的存储:高数据压缩率、分析便捷

RDBMS :面向行存储,事务性 *** 作(记录完整)、不便于分析(需要全表扫描)
43 HBASE 的实现原理

431 库函数 、master服务器、region服务器

Master服务器:

分区信息进行维护和管理

维护region服务器列表

确认当前工作的region服务器

负责对region进行分配和负载平衡

对表的增删改查

region服务器:

客户端不依赖于Master获取位置信息

用户数据的存储和管理

Region服务器--10-1000个region -----Store是一个列族----每个列族就是一个Hfile----所有region公用1个Hlog

写数据流程:Region服务器---写缓存Memstore---写日志(Hlog)

读数据流程:Region服务器-读缓存Memstore(最新数据)----StoreFile

缓存刷新:周期性将缓存内容刷写到Storefile 清空缓存---Hlog写入标记

每次刷写会生成新的StoreFile 每个Store包含多个StoreFile

每个Region服务器都有一个自己的Hlog,将启动检查确认缓存刷新是否有新的内容需要刷写,发现则刷写新的storefile,完成后删除Hlog,开始对外提供服务

Storefile的合并,storefile 的数量达到阈值后,会进行合并。当Storefile超过大小阈值则会触发Region的分裂
44 Hlog的工作原理

Zookeeper负责监听region服务器,由master处理故障,通过故障服务器的Hlog恢复,按region切分Hlog,将region和对应的Hlog分配到新的region服务器上
一个HBASE表会被划分成多个Region(1G-2G 取决于服务器性能)

同一个region不会被拆分到不同服务器上

Region的寻找:

Meta表:regionID 服务器ID 存储元数据

Root表:只有一个region

三级寻址:

zookeeper文件---root表-多个meta表--多个用户数据表

客户端会有Hbase三层寻址的缓存,调用访问Hbase的接口,缓存失效后,再次寻址

zookeeper决定master服务器,确保只有一个master

45 Hbase的应用方案

性能优化:

1)时间靠近存放----将时间戳引入行键,使用Longmax-时间戳进行排序

2)提升读写性能,创建表时设置HcloumnDescriptorsetMemory=true,会将表放入内存的缓存中

3)节省存储·空间----设置最大版本数、保存最新版的数据,将最大版本参数设置为1

4)timetolive参数,会将过期数据自动清空

检测Hbase性能:

Maste-status(web浏览器查询)

ganglia

OpenTSDB

Armbari

sql 查询HBASE

1)hive整合hbase

2)Phoenix

Hbase 二级索引 (辅助索引)

默认只支持对rowkey进行索引

Hbase行访问:

1)单行键访问

2)确定起点和终点访问区间数据

3)全表扫描
二级索引样例:

    Hindex    Hbase+redis  Solr+ Hbase

二级索引的机制:

        Hbase Coprocessor 

        endpoint  ---存储过程

        observer----触发器

        通过Observer监测数据插入动作,同步写入索引表,完成对表和列的索引

      Hbase 主表 索引表

46 HBASE的shell命令

三种部署模式:单机 伪分布式  分布式

HDFS

创建表

create table, F1, F2, F3

list table

每次只能为1行的1列添加数据

put  table R1,R1:C1 ,“1,2,3”

scan  table  R1,{column='R1:C1'}

get  table

删除表:

disable table +drop table

47 JAVA API +HBASE

攻城掠地蜀霸国是一款非常受欢迎的策略游戏,该游戏中玩家可以选择不同的势力,并率领自己的军队攻占其他城池,最终成为霸主。在游戏中,蜀国是一个非常强大的势力,因其拥有悠久的历史和强大的实力而备受瞩目。蜀国所在的区域是游戏中的一大特色,下面我们来详细了解一下。
攻城掠地蜀霸国中共划分了多个区域,包括魏、蜀、吴、群雄等,而蜀国则位于蜀区。蜀区是一个以川蜀文化为代表的地域,其独特的地理位置和文化背景使得蜀国在游戏中成为了一个非常强大的势力。蜀国所在的蜀区有着丰富的资源和优越的自然环境,这为蜀国的发展提供了有力的支撑。
在蜀区中,蜀国拥有许多重要的城池,如成都、剑阁、汉中等,这些城池不仅具有重要的战略价值,也是蜀国的政治、文化和经济中心。在攻城掠地蜀霸国游戏中,玩家可以选择加入蜀国,率领军队攻打其他城池,扩大自己的版图,最终成为霸主。
总之,蜀区作为攻城掠地蜀霸国游戏中的一个重要区域,拥有着丰富的资源和独特的文化背景,为蜀国的发展提供了有力的支撑。如果你想挑战自己,成为霸主,那么不妨选择加入蜀国,率领军队一路向前,征服整个游戏世界!

用于连接每个客户端,即客户端可调用所提供的这些函数访问HBase的数据

充当管家,主要作用:

a) 获知整个集群中哪些Region服务器在工作、哪些有故障
b) 一个表会被分为多个Region,每个Region被分配到哪个Region服务器由Master服务器决定

一整张表会被分为多个Region,它们由Region服务器负责维护和管理。

2006年以前常设计为100-200MB,现在一般配置为1~2GB。具体设计应取决于单台服务器的处理能力(存取速度、内存等)。
前面提到过一个Region增大到一定程度会被Master服务器拆分成多个小Region。但在存储方面,一个完整的Region(拆分前的)不会被存储到不同的Region服务器上。

三层寻址对应了三层表:
(1) -ROOT-表 :存储元数据表,即MEAT表的信息。它被“写死”在ZooKeeper文件中,是唯一的、不能再分裂的
(2) META表 :存储用户数据具体存储在哪些Region服务器上。它会随存储数据的增多而分裂成更多个。
(3) 用户数据表 :具体存储用户数据。它是最底层的、可分裂的

HBase采用 三级寻址
(1) ZooKeeper找到-ROOT-表地址
(2) -ROOT-表中找到需要的META表地址
(3) META表找到所需的用户数据表地址
(4) 最后从用户数据表取出目标数据

另外,为了加速寻址,客户端会 缓存已查数据的位置信息 (在客户端自己的缓存中),下次取相同的数据就可以快速访问。——但随Region的更新,缓存记录可能失效。对于这个问题,HBase采用惰性解决机制,即首先使用缓存的位置,如果在那个位置查不到目标数据,则按三级寻址重新查询,再更新缓存。

假设一个Region最大128MB(注意-ROOT-、META、用户表都是以Region形式存储的),一条映射条目大小1KB:

Reference:
>切换服务器区域。
打开黎明觉醒游戏,在游戏主界面左上角点击“设置”按钮,进入设置页面,点击“客服”按钮,进入客服页面,点击“区服”按钮,进入区服选择页面。在区服选择页面中,可以看到当前游戏所在的服务器区域,以及其他可选的服务器区域。选择您想要切换的服务器区域,然后点击“确认”按钮。系统会提示您需要重新登录游戏来切换服务器区域。点击“确认”按钮,退出游戏并重新登录即可。
《黎明觉醒:生机》是一款由腾讯光子工作室群研发的开放世界生存手游,于2023年2月23日开启不删档测试。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13476558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-14
下一篇 2023-08-14

发表评论

登录后才能评论

评论列表(0条)

保存