大数据技术原理与应用

Similar documents
大数据技术原理与应用

大数据技术原理与应用

大数据技术原理与应用

大数据技术原理与应用

大数据技术原理与应用

大数据技术原理与应用

PowerPoint Presentation

<4D F736F F D F6F70B4F3CAFDBEDDBCB0BAA3C1BFCAFDBEDDCDDABEF2D3A6D3C3B9A4B3CCCAA6C5E0D1B5B0E056312E332E646F63>

大数据技术基础(2013版)

业 务 与 运 营 Business & Operation (Transform) 加 载 (Load) 至 目 的 端 的 过 程, 该 部 分 在 数 据 挖 掘 和 分 析 过 程 中 为 最 基 础 的 一 部 分 一 个 良 好 的 ETL 系 统 应 该 有 以 下 几 个 功 能 1


培 训 机 构 介 绍 中 科 普 开 是 国 内 首 家 致 力 于 IT 新 技 术 领 域 的 领 航 者, 专 注 于 云 计 算 大 数 据 物 联 网 移 动 互 联 网 技 术 的 培 训, 也 是 国 内 第 一 家 开 展 Hadoop 云 计 算 的 培

白 皮 书 英 特 尔 IT 部 门 实 施 Apache Hadoop* 英 特 尔 分 发 版 软 件 的 最 佳 实 践 目 录 要 点 概 述...1 业 务 挑 战...2 Hadoop* 分 发 版 注 意 事 项...3 Hadoop* 基 础 架 构 注 意 事 项

大数据技术基础

ABOUT ME AGENDA 唐建法 / TJ MongoDB 高级方案架构师 MongoDB 中文社区联合发起人 Spark 介绍 Spark 和 MongoDB 案例演示

大数据技术原理与应用

PowerPoint 演示文稿

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

大数据技术原理与应用

目 录 1 不 断 开 发 工 具 以 管 理 大 数 据 Hadoop* 简 介 : 支 持 从 大 数 据 中 获 得 出 色 价 值 的 可 靠 框 架 大 数 据 技 术 的 行 业 生 态 系 统 在 关 键 组 件 中 实 现 平 衡...

Reducing Client Incidents through Big Data Predictive Analytics

水晶分析师

大数据分析技术 [13] 1.1 大数据 Big Data [2] IBM 5V Volume Velocity Variety Value Veracity Volume Velocity Variety Value Veracity 表 1 大数据特征表 Tab.1

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

PowerPoint 演示文稿

89SQSY.s92

厦门大学辅助国内高校开设大数据课程公益项目 一 项目名称厦门大学辅助国内高校开设大数据课程公益项目二 项目介绍大数据时代的到来, 迫切需要高校及时建立大数据技术课程体系, 为社会培养和输送一大批具备大数据专业素养的高级人才, 满足社会对大数据人才日益旺盛的需求 本项目旨在为高校教师开设入门级大数据课

PowerPoint Presentation

《80后职场新鲜人生存手册》

合集

幻灯片 1

提纲 2 / 1

活 動 流 程 時 間 教 學 資 源 評 量 ( 二 ) 活 動 一 : 地 震 所 帶 來 的 傷 害 5 學 生 能 踴 1. 教 師 提 問 : 看 完 剛 的 影 片, 有 沒 有 注 意 躍 的 舉 手 到 地 震 對 我 們 所 帶 來 的 傷 害 有 哪 些? 回 答 2. 學 生

【附件:社群─申請表】(社群層級) 【四-四-五-1】

第 06 期 李祥池 : 基于 ELK 和 Spark Streaming 的日志分析系统设计与实现 1 日志 1.1 日志定义 IT 1.2 日志处理方案演进 v1.0 v2.0 Hadoop Storm Spark Hadoop/Storm/Spark v3.0 TB Splunk ELK SI

大数据技术原理与应用

Azure_s

册子0906

大数据技术基础(2013版)

大数据技术基础(2013版)

PowerPoint Presentation

ChinaBI企业会员服务- BI企业

图书在版编目 CIP 数据 李济深与苍梧故居 / 民革中央宣传部编. -- 北京 团结出版社 ISBN Ⅰ. ①李 Ⅱ. ①民 Ⅲ. ①李济深 1885~1959 传记②名人 故居 介绍 苍梧县 Ⅳ. ① K827=7②K878.2 中国版本图书馆C

大数据技术原理与应用

<4D F736F F F696E74202D20B5DA3131D5C25FBAA3C1BFD0C5CFA2B4E6B4A276312E312E BBCE6C8DDC4A3CABD5D>

美國政府推行 大數據的研究與發展計畫, 希望藉著提升從大型複雜的資料中提取知識的能力, 能加快科學和工程的開發並保障國家安全 資料科學與大數據 National Institute of Standards and Technology, NIST Jim Gray NI

大数据技术原理与应用

分布式数据库技术(2011版)


2013_6_3.indd

Guava学习之Resources


通过Hive将数据写入到ElasticSearch

天津天狮学院关于修订2014级本科培养方案的指导意见

大数据技术基础(2013版)


一 我国部分研究型大学 大学生创新性实验计划 实施的现状 莙政基 莙政基金 外 在学生中有

Microsoft PowerPoint - Big Data rc Sharing掃盲時間.ppt [相容模式]

目录 1 本期内容 HBase 简介 HBase 体系结构 Client Zookeeper HMaster HRegion HRegion Server

HBase_train_Stark

一 项 目 申 请 人 情 况 申 请 人 姓 名 王 艳 云 性 别 男 民 族 汉 族 出 生 日 期 1996/07/21 所 在 学 院 生 物 与 化 学 学 院 专 业 班 级 15 级 化 学 本 科 班 ( 化 学 ) 项 目 名 称 草 莓 种 植 及 产 品 加 工 通 讯 地

01政治.doc

因 這 將 成 為 你 一 生 中 最 珍 貴 也 最 難 得 的 資 產 在 本 系 徐 主 任 積 極 努 力 安 排 之 下, 東 海 大 學 國 貿 系 與 南 京 大 學 國 貿 系 簽 定 交 換 計 畫, 系 上 開 放 四 個 名 額 到 南 京 大 學 進 行 為 期 一 學 期

大数据技术基础

大数据技术原理与应用

附件三

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

憌??折?.indd

公 司 年 度 大 事 记 2015 年 10 月 -11 月, 公 司 完 成 股 份 制 改 造 10 月 13 日, 百 灵 有 限 临 时 股 东 会 作 出 决 议, 同 意 各 发 起 人 将 其 在 百 灵 有 限 拥 有 的 截 至 2015 年 8 月 31 日 经 审 计 的 原

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kafka客户端是如何找到 leader 分区的

5 2. 过程与方法 情感 态度与价值观 三 知识结构图 四 教学内容和教学要求 课 程 教学要求 课时安排

考试时间课程名称级人数考试地点 机械工程 17 级卓越 1 30 D-386 机械工程 17 级卓越 2 30 D-386 自动化 17 级 1 30 D-3108 自动化 17 级 2 30 D-3108 电子信息工程 17 级 1 32 C-170 电子信息工程 17 级 2 32 C-242

* 系统架构 * IB API 模块 目录 * 消息总线模块 * 行情采集处理引擎模块 * 持久化存储模块

Presentation title goes here

PowerPoint 演示文稿

招 募 到 的 人 數 還 不 夠 多, 使 得 TVBS 公 民 記 者 報 票 結 束 後, 一 度 票 數 停 滯 未 能 繼 續 一 路 領 先, 當 初 希 望 靠 國 民 黨 和 中 選 會 的 票 數 儘 快 補 上, 但 是 他 們 開 票 速 度 真 的 不 夠 快, 以 致 無

目 录(目录名)

PowerPoint Presentation

天仁期末個人報告1.PDF

Partition Key: 字 符 串 类 型, 表 示 当 前 Entity 的 分 区 信 息 这 个 Property 对 于 Table Service 自 动 纵 向 和 横 向 扩 展 至 关 重 要 Row Key: 字 符 串 类 型, 在 给 定 Partition Key 的

Apache CarbonData集群模式使用指南

電機工程系認可證照清單 /7/1

Microsoft Word 電腦軟體設計.doc

信 息 化 研 究

基于 SQL-on-Hadoop 的 网络日志分析

数学与应用数学 3 3 物理学 2 2 普通本科 电子信息科学与技术 3 3 俄语 3 3 国际事务与国际关系 3 3 海事管理 4 4 海洋技术 2 2 海洋渔业科学与技术 4 4 海洋资源与环境 2 2 汉语国际教育 3 3 汉语言文学 3 3 化学 2 2 环境工程 3 3 旅游管

个人介绍 思考数据分析系统的基本指标 Hadoop 史前和史后的数据仓库流程 Hadoop 史前和史后的数据分析流程 思考 Hadoop 解决了什么样的根本问题 演讲大纲 Python 如何在构建数据仓库系统的作用 1. 使用 Python 快速构建数据分析模块 ComETL 2. 基于 Pytho

大数据技术原理与应用

1406.indd

上图专刊2006-3AAA.doc

衡山靈學創始人 超越時代的靈學明師 許衡山 老師 許衡山老師 出生於西元 1942 年 於 1980 年代啟發先天眼竅 自證其道 了悟真理 許 老師首先發現 人人皆可開發出第三眼能力與靈性能量 並藉由系統化的研究 將種種 生命現象與宇宙真理做深入淺出的剖析 並為生命的最終意義指出一條明路 現代文明昌

슬로시티번역,더빙 등 보고서(중문)_두현.hwp


?



EP.pdf

Transcription:

分布式数据库厦门大学云计算与大数据研究中心 HBase 厦门大学云计算与大数据研究中心林子雨 2015 ziyulin@xmu.edu.cn 年版 大数据技术公开课 ( 专题技术型 ) 第 2 讲分布式数据库 HBase 林子雨博士 / 助理教授厦门大学计算机科学系厦门大学云计算与大数据研究中心 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu

提纲 4.1 概述 4.2 HBase 访问接口 4.3 HBase 数据模型 4.4 HBase 的实现原理 4.5 HBase 运行机制 4.6 HBase 编程实践 本 PPT 是如下教材的配套讲义 : 21 世纪高等教育计算机规划教材 大数据技术原理与应用 概念 存储 处理 分析与应用 (2015 年 6 月第 1 版 ) 厦门大学林子雨编著, 人民邮电出版社 ISBN:978-7-115-39287-9 欢迎访问 大数据技术原理与应用 教材官方网站 : http://dblab.xmu.edu.cn/post/bigdata

4.1 概述 4.1.1 从 BigTable 说起 4.1.2 HBase 简介 4.1.3 HBase 与传统关系数据库的对比分析 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.1.1 从 BigTable 说起 BigTable 是一个分布式存储系统 利用谷歌提出的 MapReduce 分布式并行计算模型来处理海量数据 使用谷歌分布式文件系统 GFS 作为底层数据存储 采用 Chubby 提供协同服务管理 可以扩展到 PB 级别的数据和上千台机器, 具备广泛应用性 可扩展性 高性能和高可用性等特点 谷歌的许多项目都存储在 BigTable 中, 包括搜索 地图 财经 打印 社交网站 Orkut 视频共享网站 YouTube 和博客网站 Blogger 等

Zookeeper 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn Avro 4.1.2HBase 简介 HBase 是一个高可靠 高性能 面向列 可伸缩的分布式数据库, 是谷歌 BigTable 的开源实现, 主要用来存储非结构化和半结构化的松散数据 HBase 的目标是处理非常庞大的表, 可以通过水平扩展的方式, 利用廉价计算机集群处理由超过 10 亿行数据和数百万列元素组成的数据表 Hadoop 生态系统 ETL 工具 BI 报表 RDBMS Pig Hive Sqoop MapReduce HBase HDFS (Hadoop Distributed File System) 图 4-1 Hadoop 生态系统中 HBase 与其他部分的关系

4.1.2HBase 简介 表 4-1 HBase 和 BigTable 的底层技术对应关系 BigTable HBase 文件存储系统 GFS HDFS 海量数据处理 MapReduce Hadoop MapReduce 协同服务管理 Chubby Zookeeper

4.1.3HBase 与传统关系数据库的对比分析 HBase 与传统的关系数据库的区别主要体现在以下几个方面 : (1) 数据类型 : 关系数据库采用关系模型, 具有丰富的数据类型和存储方式,HBase 则采用了更加简单的数据模型, 它把数据存储为未经解释的字符串 (2) 数据操作 : 关系数据库中包含了丰富的操作, 其中会涉及复杂的多表连接 HBase 操作则不存在复杂的表与表之间的关系, 只有简单的插入 查询 删除 清空等, 因为 HBase 在设计上就避免了复杂的表和表之间的关系 (3) 存储模式 : 关系数据库是基于行模式存储的 HBase 是基于列存储的, 每个列族都由几个文件保存, 不同列族的文件是分离的

4.1.3HBase 与传统关系数据库的对比分析 HBase 与传统的关系数据库的区别主要体现在以下几个方面 : (4) 数据索引 : 关系数据库通常可以针对不同列构建复杂的多个索引, 以提高数据访问性能 HBase 只有一个索引 行键, 通过巧妙的设计,HBase 中的所有访问方法, 或者通过行键访问, 或者通过行键扫描, 从而使得整个系统不会慢下来 (5) 数据维护 : 在关系数据库中, 更新操作会用最新的当前值去替换记录中原来的旧值, 旧值被覆盖后就不会存在 而在 HBase 中执行更新操作时, 并不会删除数据旧的版本, 而是生成一个新的版本, 旧有的版本仍然保留 (6) 可伸缩性 : 关系数据库很难实现横向扩展, 纵向扩展的空间也比较有限 相反,HBase 和 BigTable 这些分布式数据库就是为了实现灵活的水平扩展而开发的, 能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩

4.2 HBase 访问接口 表 4-2 HBase 访问接口 类型特点场合 Native Java API 最常规和高效的访问方式 适合 Hadoop MapReduce 作业 并行批处理 HBase 表数据 HBase Shell HBase 的命令行工具, 最简单的接口 Thrift Gateway 利用 Thrift 序列化技术, 支持 C++ PHP Python 等多种语言 适合 HBase 管理使用 适合其他异构系统在线访问 HBase 表数据 REST Gateway 解除了语言限制 支持 REST 风格的 Http API 访问 HBase Pig 使用 Pig Latin 流式编程语言来处理 HBase 中的数据 适合做数据统计 Hive 简单 当需要以类似 SQL 语言方式来 访问 HBase 的时候

4.3 HBase 数据模型 4.3.1 数据模型概述 4.3.2 数据模型相关概念 4.3.3 数据坐标 4.3.4 概念视图 4.3.5 物理视图 4.3.6 面向列的存储 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.3.1 数据模型概述 HBase 是一个稀疏 多维度 排序的映射表, 这张表的索引是行键 列族 列限定符和时间戳 每个值是一个未经解释的字符串, 没有数据类型 用户在表中存储数据, 每一行都有一个可排序的行键和任意多的列 表在水平方向由一个或者多个列族组成, 一个列族中可以包含任意多个列, 同一个列族里面的数据存储在一起 列族支持动态扩展, 可以很轻松地添加一个列族或列, 无需预先定义列的数量以及类型, 所有列均以字符串形式存储, 用户需要自行进行数据类型转换 HBase 中执行更新操作时, 并不会删除数据旧的版本, 而是生成一个新的版本, 旧有的版本仍然保留

4.3.2 数据模型相关概念 表 :HBase 采用表来组织数据, 表由行和列组成, 列划分为若干个列族 行 : 每个 HBase 表都由若干行组成, 每个行由行键 (row key) 来标识 访问表中的行只有三种方式 :(1) 通过单个行键访问 ;(2) 通过一个行键的区间来访问 ;(3) 全表扫描 列族 : 一个 HBase 表被分组成许多 列族 的集合, 它是基本的访问控制单元 列限定符 : 列族里的数据通过列限定符 ( 或列 ) 来定位 单元格 : 在 HBase 表中, 通过行 列族和列限定符确定一个 单元格 (cell), 单元格中存储的数据没有数据类型, 总被视为字节数组 byte[] 时间戳 : 每个单元格都保存着同一份数据的多个版本, 这些版本采用时间戳进行索引

4.3.2 数据模型相关概念 图 4-2 HBase 数据模型的一个实例

4.3.3 数据坐标 HBase 中需要根据行键 列族 列限定符和时间戳来确定一个单元格, 因此, 可以视为一个 四维坐标, 即 [ 行键, 列族, 列限定符, 时间戳 ] 键 [ 201505003, Info, email, 1174184619081] [ 201505003, Info, email, 1174184620720] 值 xie@qq.com you@163.com

4.3.4 概念视图 表 4-4 HBase 数据的概念视图 行键 时间戳 列族 contents 列族 anchor t5 anchor:cnnsi.com= CNN t4 anchor:my.look.ca="cnn.com" "com.cnn.www" t3 t2 contents:html="< html>" contents:html="< html>" t1 contents:html="< html>"

4.3.5 物理视图 行键 "com.cnn.ww w" 表 4-5 HBase 数据的物理视图列族 contents 时间戳 t3 t2 t1 列族 contents contents:html="<html>" contents:html="<html>" contents:html="<html>" 列族 anchor 行键 "com.cnn.www" 时间戳 t5 t4 列族 anchor anchor:cnnsi.com= CNN anchor:my.look.ca="cnn.co m"

4.3.6 面向列的存储 图 4-3 行式数据库和列式数据库示意图

4.3.6 面向列的存储 图 4-4 行式存储结构和列式存储结构

4.4 HBase 的实现原理 4.4.1 HBase 功能组件 4.4.2 表和 4.4.3 的定位 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.4.1HBase 功能组件 HBase 的实现包括三个主要的功能组件 : (1) 库函数 : 链接到每个客户端 (2) 一个 Master 主服务器 (3) 许多个 服务器 服务器负责存储和维护分配给自己的, 处理来自客户端的读写请求 主服务器 Master 负责管理和维护 HBase 表的分区信息 ; 维护 服务器列表, 实时监测集群中的 服务器 客户端并不是直接从 Master 主服务器上读取数据, 而是在获得 的存储位置信息后, 直接从 服务器上读取数据 ;HBase 客户端 并不依赖于 Master, 而是借助于 Zookeeper 获得 位置信息 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.4.2 表和 表 开始只有一个, 后来不断分裂 按照行键字典序... 表 分裂 表 图 4-5 一个 HBase 表被划分成多个 图 4-6 一个 会分裂成多个新的

4.4.2 表和 每个 默认大小是 100MB 到 200MB 同一个 不会被分拆到多个 服务器 每个 服务器存储 10-1000 个 表 1 表 2 服务器 图 4-7 不同的 可以分布在不同的 服务器上

4.4.3 的定位 元数据表, 又名.META. 表, 存储了 和 服务器的映射关系 当 Hbase 表很大时,.META. 表也会被分裂成多个 根数据表, 又名 -ROOT- 表, 记录所有元数据的具体位置 -ROOT- 表只有唯一一个, 名字是在程序中被写死的 Zookeeper 文件记录了 -ROOT- 表的位置 ZooKeeper 文件 -ROOT- 表.META. 表 用户数据表 用户数据表 图 4-8 HBase 的三层结构 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.4.3 的定位 表 4-6 HBase 的三层结构中各层次的名称和作用 层次名称作用 第一层 Zookeeper 文件 记录了 -ROOT- 表的位置信息 第二层 -ROOT- 表 记录了.META. 表的 位置信息 -ROOT- 表只能有一个 通过-ROOT- 表, 就可以访问.META. 表中的数据 第三层.META. 表 记录了用户数据表的 位置信息,.META. 表可以有多个, 保存了 HBase 中所有用户数据表的 位置信息

4.4.3 的定位 为了加快访问速度,.META. 表的全部 都会被保存在内存中 假设.META. 表的每行 ( 一个映射条目 ) 在内存中大约占用 1KB, 并且每个 限制为 128MB, 那么, 上面的三层结构可以保存的用户数据表的 数目的计算方法是 : (-ROOT- 表能够寻址的.META. 表的 个数 ) ( 每个.META. 表的 可以寻址的用户数据表的 个数 ) 一个 -ROOT- 表最多只能有一个, 也就是最多只能有 128MB, 按照每行 ( 一个映射条目 ) 占用 1KB 内存计算,128MB 空间可以容纳 128MB/1KB=2 17 行, 也就是说, 一个 -ROOT- 表可以寻址 2 17 个.META. 表的 同理, 每个.META. 表的 可以寻址的用户数据表的 个数是 128MB/1KB=2 17 最终, 三层结构可以保存的 数目是 (128MB/1KB) (128MB/1KB) = 2 34 个

4.4.3 的定位 客户端访问数据时的 三级寻址 为了加速寻址, 客户端会缓存位置信息, 同时, 需要解决缓存失效问题 寻址过程客户端只需要询问 Zookeeper 服务器, 不需要连接 Master 服务器 ZooKeeper 文件 -ROOT- 表.META. 表 用户数据表 用户数据表 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.5 HBase 运行机制 4.5.1 HBase 系统架构 4.5.2 服务器工作原理 4.5.3 Store 工作原理 4.5.4 HLog 工作原理 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.5.1HBase 系统架构 客户端 Zookeeper Master 服务器 服务器 HBase HDFS Hadoop 数据节点 数据节点 数据节点 数据节点 图 4-9 HBase 的系统架构

4.5.1HBase 系统架构 1. 客户端 客户端包含访问 HBase 的接口, 同时在缓存中维护着已经访问过的 位置信息, 用来加快后续数据访问过程 ; 通过 RPC 机制沟通 2. Zookeeper 服务器 Master 可以通过 Zookeeper 随时感知各个 服务器的工作状态 Zookeeper 可以帮助选举出一个 Master 作为集群的总管, 并保证在任何时刻总有唯一一个 Master 在运行, 这就避免了 Master 的 单点失效 问题 Zookeeper 保存了 ROOT 表地址 3. Master 主服务器 Master 主要负责表和 的管理工作 : 管理用户对表的增加 删除 修改 查询等操作 实现不同 服务器之间的负载均衡 在 分裂或合并后, 负责重新调整 的分布 对发生故障失效的 服务器上的 进行迁移 4. 服务器 服务器是 HBase 中最核心的模块, 负责维护分配给自己的, 并响应用户的读写请求 ; 服务器向 HDFS 读写数据 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.5.2 服务器工作原理 服务器集群 服务器 服务器 服务器 1. 用户读写数据过程 2. 缓存的刷新 3. StoreFile 的合并 Store Store Store MemStore MemStore MemStore HLog StoreFile StoreFile StoreFile StoreFile StoreFile StoreFile StoreFile StoreFile StoreFile StoreFile StoreFile StoreFile HFile HFile HFile HFile HFile 图 4-10 服务器向 HDFS 文件系统中读写数据 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

4.5.2 服务器工作原理 1. 用户读写数据过程 用户写入数据时, 被分配到相应 服务器去执行 用户数据首先被写入到 MemStore 和 Hlog 中 只有当操作写入 Hlog 之后,commit() 调用才会将其返回给客户端 当用户读取数据时, 服务器会首先访问 MemStore 缓存, 如果找不到, 再去磁盘上面的 StoreFile 中寻找

4.5.2 服务器工作原理 2. 缓存的刷新 系统会周期性地把 MemStore 缓存里的内容刷写到磁盘的 StoreFile 文件中, 清空缓存, 并在 Hlog 里面写入一个标记 每次刷写都生成一个新的 StoreFile 文件, 因此, 每个 Store 包含多个 StoreFile 文件 每个 服务器都有一个自己的 HLog 文件, 每次启动都检查该文件

4.5.2 服务器工作原理 3. StoreFile 的合并 每次刷写都生成一个新的 StoreFile, 数量太多, 影响查找速度 调用 Store.compact() 把多个合并成一个 合并操作比较耗费资源, 只有数量达到一个阈值才启动合并

4.5.3Store 工作原理 Store 是 服务器的核心 多个 StoreFile 合并成一个 单个 StoreFile 过大时, 又触发分裂操作,1 个父 被分裂成两个子 StoreFile1:64M StoreFile2:64M StoreFile3:64M 合并 StoreFile5:256M 分裂 StoreFile5A:128M StoreFile5B:128M StoreFile6:128M StoreFile7:128M StoreFile4:64M 图 4-11 StoreFile 的合并和分裂过程

4.5.4HLog 工作原理 分布式环境必须要考虑系统出错 Hbase 采用 Hlog 保证系统恢复 HBase 系统为每个 服务器配置了一个 HLog 文件, 它是一种预写式日志 (Write Ahead Log) 用户更新数据必须首先写入日志后, 才能写入 MemStore 缓存, 并且, 直到 MemStore 缓存内容对应的日志已经写入磁盘, 该缓存内容才能被刷写到磁盘

4.5.4HLog 工作原理 Zookeeper 会实时监测每个 服务器的状态, 当某个 服务器发生故障时,Zookeeper 会通知 Master Master 首先会处理该故障 服务器上面遗留的 HLog 文件, 这个遗留的 HLog 文件中包含了来自多个 对象的日志记录 系统会根据每条日志记录所属的 对象对 HLog 数据进行拆分, 分别放到相应 对象的目录下, 然后, 再将失效的 重新分配到可用的 服务器中, 并把与该 对象相关的 HLog 日志记录也发送给相应的 服务器 服务器领取到分配给自己的 对象以及与之相关的 HLog 日志记录以后, 会重新做一遍日志记录中的各种操作, 把日志记录中的数据写入到 MemStore 缓存中, 然后, 刷新到磁盘的 StoreFile 文件中, 完成数据恢复 共用日志优点 : 提高对表的写操作性能 ; 缺点 : 恢复时需要分拆日志

本章小结 本章详细介绍了 HBase 数据库的知识 HBase 数据库是 BigTable 的开源实现, 和 BigTable 一样, 支持大规模海量数据, 分布式并发数据处理效率极高, 易于扩展且支持动态伸缩, 适用于廉价设备 HBase 可以支持 Native Java API HBase Shell Thrift Gateway REST Gateway Pig Hive 等多种访问接口, 可以根据具体应用场合选择相应访问方式 HBase 实际上就是一个稀疏 多维 持久化存储的映射表, 它采用行键 列键和时间戳进行索引, 每个值都是未经解释的字符串 本章介绍了 HBase 数据在概念视图和物理视图中的差别 HBase 采用分区存储, 一个大的表会被分拆许多个, 这些 会被分发到不同的服务器上实现分布式存储 HBase 的系统架构包括客户端 Zookeeper 服务器 Master 主服务器 服务器 客户端包含访问 HBase 的接口 ;Zookeeper 服务器负责提供稳定可靠的协同服务 ;Master 主服务器主要负责表和 的管理工作 ; 服务器负责维护分配给自己的, 并响应用户的读写请求

主讲教师 主讲教师 : 林子雨 单位 : 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人网页 :http://www.cs.xmu.edu.cn/linziyu 数据库实验室网站 :http://dblab.xmu.edu.cn 扫一扫访问个人主页 林子雨, 男,1978 年出生, 博士 ( 毕业于北京大学 ), 现为厦门大学计算机科学系助理教授 ( 讲师 ), 曾任厦门大学信息科学与技术学院院长助理 晋江市发展和改革局副局长 中国高校首个 数字教师 提出者和建设者, 厦门大学数据库实验室负责人, 厦门大学云计算与大数据研究中心主要建设者和骨干成员,2013 年度厦门大学奖教金获得者 主要研究方向为数据库 数据仓库 数据挖掘 大数据 云计算和物联网, 编著出版中国高校第一本系统介绍大数据知识的专业教材 大数据技术原理与应用 并成为畅销书籍, 编著并免费网络发布 40 余万字中国高校第一本闪存数据库研究专著 闪存数据库概念与技术 ; 主讲厦门大学计算机系本科生课程 数据库系统原理 和研究生课程 分布式数据库 大数据技术基础 具有丰富的政府和企业信息化培训经验, 曾先后给中国移动通信集团公司 福州马尾区政府 福建省物联网科学研究院 石狮市物流协会 厦门市物流协会等多家单位和企业开展信息化培训, 累计培训人数达 2000 人以上

大数据学习教材推荐 大数据技术原理与应用 概念 存储 处理 分析与应用, 由厦门大学计算机科学系林子雨博士编著, 是中国高校第一本系统介绍大数据知识的专业教材 扫一扫访问教材官网 全书共有 13 章, 系统地论述了大数据的基本概念 大数据处理架构 Hadoop 分布式文件系统 HDFS 分布式数据库 HBase NoSQL 数据库 云数据库 分布式并行编程模型 MapReduce 流计算 图计算 数据可视化以及大数据在互联网 生物医学和物流等各个领域的应用 在 Hadoop HDFS HBase 和 MapReduce 等重要章节, 安排了入门级的实践操作, 让读者更好地学习和掌握大数据关键技术 本书可以作为高等院校计算机专业 信息管理等相关专业的大数据课程教材, 也可供相关技术人员参考 学习 培训之用 欢迎访问 大数据技术原理与应用 概念 存储 处理 分析与应用 教材官方网站 : http://dblab.xmu.edu.cn/post/bigdata

课程建设单位 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn

Department of Computer Science, Xiamen University, Nov, 2015 分布式数据库 HBase 厦门大学云计算与大数据研究中心林子雨 ziyulin@xmu.edu.cn