云计算(第三版)配套之21第6章Hadoop20大家族(二)_第1页
云计算(第三版)配套之21第6章Hadoop20大家族(二)_第2页
云计算(第三版)配套之21第6章Hadoop20大家族(二)_第3页
云计算(第三版)配套之21第6章Hadoop20大家族(二)_第4页
云计算(第三版)配套之21第6章Hadoop20大家族(二)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1Hadoop2.0大家族概述6.2ZooKeeper6.3Hbase6.4Pig6.5Hive6.6Oozie6.7Flume6.8Mahout6.9小结26.3Hbase200620082010谷歌发表论文BigTablePowerset开启了Hbase工程Powerset将Hbase交给Apache托管Hbase成为Apache顶级工程Hbase是基于Hadoop的开源分布式数据库,它以Google的BigTable为原型,设计并实现了具有高可靠性高性能列存储可伸缩实时读写的分布式数据库系统。HBase适合于存储非结构化数据Hbase是基于列的而不是基于行的模式Hbase在Hadoop之上提供了类似于BigTable的能力6.3Hbase6.3.1Hbase简介6.3.2Hbase入门46.3HbaseHbase数据模型数据的逻辑模型数据的物理模型“表”的形式存储结构化数据数据库一般以“表”的形式存储数据Hbase也以用户对数据的组织形式Hbase里数据在HDFS上的具体存储形式5Hbase数据模型逻辑模型列族概念元素时间戳行和列确定的存储单元6行健时间戳列族contents列族anchor列族mime"n.www"t9

anchor:="CNN"

t8

anchor:my.look.ca="CNN.com"

t6contents:html="<html>…"

mime:type="text/html"t5contents:html="<html>…"

t6contents:html="<html>…"

6.3HbaseHbase数据模型表中仅有一行数据,行的唯一标识为,对这行数据的每一次逻辑修改都有一个时间戳关联对应。表中共有四列:contents:html,anchor:cnnsi,,mime:type,每一列以前缀的方式给出其所属的列族。76.3HbaseHbase数据模型在Hbase中访问表中的行有三种方式通过单个行健访问给定行健的范围访问全表扫描行键是数据行在表中的唯一标识,并作为检索记录的主键。Hbase提供了两个版本的回收方式:对每个数据单元,只存储指定个数的最新版本1保存最近一段时间内的版本〔如七天〕,客户端可以按需查询2元素由行健、列〔<列族>:<限定符>〕和时间戳唯一确定,元素中的数据以字节码的形式存储,没有类型之分。物理模型概念模型中的一个行进行分割并按照列族存储Hbase数据模型表中的空值是不被存储的如果没有指名时间戳,那么返回指定列的最新数据值可以随时向表中的任何一个列添加新列,而不需要事先声明8行健时间戳列族contents"n.www"t6contents:html="<html>…"t5contents:html="<html>…"t3contents:html="<html>…"行健时间戳列族anchor"n.www"t9anchor:="CNN"t8anchor:my.look.ca="CNN.com"行健时间戳列族mime"n.www"t6mime:type="text/html"6.3HbaseHbase数据模型9Hbase采用master/slave架构主节点运行的效劳称为HMaster从节点效劳称为HRegionServer底层采用HDFS存储数据Hbase架构clientHMaster6.3HbaseHbase架构1〕ClientClient端使用Hbase的RPC机制与HMaster和HRegionServer进行通信2〕ZooKeeper存储了ROOT表的地址、HMaster的地址和HRegionServer地址3〕HMasterHbase主节点,将Region分配给HRegionServer,协调HRegionServer的负载并维护集群状态4〕HRegionServerHRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据126.3Hbase6.3.1Hbase简介6.3.2Hbase入门146.3HbaseHbase部署123456部署前提Hbase部署规划部署HbaseHDFS里新建Hbase存储目录配置Hbase启动Hbase集群156.3HbaseHbase接口Hbase提供了诸多访问接口,下面简单罗列各种访问接口。NativeJavaAPIHbaseShellThriftGateway最常规和高效的访问方式,适合HadoopMapReduceJob并行批处理Hbase表数据。Hbase的命令行工具,最简单的接口,适合管理、测试时使用。166.3HbaseHbase接口Hbase提供了诸多访问接口,下面简单罗列各种访问接口。RESTGatewayPigHive支持REST风格的HTTPAPI访问Hbase,解除了语言限制。可以使用PigLatin流式编程语言操作Hbase中的数据,和Hive类似,本质上最终也是编译成MRJob来处理Hbase表数据,适合做数据统计。同Pig类似,用户可以使用类SQL的HiveQL语言处理Hbase表中数据,当然最终本质依旧是HDFS与MR操作。176.3HbaseHbase接口【例6-3】按要求完成问题:①假定MySQL里有member表,要求使用Hbase的Shell接口,在Hbase中新建并存储此表。②简述Hbase是否适合存储问题①中的结构化数据,并简单表达Hbase与关系型数据库的区别。身份ID姓名性别年龄教育职业收入201401aa021e0p3m201402bb122e1p2l201403cc123e2p1m18下面将姓名、性别、年龄这三个字段抽象为个人属性〔personalAttr〕,教育、职业、收入抽象为社会属性〔socialAttr〕,personalAttr列族包含name、gender和age三个限定符;同理socialAttr下包含edu、prof、inco三个限定符。Key行键Value列键列族personalAttr列族socialAttr身份ID姓名性别年龄教育职业收入201401aa021e0p3M201402bb122e1p2L201403cc123e2P1M6.3HbaseHbase接口【例6-3】解:19[root@iClient~]#hbaseshell#进入Hbase命令行hbase(main):001:0>list#查看所有表hbase(main):002:0>create'member','id','personalAttr','socialAttr'#创立member表hbase(main):003:0>listhbase(main):004:0>scan'member'#查看member内容hbase(main):005:0>put'member','202101','personalAttr:name','aa'#向member表中插入数据hbase(main):006:0>put'member','202101','personalAttr:gender','0'hbase(main):007:0>put'member','202101','personalAttr:age','21'hbase(main):008:0>put'member','202101','socialAttr:edu','e0'hbase(main):009:0>put'member','202101','socialAttr:job','p3'hbase(main):010:0>put'member','202101','socialAttr:imcome','m'hbase(main):011:0>scan'member'hbase(main):012:0>disable'member'#废弃member表hbase(main):013:0>drop'member'#删除member表hbase(main):014:0>quit按上述思路,iClient上依次执行如下命令:6.3HbaseHbase接口206.3HbaseHbase接口下面简单罗列Hbase和关系型数据库的区别:Hbase只提供字符串这一种数据类型,其他数据类型的操作只能靠用户自行处理,而关系型数据库有丰富的数据类型;Hbase数据操作只有很简单的插入、查询、删除、修改、清空等操作,不能实现表与表关联操作,而关系型数据库有大量此类SQL语句和函数;Hbase基于列式存储,每个列族都由几个文件保存,不同列族的文件是别离的,关系型数据库基于表格设计和行模式保存;Hbase修改和删除数据实现上是插入带有特殊标记的新记录,而关系型数据库是数据内容的替换和修改;Hbase为分布式而设计,可通过增加机器实现性能和数据增长,而关系型数据库很难做到这一点。123456.1Hadoop2.0大家族概述6.2ZooKeeper6.3Hbase6.4Pig6.5Hive6.6Oozie6.7Flume6.8Mahout6.9小结6.4Pig6.4.1Pig简介6.4.2Pig入门23Pig相当于一个Hadoop的客户端,它先连接到Hadoop集群,之后才能在集群上进行各种操作。Pig的根本框架如以以下图所示。PigLatinMapReduceCluster6.4PigPig根本框架246.4PigPig语法1〕PigLatin数据类型根本数据类型1和大局部程序语言类似,Pig的根本数据类型为int、long、float、double、chararray和bytearray。复杂数据类型2字符串或根本类型与字符串的组合,主要包含以下四种。FiledTupleBagMap256.4PigPig语法2〕PigLatin运算符加〔+〕减〔-〕乘〔*〕除〔/〕取余〔%〕三目运算符〔?:〕比较运算符等于〔==〕不等〔!=〕26PigLatin是由一系列函数〔命令〕构成的数据处理流,这些函数或是内置或是用户自定义,下表是最常用的几个命令。操作名称功能LOAD载入待处理数据FOREACH逐行处理TupleFILTER过滤不满足条件的TupleDUMP将结果打印到屏幕STORE将结果保存到文件6.4PigPig语法3〕PigLatin函数6.4Pig6.4.1Pig简介6.4.2Pig入门286.4PigPig入门1.Pig部署2.Pig访问接口由于Pig只相当于Hadoop的一个客户端,用户所写的PigLatin经翻译器翻译后再提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论