hbase面试题Miles

上传人:jiups****uk12 文档编号:40155649 上传时间:2018-05-24 格式:DOCX 页数:13 大小:31.89KB
返回 下载 相关 举报
hbase面试题Miles_第1页
第1页 / 共13页
hbase面试题Miles_第2页
第2页 / 共13页
hbase面试题Miles_第3页
第3页 / 共13页
hbase面试题Miles_第4页
第4页 / 共13页
hbase面试题Miles_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《hbase面试题Miles》由会员分享,可在线阅读,更多相关《hbase面试题Miles(13页珍藏版)》请在金锄头文库上搜索。

1、16.Hbase 的 rowkey 怎么创建比较好?列族怎么创建比较好?尽量将需要查询的维度或者信息存储在行键中,以为它筛选数据的效率最高行键是唯一的高表与宽表Hbase 内部是什么机制?client:1、包含访问 hbase 的接口, client 维护着一些 cache(缓存) 来加快对 hbase 的访问,比如 region 的 位置信息。 (经常使用的表的位置信息)zookeeper:1、保证任何时候,集群中只有一个 master2、存贮所有 Region 的寻址入口-root 表在哪台服务器上。 -root-这张表的位置信息3、实时监控 RegionServer 的状态,将 Regi

2、onServer 的上线和下线信息实时通知给 Master4、存储 Hbase 的 schema(表的描述信息),包括有哪些 table,每个 table 有哪些 column familymaster 职责:1、为 RegionServer 分配 region2、负责 RegionServer 的负载均衡3、发现失效的 RegionServer 并重新分配其上的 region4、 HDFS 上的垃圾文件( hbase)回收5、处理 schema 更新请求(增加,删除,修改)( JDBC:crud)RegionServer 职责1、 RegionServer 维护 Master 分配给它的 r

3、egion,处理对这些 region 的 IO 请求2、 RegionServer 负责切分在运行过程中变得过大的 regionhbase 写数据的原理是什么?1、客户端向 hregionServer 请求写数据 2、hregionServer 将数据先写入 hlog 中。 3、hregionServer 将数据后写入 memstore 中。 4、当内存中的数据达到阈值 64M 的时候,将数据 Flush 到硬盘中,并同时删除内存和 hlog 中的历史数据。 5、将硬盘中数据通过 HFile 来序列化,再将数据传输到 HDFS 进行存储。并对 Hlog做一个标记。 6、当 HDFS 中的数据块

4、达到 4 块的时候,Hmaster 将数据加载到本地进行一个合并(如果合并后数据的大小小于 256M 则当数据块再次达到 4 块时(包含小于 256M 的数据块)将最新 4 块数据块再次进行合并,此时数据块大于 256M)。 7、若数据块大于 256M,则将数据重新拆分,将分配后的 region 重新分配给不同的hregionServer 进行管理。 8、当 hregionServer 宕机后,将 hregionServer 上的 hlog 重新分配给不同的hregionServer 进行加载(修改.META 文件中关于数据所在 server 的信息)。注意:hlog 会同步到 HDFS 中。

5、读数据的流程(参考下图):1、通过 zk 来获取 ROOT 表在那个节点上,然后进一步通过-ROOT 表和-META 表来获取最终的位置信息。 2、数据从内存和硬盘合并后返回到客户端。 HBase 过滤器实现原则采用 bloomfilter 进行过滤,Bloom Filter 是一种空间效率很高的随机数据结构(1)BLOOMFILTER 在 HBase 的作用HBase 利用 BLOOMFILTER 来提供随机读(GET)的性能,对于顺序读(Scan),设置 BLOOMFILTER 是没有作用的。(2)BLOOMFILTER 在 HBase 的开销BLOOMFILTER 是一个列族级别的配置,

6、如果你表中设置了 BLOOMFILTER,那么HBase 在生成 StoreFile 时候包含一份 BLOOMFILTER 的结构数据,称为MetaBlock;开启 BLOOMFILTER 会有一定的存储以及内存的开销。(3)BLOOMFILTER 如何提供随机读(GET)的性能对于某个 region 的随机读,HBase 会遍历读 memstore 及 storefile(按照一定的顺序),将结果合并返回给客户端。如果你设置了 bloomfilter,那么在遍历读storefile 时,就可以利用 bloomfilter,忽略某些 storefile。 (4)Region 的 StoreFi

7、le 数目越多,BLOOMFILTER 效果越好(5)Region 下的 storefile 数目越少,HBase 读性能越好Hbase 在进行模型设计时重点在什么地方?一张表中定义多少个 Column Family最合适?为什么?具体看表的数据,一般来说划分标准是根据数据访问频度,如一张表里有些列访问相对频繁,而另一些列访问很少,这时可以把这张表划分成两个列族,分开存储,提高访问效率如何提高 HBase 客户端的读写性能?请举例说明。开启 bloomfilter 过滤器,开启 bloomfilter 比没开启要快 3、4 倍Hbase 对于内存有特别的嗜好,在硬件允许的情况下配足够多的内存给

8、它通过修改 hbase-env.sh 中的export HBASE_HEAPSIZE=3000 #这里默认为 1000m增大 RPC 数量通过修改 hbase-site.xml 中的hbase.regionserver.handler.count 属性,可以适当的放大。默认值为 10 有点小(3) 修改 java 虚拟机属性替换掉默认的垃圾回收器,因为默认的垃圾回收器在多线程环境下会有更多的 wait 等待 HBase 的的 rowkey 的的设计设计原原则则rowkey 长度原则rowkey 是一个二进制码流,可以是任意字符串,最大长度 64kb ,实际应用中一般为 10-100bytes,

9、以 byte 形式保存,一般设计成定长。建议越短越好,不要超过 16 个字节,原因如下rowkey 散列原则建议将 rowkey 的高位作为散列字段,由程序随机生成,低位放时间字段rowkey 唯一原则必须在设计上保证其唯一性,Hbase 的 rowkey 怎么创建比较好?列族怎么创建比较好?RowKey 设计:应该具备以下几个属性散列性:散列性能够保证相同相似的 rowkey 聚合,相异的 rowkey 分散,有利 于查询简短性:rowkey 作为 key 的一部分存储在 HFile 中,如果为了可读性将 rowKey 设计得过长,那么将会增加存储压力唯一性:rowKey 必须具备明显的区别

10、性建议将 HBase 列族的数量设置的越少越好。对于两个或两个以上的列族 HBase 并不能处理的很好。按照业务特点,把数据归类,不同类别的放在不同列族HBASE 内部机制Hbase 是一个能适应联机业务的数据库系统 物理存储:hbase 的持久化数据是存放在 hdfs 上 存储管理:一个表是划分为很多 region 的,这些 region 分布式地存放在很多 regionserver 上 Region 内部还可以划分为 store,store 内部有 memstore 和 storefile版本管理:hbase 中的数据更新本质上是不断追加新的版本,通过 compact 操 作来做版本间的文

11、件合并 Region 的 split集群管理: Zookeeper 作用在于:1、hbase regionserver 向 zookeeper 注册,提供 hbase regionserver 状态信 息(是否在线)。2、hmaster 启动时候会将 hbase 系统表-ROOT- 加载到 zookeeper cluster, 通过 zookeeper cluster 可以获取当前系统表.META.的存储所对应 regionserver 信息。+ HMaster 的作用:为 Region server 分配 region负责 Region server 的负载均衡发现失效的 Region se

12、rver 并重新分配其上的 regionHDFS 上的垃圾文件回收处理 schema 更新请求HRegionServer 作用:维护 master 分配给他的 region,处理对这些 region 的 io 请求负责切分正在运行过程中变的过大的 regionHBASE 过滤器实现原则HBase 提供了一个 API,你可以用来实现定制过滤器。多个过滤器也可以捆绑在 一起使用。可以在读过程最开始的地方,基于行健进行过滤处理。此后,也可以基于 HFile 读出的 KeyValues 进行过滤处 理。过滤器必须实现 HBase Jar 包中的 Filter接口,或者继承扩展一个实现了该接口的抽象类。

13、我们推荐继承扩展 FilterBase 抽象类,这样你不需要写样板代码。继承扩展其他诸如 CompareFilter 类也是一个选择,同样可以正常工作。当读取一 行时该接口有下面的方法在多个地方可以调过滤器有什么用途: 增强 hbase 查询数据的功能 减少服务端返回给客户端的数据量描述 HBase, zookeeper 搭建过程解压缩 进入 zookeeper-3.4.9 目录l 拷贝 conf/zoo_sample.cfgcp conf/zoo_sample.cfg conf/zoo.cfgl 编辑配置文件 conf/zoo.cfg# The number of milliseconds

14、of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The number of ticks that can pass between# sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is

15、just# example sakes.dataDir=/home/bigdata/software/zookeeper-3.4.9/zookeeper_data# the port at which the clients will connectclientPort=2181# The number of snapshots to retain in dataDirautopurge.snapRetainCount=5# Purge task interval in hoursautopurge.purgeInterval=1l 启动 zookeeperbin/zkServer.sh st

16、art在 master 机器上解压缩 hbase-1.2.4-bin.tar.gzl 进入 hbase-1.2.4 目录l 编辑 conf/hbase-env.sh 文件编辑 conf/hbase-site.xml 文件编辑 conf/regionservers 文件slave01slave02l 把 master 机器上的 hbase-1.2.4 目录拷贝到 slave01 和 slave02 上scp -r /home/bigdata/software/hbase-1.2.4 slave01:/home/bigdata/software/scp -r /home/bigdata/software/hbase-1.2.4 slave02:/home/bigdata/software/l 启动 HDFS/home/bigdata/software/hadoop-2.7.3/sbin/start-dfs.shl 在 master 上启动 HBasebin/start-hbase.shl 查看是否启动成功http:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号