Presentation is loading. Please wait.

Presentation is loading. Please wait.

大数据应用人才培养系列教材 大数据实践 刘 鹏 张 燕 总主编 袁晓东 主编 黄必栋 副主编.

Similar presentations


Presentation on theme: "大数据应用人才培养系列教材 大数据实践 刘 鹏 张 燕 总主编 袁晓东 主编 黄必栋 副主编."— Presentation transcript:

1 大数据应用人才培养系列教材 大数据实践 刘 鹏 张 燕 总主编 袁晓东 主编 黄必栋 副主编

2 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell
大数据应用人才培养系列教材 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell 3.5 HBase模式设计 3.6 HBase安全 习题

3 3.1 HBase简介 第三章 Hadoop数据库HBase 1.体系架构

4 HBase体系架构 3.1 HBase简介 Client HMaster ZooKeeper HRegionServer 元数据
第三章 Hadoop数据库HBase Client HMaster 集群的管理者 HMaster失效短时间内HBase集群仍可继续工作 最多可配置10个HMaster Client端有访问HBase的接口,并通过缓存来加快对HBase的访问。 ZooKeeper HBase体系架构 ZooKeepe主要用于解决分布式应用中经常遇到的统一命名服务、状态同步服务、集群管理、配置项管理等问题。 HRegionServer HBase在存储表数据时自动按行键(rowkey)将表分成很多块进行存储,每一块称为一个HRegion。 HRegionServer负责管理本服务器上的HRegions、处理对HRegion的I/O请求。 HRegion是HBase表数据存储分配的最小单位,会自动进行拆分与合并。 元数据 所有的HRegion ID及其映射信息组成了HRegions元数据。 用户表的HRegions元数据被存储在.META.表中。

5 3.1 HBase简介 HRegion定位示意图 用户表 .META. -ROOT- ZooKeeper HRegion ……
第三章 Hadoop数据库HBase HRegion定位示意图 ZooKeeper -ROOT- HRegion .META. …… 用户表

6 3.1 HBase简介 2.数据模型 1)基本术语 表(Table):HBase中的表由若干行组成。
第三章 Hadoop数据库HBase 2.数据模型 1)基本术语 表(Table):HBase中的表由若干行组成。 行(Row):HBase中表的一行由一个行键和若干个列名到值的映射组成。 列(Column):HBase中的每一列都属于某一列族,列名称由<列族名>:<列修饰符>组成。 列族(Column Family):HBase表在存储上是按列族存储的,将一张表同一列族下的所有列及其值存储在一起以便达到更好的性能。 列修饰符(Column Qualifier):列修饰符加在列族名的后面用于表示某一列。 单元(Cell):HBase中通过行键、列族、列修饰符的组合定位到一个单元,每个单元保存着多个版本的数据,即多个带有时间戳的值,时间戳代表了值的版本。 时间戳(Timestamp):HBase中保存的每个值都带有一个时间戳,以时间戳作为值的版本标识。

7 3.1 HBase简介 2)概念视图示例 行键 时间戳 列族basicinfo 列族performance 列族package
第三章 Hadoop数据库HBase 2)概念视图示例 行键 时间戳 列族basicinfo 列族performance 列族package C000001 t9 basicinfo:position= "Tenical manager" performance:y2016= "A" package:salary="15000" package:bonus="20000" t6 performance:y2015= "B" package:salary="13000" package:bonus="10000" t3 basicinfo:name="张三" basicinfo:gender="男" basicinfo:birthyear="1978" basicinfo:position="Senior engineer" package:salary="12000" C000002 t7 performance:y2016= "C" t4 basicinfo:name="李四" basicinfo:birthyear="1986" basicinfo:position= "Engineer" package:salary="8000"

8 3.1 HBase简介 3)物理视图示例 行键 时间戳 列族basicinfo C000001 t9
第三章 Hadoop数据库HBase 3)物理视图示例 行键 时间戳 列族basicinfo C000001 t9 basicinfo:position="Tenical manager" t3 basicinfo:name="张三" basicinfo:gender="男" basicinfo:birthyear="1978" basicinfo:position="Senior engineer" C000002 t4 basicinfo:name="李四" basicinfo:birthyear="1986" basicinfo:position="Engineer" 列族performance performance:y2016= "A" t6 performance:y2015= "B" t7 performance:y2016= "C" 列族package package:salary="15000" package:bonus="20000" package:salary="13000" package:bonus="10000" package:salary="12000" package:salary="8000"

9 3.1 HBase简介 3.主要特性 可伸缩性 强读写一致性 自动分片 HRegionServer自动故障切换 Hadoop/HDFS集成
第三章 Hadoop数据库HBase 3.主要特性 可伸缩性 强读写一致性 自动分片 HRegionServer自动故障切换 Hadoop/HDFS集成 MapReduce集成 提供Java客户端API 提供Thrift/REST API 块缓存和布隆过滤(Bloom Filters) 提供内置的Web操作管理页面

10 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell
大数据应用人才培养系列教材 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell 3.5 HBase模式设计 3.6 HBase安全 习题

11 3.2 HBase部署 1.准备工作 HBase集群对安装和运行环境的基本要求如下: 安装JDK 建立ssh免费访问 提供DNS服务器
第三章 Hadoop数据库HBase 1.准备工作 HBase集群对安装和运行环境的基本要求如下: 安装JDK 建立ssh免费访问 提供DNS服务器 安装NTP服务 ulimit配置 支持GNU Bash Shell 安装Hadoop 安装ZooKeeper

12 3.2 HBase部署 2.单节点部署 单节点部署步骤如下: 选定安装目录,解压HBase安装包;
第三章 Hadoop数据库HBase 2.单节点部署 单节点部署步骤如下: 选定安装目录,解压HBase安装包; 在HBase配置文件conf/hbase-env.sh中配置JAVA_HOME; 在HBase配置文件conf/hbase-site.xml中配置HBase和ZooKeeper用于写数据的目录; 至此HBase单节点部署完毕,可执行脚本bin/start-hbase.sh启动HBase。

13 3.2 HBase部署 可以访问网址http://<host>:16010来查看HBase状态:
第三章 Hadoop数据库HBase 可以访问网址

14 3.2 HBase部署 3.伪分布式部署 将HBase单节点部署改为伪分布式部署并改用HDFS存储数据的步骤如下: 停止HBase;
第三章 Hadoop数据库HBase 3.伪分布式部署 将HBase单节点部署改为伪分布式部署并改用HDFS存储数据的步骤如下: 停止HBase; 配置文件conf/hbase-site.xml中增加hbase.cluster.distributed配置项并修改hbase.rootdir的配置值为HDFS目录; 启动HBase; 检查HBase目录; 启动和停止备用HMaster; 启动和停止更多HRegionServers。

15 3.2 HBase部署 4.集群部署 HBase集群部署架构示例: 节点类型 机器名称 HMaster HRegionServer
第三章 Hadoop数据库HBase 4.集群部署 HBase集群部署架构示例: 节点类型 机器名称 HMaster HRegionServer ZooKeeper master slave1 备用 slave2 slave3

16 3.2 HBase部署 HBase集群部署的步骤如下: 建立ssh免密码访问; 部署master; 安装HBase;
第三章 Hadoop数据库HBase HBase集群部署的步骤如下: 建立ssh免密码访问; 部署master; 安装HBase; 配置HRegionServer; 配置备用HMaster; 配置ZooKeeper。 部署slave1、slave2、slave3; 启动、测试HBase集群。 在每个节点上执行jps命令确保都没有启动HBase进程; 在master上执行bin/start-hbase.sh脚本来启动集群; 检查每个节点上的进程是否启动; 检查Web界面; 模拟故障测试。

17 3.2 HBase部署 5.版本升级 版本号的格式为:主版本号.小版本号.补丁版本号,其含义如下:
第三章 Hadoop数据库HBase 5.版本升级 版本号的格式为:主版本号.小版本号.补丁版本号,其含义如下: 主版本号:当包含了不兼容的API修改时需增加主版本号。 小版本号:当添加了向后兼容的功能时增加小版本号。 补丁版本号:当包含了向后兼容的错误修正时增加补丁版本号。 为预发布或开发管理等目的,还可以在补丁版本号后面增加更多层级编号。启动HBase; HBase的版本升级有三种情况:主版本升级、小版本升级、补丁版本升级: 补丁版本升级对应用程序无影响,可以安全升级。 小版本升级不需要应用程序和客户端改动程序代码,但可能需要对代码用新的.jar文件进行重新编译。 主版本升级不能保证API兼容性,应谨慎进行。

18 3.2 HBase部署 从HBase 1.1.2升级到HBase 1.2.4滚动升级的步骤如下:
第三章 Hadoop数据库HBase 从HBase 1.1.2升级到HBase 1.2.4滚动升级的步骤如下: 下载解压HBase 1.2.4安装包,在每台服务器上解压到新的目录; 修改/usr/local/hbase-1.2.4/conf下的配置文件,将1.1.2版本的配置文件中的内容复制到1.2.4版本的配置文件中; 在/usr/local/hbase-1.2.4/bin下执行滚动重启脚本rolling-restart.sh,格式如下: hbase-1.2.4]# HBASE_HOME=/usr/local/hbase /rolling-restart.sh --config /usr/local/hbase-1.2.4/conf 升级完成,可删除原来1.1.2版本安装目录下的文件。

19 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell
大数据应用人才培养系列教材 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell 3.5 HBase模式设计 3.6 HBase安全 习题

20 3.3 HBase配置 1.配置文件 上述7个HBase配置文件的路径和内容在每个节点上都必须一致。
第三章 Hadoop数据库HBase 1.配置文件 hbase-site.xml:HBase最主要的配置文件。 hbase-env.sh:设置HBase运行所需的工作环境。 backup-masters:列出哪些服务器应启动备用HMaster进程。 regionservers:列出了哪些服务器启动HRegionServer进程。 hbase-policy.xml:PRC服务器对客户端请求进行权限验证时使用的策略配置文件,仅当启用HBase安全管理时才使用。 log4j.properties:HBase所使用的日志模块log4j的配置文件。 hadoop-metrics2-hbase.properties:该配置文件将HBase集群与Hadoop的Metrics2框架相关联,可用于实时收集HBase集群的各类监控信息。 上述7个HBase配置文件的路径和内容在每个节点上都必须一致。

21 3.3 HBase配置 2.主要配置项 hbase.cluster.distributed:是否为分布式运行模式,默认值为false。
第三章 Hadoop数据库HBase 2.主要配置项 hbase.cluster.distributed:是否为分布式运行模式,默认值为false。 hbase.tmp.dir:HBase节点在本地文件系统中的临时目录,默认值为${java.io.tmpdir}/hbase-${user.name}。 hbase.rootdir:HBase所保存文件的根目录,默认值为${hbase.tmp.dir}/hbase。 hbase.fs.tmp.dir:HBase集群在HDFS文件系统中保存临时数据的中转目录,默认值为/user/${user.name}/hbase-staging。 hbase.local.dir:HBase节点在本地文件系统中用于本地存储的目录,默认值为${hbase.tmp.dir}/local。 hbase.zookeeper.quorum:哪些服务器上运行ZooKeeper进程,默认值为localhost。

22 3.3 HBase配置 第三章 Hadoop数据库HBase hbase.zookeeper.property.dataDir:ZooKeeper用于保存数据的目录,默认值为${hbase.tmp.dir}/zookeeper。 hbase.zookeeper.property.maxClientCnxns:每个ZooKeeper服务器允许接受的客户端并发连接数量,默认值为300。 zookeeper.session.timeout:ZooKeeper会话的超时时间,单位是毫秒,默认值是90000。 hbase.master.port:HMaster进程绑定的端口号,默认值为16000。 hbase.master.info.port:HBase Master的Web页面的端口号,默认值为16010。 hbase.master.wait.on.regionservers.mintostart:HBase集群启动时HMaster在有多少个HRegionServer启动后开始分配任务,默认值为1。 hbase.regionserver.port:HRegionServer进程绑定的端口号,默认值为16020。

23 3.3 HBase配置 第三章 Hadoop数据库HBase hbase.regionserver.info.port:HRegionServer的Web页面的端口号,默认值为16030。 hbase.regionserver.handler.count:每台HRegionServer和HMaster上用于侦听响应客户端请求的线程数量,默认值为30。 hbase.ipc.server.callqueue.handler.factor:每台HRegionServer和HMaster上对应于处理线程数的调用等待队列数量因子,范围在0到1之间,默认值为0.1,表示每10个处理线程共享一个调用等待队列。 hbase.hregion.max.filesize:一个HRegion中所有Hfile文件合计大小上限,默认值为 ,即10G。 hbase.hregion.majorcompaction:HRegion数据自动进行周期性主压缩的间隔时间,单位是毫秒,默认值为 ,即7天。 hbase.hregion.majorcompaction.jitter:随机执行周期性主压缩操作的前后时间范围,默认值为0.5。

24 3.3 HBase配置 第三章 Hadoop数据库HBase hbase.hregion.memstore.flush.size:Store中的MemStore达到多大时会存入磁盘生成StoreFile,默认值为 ,即128M。 hbase.regionserver.global.memstore.size:HRegionServer中所有MemStore合计大小的上限,按照堆内存的百分比计算,默认值为0.4,即上限为堆内存的40%。 hfile.block.cache.size:最多使用堆内存的百分之多少作为StoreFile的块缓存,默认值为0.4,即上限为堆内存的40%。 hbase.balancer.period:HMaster运行HRegion均衡器的周期,单位是毫秒,默认值为300000。 hbase.client.write.buffer:HBase服务器端和客户端写入数据库缓冲区的大小,默认值为 ,即2M。 hbase.security.authentication:是否启用HBase客户端安全认证,默认值为simple,表示不进行安全认证。

25 3.3 HBase配置 3.配置建议 1)hbase-site.xml 必须配置以下参数: 建议配置以下参数:
第三章 Hadoop数据库HBase 3.配置建议 1)hbase-site.xml 必须配置以下参数: 建议配置以下参数: hbase.cluster.distributed hbase.tmp.dir hbase.rootdir hbase.zookeeper.quorum hbase.zookeeper.property.dataDir hbase.master.wait.on.regionservers.mintostart hbase.regionserver.handler.count hbase.hregion.majorcompaction hbase.hregion.majorcompaction.jitter hbase.regionserver.global.memstore.size hfile.block.cache.size hbase.client.write.buffer

26 3.3 HBase配置 2)hbase-env.sh 示例如下:
第三章 Hadoop数据库HBase 2)hbase-env.sh 示例如下: # The java implementation to use. Java 1.7+ required. export JAVA_HOME=/etc/alternatives/jre_1.7.0_openjdk # The maximum amount of heap to use. Default is left to JVM default. export HBASE_HEAPSIZE=8G # Tell HBase whether it should manage it's own instance of Zookeeper or not. export HBASE_MANAGES_ZK=false

27 3.3 HBase配置 第三章 Hadoop数据库HBase 4.客户端配置 在客户端解压HBase安装包并将解压后的lib/子目录和conf/子目录加入到客户端的CLASSPATH环境变量中; 客户端的配置比较简单,只需要在conf/hbase-site.xml配置文件中设置好参数hbase.zookeeper.quorum即可,示例如下: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave2,slave3</value> </property> </configuration> hbase.zookeeper.quorum 配置值中不能包含空格。

28 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell
大数据应用人才培养系列教材 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell 3.5 HBase模式设计 3.6 HBase安全 习题

29 3.4 HBase Shell 第三章 Hadoop数据库HBase 1.交互模式 在HBase安装目录的bin子目录下执行hbase shell命令即可进入HBase Shell交互模式进行数据库操作。 在HBase Shell提示符下执行help命令可列出所有命令列表。 执行help '<command>'可显示针对某条命令的帮助信息,注意<command>前后要加单引号或双引号。

30 3.4 HBase Shell 1)DDL命令 create:创建一张新表。 list:列出名称匹配的表。
第三章 Hadoop数据库HBase 1)DDL命令 create:创建一张新表。 list:列出名称匹配的表。 exists:查看某张表是否存在。 describe:显示某张表的定义,也可以使用简写命令desc。 disable:停用某张表。表被停用后则无法再对其进行增删改和查询等操作,在对表执行alter命令或drop命令之前必须先执行disable命令停用。 enable:启用某张被disable命令停用的表。表被启用后即可恢复正常操作。 alter:可在某张表中增加、修改、删除列族或者更改表的属性定义. drop:删除某张表。在删除前必须先执行disable命令停用该表。

31 3.4 HBase Shell 2)DML命令 put:向某张表里的指定单元插入数据。通过行键和列名来指定一个单元。
第三章 Hadoop数据库HBase 2)DML命令 put:向某张表里的指定单元插入数据。通过行键和列名来指定一个单元。 scan:查询某张表中满足条件的数据。可以在行、列、时间戳等多个维度上设定查询条件。 get:获取表中给定行符合条件的数据。 count:查询某张表中的行数,默认时每1000行计一次数。 delete:删除某张表中指定单元的数据,通过表名、行键和列名指定一个单元,还可以加上时间戳。

32 3.4 HBase Shell 第三章 Hadoop数据库HBase 3)命名空间类命令 命名空间是对表的逻辑分组,HBase可以针对命名空间分配资源限额、指定HRegionServer子集、进行安全管理等。HBase有以下两个默认的命名空间: hbase:系统命名空间,用于保存HBase的内部表。 default:HBase的默认命名空间,如果一张表没有指定命名空间时,则自动属于default命名空间。 create_namespace:创建一个命名空间。 alter_namespace:修改某个命名空间的定义。 describe_namespace:显示命名空间的定义。 list_namespace:不加选项时列出所有的命名空间,也可以加上带有通配符的正则表达式选项。 list_namespace_tables:列出某个命名空间中的所有表。 drop_namespace:删除某个命名空间。

33 3.4 HBase Shell 4)其他命令 配置类命令:对HBase集群参数配置值进行动态更新。
第三章 Hadoop数据库HBase 4)其他命令 配置类命令:对HBase集群参数配置值进行动态更新。 大多数配置更改后必须重新启动HBase集群才能生效,与HRegion压缩、拆分相关的参数可以动态更改,更改后在HBase Shell中执行update_all_config命令即可生效。 安全类命令:将在3.6中介绍。 通过help命令可以查看每个命令的作用和使用方法。

34 3.4 HBase Shell 第三章 Hadoop数据库HBase 2.非交互模式 HBase Shell还可以以非交互方式运行,加上-n或者--noninteractive选项即可进入非交互模式,所执行命令可以通过输入重定向获取,例如: bin]# echo "list_namespace_tables 'default'" | ./hbase shell -n HBase命令也可以直接以脚本文件作为其命令行参数来执行,例如: bin]# ./hbase shell sample_cmd.txt

35 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell
大数据应用人才培养系列教材 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell 3.5 HBase模式设计 3.6 HBase安全 习题

36 3.5 HBase模式设计 1.设计准则 1)行键设计 读访问模式:通过行键索引提升查询效率。
第三章 Hadoop数据库HBase 1.设计准则 1)行键设计 读访问模式:通过行键索引提升查询效率。 HBase中唯一可用的索引只有行键索引,需要对行键精心设计来尽可能地优化数据查询。 某项数据放在行键中会得到更好的查询性能,但是行键的长度变长,行键索引会占用更多的内存资源,由于行键在每个列族中保存,也会需要更多的磁盘空间。

37 3.5 HBase模式设计 写访问模式:避免同一时间段里写入的数据形成热点。 随机前缀:在原先彼此相邻的行键前面加上一个随机生成的前缀。
第三章 Hadoop数据库HBase 写访问模式:避免同一时间段里写入的数据形成热点。 随机前缀:在原先彼此相邻的行键前面加上一个随机生成的前缀。 哈希前缀:针对随机前缀生成的行键具有不确定性的缺陷,哈希前缀做了改进,通过对原行键调用选定的哈希函数生成前缀。 反转键:将原先彼此相邻的行键按字节序反转生成新的行键。 以上几种策略都会失去数据按特定行键顺序存放的特性,在进行范围查询时需要访问全部索引数据且需要有更多的磁盘IO操作,对性能影响很大。最理想的行键设计方法是既能让有关联的数据集中在一起存放,又能达到写负载均衡的目的。

38 3.5 HBase模式设计 行键长度:平衡查询性能和内存占用,常用的行键设计策略有: 优先考虑节省系统资源:设计有意义但尽可能短的行键。
第三章 Hadoop数据库HBase 行键长度:平衡查询性能和内存占用,常用的行键设计策略有: 优先考虑节省系统资源:设计有意义但尽可能短的行键。 优先考虑查询性能:在资源允许的情况下尽可能实现查询优化。 兼顾资源使用和查询性能:行键的设计仅考虑经常执行的关键查询优化。 如果将行键设计为二进制字节型数据类型可以在不牺牲行键内容的情况下明显缩短行键长度,但缺点是行键的可读性变得很差。

39 3.5 HBase模式设计 2)列族划分 每张表的列族数能少则少,尽量不超过三个。
第三章 Hadoop数据库HBase 2)列族划分 每张表的列族数能少则少,尽量不超过三个。 将有相同访问模式的所有数据存储在同一列族,不同访问模式的数据存储在不同列族,并在列族属性中定义好访问模式。 如果某些列数据经常被一起访问而不需要访问其他列的数据,可考虑将这些列划分为一个列族。 列族和列的名字应尽量短,建议列族名用一个字母表示,列修饰符用少数几个字母表示。 为了提高读性能,可进行反规范化设计,即在多张表中储存冗余数据。冗余设计会对写性能有影响,也会加大应用程序的复杂度。 HBase不支持跨行事务,所以在列族设计时要避免一个事务涉及多行数据。

40 3.5 HBase模式设计 第三章 Hadoop数据库HBase 3)数据量估算和控制 每个单元的大小最好不超过100K,如果超过100K应考虑使用MOB(Medium-sized Objects)文件存储,如果超过50M则应考虑将数据保存在HDFS文件中,在HBase中仅保存文件的访问路径。 每个HRegion的大小最好在10G到50G之间。 每张表的HRegion数量不超过100个为宜。 在创建表的时候预估数据量,据此预分配足够数量的HRegion,从而避免或减少日后对HRegion的拆分。 对于不需要长期保存的数据,设置合理的数据过期时间。 版本数量尽可能设置得小一些或使用默认值1。 如果表中储存的是基于时间的设备数据或日志信息,可将行键设计为设备ID/服务ID加上时间。

41 3.5 HBase模式设计 4)内存需求估算和配置 内存需求。集群中所有MemStore合计所需的最大内存通过下列公式估算:
第三章 Hadoop数据库HBase 4)内存需求估算和配置 内存需求。集群中所有MemStore合计所需的最大内存通过下列公式估算: MemStore大小 * HRegion数量 * 每个HRegion中平均列族数 内存供给。集群参数hbase.regionserver.global.memstore.size配置了每个HRegionServer允许的所有MemStore合计大小上限,该配置值乘以HRegionServer数量即为整个集群的内存供给。 如果因为HRegion数量过大造成MemStore内存需求远大于实际内存供给,则会导致系统频繁地进行MemStore存盘操作而影响性能。

42 3.5 HBase模式设计 2.列族属性 BLOOMFILTER:定义布隆过滤器类型,默认为ROW。 NONE:表示不使用布隆过滤。
第三章 Hadoop数据库HBase 2.列族属性 BLOOMFILTER:定义布隆过滤器类型,默认为ROW。 NONE:表示不使用布隆过滤。 ROW:表示使用基于行的布隆过滤。 ROWCOL:表示使用基于行和列的布隆过滤。 COMPRESSION:是否以压缩方式在磁盘上存储列族数据及压缩编码格式,默认值为NONE。 NONE:表示不压缩。 GZ:表示采用GZ压缩算法。 LZ4:表示采用LZ4压缩算法,该算法在Hadoop库中提供。 LZO:表示采用LZO压缩算法,该算法库需由用户自行安装。 SNAPPY:表示采用SNAPPY压缩算法,该算法库需由用户自行安装。

43 3.5 HBase模式设计 DATA_BLOCK_ENCODING:定义数据块编码格式,默认值为NONE。
第三章 Hadoop数据库HBase DATA_BLOCK_ENCODING:定义数据块编码格式,默认值为NONE。 NONE:表示不使用压缩编码格式。 PREFIX:表示使用前缀编码格式。 DIFF:表示使用差异编码格式。 FAST_DIFF:表示使用快速差异编码格式。 PREFIX_TREE:表示采用前缀树编码格式。 VERSIONS:定义列族单元保存的数据版本数量,默认值为1。 MIN_VERSIONS:定义列族存储的最少版本数,默认值为0。 TTL:定义数据的生存时间,以秒为单位,默认值为FOREVER,表示永远不过期。

44 3.5 HBase模式设计 第三章 Hadoop数据库HBase KEEP_DELETED_CELLS:定义在主压缩时是否清除带有删除标志的数据以及在查询时是否返回带有删除标志的数据,默认值为false。 BLOCKSIZE:定义HFile数据块的大小,默认值为64K。 BLOCKCACHE:定义是否在内存中缓存数据块,默认值为true。 IN_MEMORY:定义列族是否优先放入块缓存中,默认值为false。 REPLICATION_SCOPE:定义列族是否在其他HBase集群中复制以及复制份数,默认值为0,表示不在其他集群中复制。

45 3.5 HBase模式设计 第三章 Hadoop数据库HBase 3.表属性 SPLITS、SPLITS_FILE、NUMREGIONS、SPLITALGO:对表进行预拆分,有如下预拆分方法: 提供拆分点数组,对应的表属性为SPLITS 。 将拆分点保存在文本文件中,对应的表属性为SPLITS_FILE 。 通过给出HRegion数量和拆分算法来自动计算出拆分点,对应的表属性分别是NUMREGIONS和SPLITALGO。 READONLY:定义只读表。

46 3.5 HBase模式设计 DURABILITY :定义WAL日志的持久化策略,默认值为USE_DEFAULT。
第三章 Hadoop数据库HBase DURABILITY :定义WAL日志的持久化策略,默认值为USE_DEFAULT。 SYNC_WAL:表示采用同步方式写WAL日志。 ASYNC_WAL:表示采用异步方式写WAL日志。 FSYNC_WAL:表示采用同步方式写WAL日志,并且强制将WAL刷新到磁盘上。 SKIP_WAL:表示不写入WAL日志。 USE_DEFAULT:表示使用HBase的全局默认值SYNC_WAL。 MAX_FILESIZE:定义该表的每个HRegion中所有HFile合计大小上限,默认值为集群配置项hbase.hregion.max.filesize的配置值。 MEMSTORE_FLUSHSIZE:定义表的MemStore大小上限,默认值为集群配置项hbase.hregion.memstore.flush.size的配置值。

47 3.5 HBase模式设计 4.设计实例 电商平台应用需要解决的问题有以下几类: 统计每类商品或每款商品的销售情况。
第三章 Hadoop数据库HBase 4.设计实例 电商平台应用需要解决的问题有以下几类: 统计每类商品或每款商品的销售情况。 查询每类商品或每款商品的购买客户列表,以便对购买人群进行特征分析。 查询某个客户购买的商品列表,以便分析其个人喜好。

48 3.5 HBase模式设计 根据应用需求设计出以下四张表:
第三章 Hadoop数据库HBase 根据应用需求设计出以下四张表: customer:客户表,只有一个列族c,GZ方式压缩存储,PREFIX编码格式。 goods:商品表,只有一个列族g, GZ方式压缩存储,PREFIX编码格式,IN_MEMROY属性为true,VERSIONS属性为10。预拆分成10个HRegion。 order:订单表,有两个列族o和c,其中列族o保存订单信息,列族c保存对购买人群进行特征分析所需的客户信息。订单表采取了和商品表同样的拆分方法预拆分为10个HRegion。 customer_order:客户购买记录表,以客户ID+商品ID+订单时间戳为行键,专门供分析个体客户的个人喜好使用,只有一个列族g保存分析客户喜好所需的那部分信息。

49 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell
大数据应用人才培养系列教材 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell 3.5 HBase模式设计 3.6 HBase安全 习题

50 3.6 HBase安全 1.安全访问配置 1)客户端安全访问
第三章 Hadoop数据库HBase 1.安全访问配置 1)客户端安全访问 在每台服务器的hbase-site.xml配置文件中设置hbase.security.authentication、hbase.security.authorization、hbase.coprocessor.region.classes等属性来要求客户端必须通过Kerberos认证才能访问HBase。 配置修改之后必须关闭整个HBase集群再重新启动才能生效。 客户端也需要在hbase-site.xml中将hbase.security.authentication设置为kerberos才能访问集群,如果客户端和服务器端该参数配置不一致,它们之间将无法进行通信。

51 3.6 HBase安全 第三章 Hadoop数据库HBase 2)客户端简单访问控制 客户端简单访问控制并不能阻止黑客攻击,只是一种很方便的通过设置用户权限来进行访问控制的方法,可防止误操作。 在每台服务器的hbase-site.xml配置文件中设置hbase.security.authentication为simple,以及hbase.security.authorization、hbase.coprocessor.master.classes、hbase.coprocessor.region.classes、hbase.coprocessor.regionserver.classes等参数。 配置修改之后关闭整个HBase集群再重新启动让其生效。 客户端hbase-site.xml中也将hbase.security.authentication设置为simple。

52 3.6 HBase安全 第三章 Hadoop数据库HBase 2)客户端简单访问控制 客户端简单访问控制并不能阻止黑客攻击,只是一种很方便的通过设置用户权限来进行访问控制的方法,可防止误操作。 在每台服务器的hbase-site.xml配置文件中设置hbase.security.authentication为simple,以及hbase.security.authorization、hbase.coprocessor.master.classes、hbase.coprocessor.region.classes、hbase.coprocessor.regionserver.classes等参数。 配置修改之后关闭整个HBase集群再重新启动让其生效。 客户端hbase-site.xml中也将hbase.security.authentication设置为simple。

53 3.6 HBase安全 2.数据访问权限控制 HBase中的数据访问权限分为以下5种彼此独立的级别:
第三章 Hadoop数据库HBase 2.数据访问权限控制 HBase中的数据访问权限分为以下5种彼此独立的级别: Read(R):读权限,可以读取指定范围内的数据。 Write(W):写权限,可以在指定范围内写数据。 Execute(X):执行权限,可以在指定范围内执行HBase协处理器终端程序。 Create(C):创建权限,可以在指定范围内创建、删除表。 Admin(A):管理权限,可以在指定范围内执行分配HRegion、平衡负载等集群操作。

54 3.6 HBase安全 2.数据访问权限控制 HBase中的数据访问权限分为以下5种彼此独立的级别:
第三章 Hadoop数据库HBase 2.数据访问权限控制 HBase中的数据访问权限分为以下5种彼此独立的级别: Read(R):读权限,可以读取指定范围内的数据。 Write(W):写权限,可以在指定范围内写数据。 Execute(X):执行权限,可以在指定范围内执行HBase协处理器终端程序。 Create(C):创建权限,可以在指定范围内创建、删除表。 Admin(A):管理权限,可以在指定范围内执行分配HRegion、平衡负载等集群操作。

55 3.6 HBase安全 权限的作用范围包含如下几种: 超级用户:可以对任意对象执行所有操作。 全局:允许在集群的所有表上执行操作。
第三章 Hadoop数据库HBase 权限的作用范围包含如下几种: 超级用户:可以对任意对象执行所有操作。 全局:允许在集群的所有表上执行操作。 命名空间:允许在指定命名空间的所有表上执行操作。 表:允许在指定表的数据或元数据上执行操作。 列族:允许在指定列族的单元上执行操作。 列:允许在指定列的单元上执行操作。 各种权限级别和作用范围组合在一起可以实现非常细粒度的权限控制。

56 3.6 HBase安全 在HBase Shell中可以通过grant命令来进行授权,其语法格式如下:
第三章 Hadoop数据库HBase 在HBase Shell中可以通过grant命令来进行授权,其语法格式如下: grant <user>, <permissions> [, | <table> [, <column family> [, <column qualifier>]]] 权限回收命令revoke格式和grant命令类似,只是少了第二个表示权限级别的参数,含义是回收该用户在指定范围内的所有权限。 注意revoke命令的作用范围参数必须和grant命令一致才能成功回收权限,否则不论给出的作用范围是更大还是更小都不会回收权限。

57 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell
大数据应用人才培养系列教材 第三章 Hadoop数据库HBase 3.1 HBase简介 3.2 HBase部署 3.3 HBase配置 3.4 HBase Shell 3.5 HBase模式设计 3.6 HBase安全 习题

58 习题: HBase集群中HMaster、HRegionServer和ZooKeeper的主要作用分别是什么?
HBase Shell有哪些DDL命令和DML命令?请分别对它们作简要描述。 你认为应如何进行HBase的行键设计? 对HBase表划分列族时应遵循哪些原则? HBase表有哪些列族属性和表属性?请分别进行简要描述。 HBase中数据访问有哪几种权限级别?它们的作用范围有哪些?

59 AIRack人工智能实验平台 ——一站式的人工智能实验平台 DeepRack深度学习一体机 ——开箱即用的AI科研平台 BDRack大数据实验平台——一站式的大数据实训平台

60 云创公众号推荐 刘鹏看未来 云计算头条 中国大数据 深度学习世界 云创大数据订阅号 云创大数据服务号 高校大数据与人工智能
微信号:lpoutlook 云计算头条 微信号:chinacloudnj 中国大数据 微信号:cstorbigdata 深度学习世界 微信号:dl-world 云创大数据订阅号 微信号:cStor_cn 云创大数据服务号 微信号:cstorfw 高校大数据与人工智能 微信号:data_AI

61 手机APP推荐 我的PM2.5 随时随地准确 查看身边的 PM2.5值 同声译 支持26种语言 互译的实时翻 译软件 我的南京
云创大数据为路 况大数据应用提 供技术支持 科技头条 汇聚前沿资讯 的科技情报站

62 网站推荐 万物云 智能硬件大数据免费托管平台 环境云 环境大数据开放共享平台

63 感谢聆听


Download ppt "大数据应用人才培养系列教材 大数据实践 刘 鹏 张 燕 总主编 袁晓东 主编 黄必栋 副主编."

Similar presentations


Ads by Google