大数据面试必问 | 数据存储利器——Hbase
HBase 是一个分布式的、面向列的分布式数据库,HB
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。 HBase 是一个分布式的、面向列的分布式数据库,HBase是基于Google 开源的bigtable的实现,面向列的非关系性数据库。在大数据分布式处理中,HBase是必不可少的数据存储“利器”。 Facebook 在 2010年11 月开始便一直选用 HBase来作为消息平台的存储层技术。 B站直通车【Hbase分布式存储系统视频教程 】 美团一面真实面试题 1、为什么选用Hbase,Hbase和MySQL的区别是什么? MySQL + HBase是我们日常应用中常用的两个数据库,分别解决应用的在线事务问题和大数据场景的海量存储问题。 从架构对比看差异 1)相比MySQL,HBase的架构特点: 完全分布式(数据分片、故障自恢复) 底层使用HDFS(存储计算分离)。 2)由架构看到的能力差异: MySQL:运维简单(组件少)、延时低(访问路径短) HBase:扩展性好、内置容错恢复与数据冗余 哪些场景的存储适合Hbase? 用户画像、实时推荐、实时风控、监控系统、社交Feed流、汽车轨迹、BI报表和搜索系统等等。 掌握更多面试精题 关注更多精彩 Hbase的特性 数据热点问题 1、出现数据热点问题原因 出现数据热点问题的原因有: HBase中的数据是按照字典顺序排序的,当大量连续的Rowkey集中写在个别的region,各个region之间数据分布不均衡; 创建表时没有提前预分区。创建的表默认只有一个region大数据存储系统,大量的数据写入当前region; 创建表已经以前预分区,但是设计的Rowkey没有规律可循,设计的Rowkey应该由regionNo + messageId组成。 2、如何解决热点问题 解决数据热点问题目前有两种方案:Hash和Partition。 1)hash方案 hash就是rowkey前面由一串随机字符串组成,随机字符串生成方式可以由SHA或者MD5方式生成,只要region所管理的start-end keys范围比较随机,那么就可以解决数据热点问题。 2)partition方案 partition顾名思义就是分区式,这种分区有点类似于MapReduce中的Partitioner,将区域用长整数作为分区号,每个region管理着相应的区域数据,在rowkey生成时,将ID取模后,然后拼上ID整体作为rowkey,这个比较简单,必须要取样,splitkeys也非常简单,直接是分区号即可。 数据读取 客户端一次从服务器拉取的数量 通过配置一次拉去的较大的数据量可以减少客户端获取数据的时间,但是它会占用客户端内存。有三个地方可进行配置: 在 HBase 的 conf 配置文件中进行配置 hbase.client.scanner.caching; 通过调用HTable.setScannerCaching(intscannerCaching) 进行配置; 通过调用Scan.setCaching(intcaching) 进行配置。三者的优先级越来越高。 掌握全面的知识体系和丰富的项目经验 还需系统性的学习 线上学习通道已开启 (编辑:52站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |