大数据面试(hbase)

1.hbase为什么要预分区?

如果创建表的时候没有做预分区,默认一个表就是一个region,一个region分裂之后变成两个region,两个region还是在同一台机器上。

为了解决数据倾斜问题,在创建表指定hbase表多个region分区规则,让数据负载在多台服务器上面。实现数据负载均衡,提高读写效率。

2.hbase创建预分区的几种方式?

1)命令行手动指定预分区,rowkey的范围负载多台服务器。

2)命令行,使用16进制算法生成预分区,rowkey按照字典排序。

3)java API方式创建预分区。

3.hbase中数据查询方式?

1)get rowkey  直接根据rowkey获取某一条数据。

2)scan startRow stopRow  根据rowkey的范围扫描。

3)scan tableName  全表扫描。

4.hbase中rowkey的创建原则?

结合业务主要对rowkey均匀负载和长度限制。

1)rowkey不能太长。10-100字节。

2)rowkey均匀散列,在高位随机生成一些数字均匀落在不同region服务器中,实现负载均衡。

5.hbase中二级索引是什么?

将业务上经常需要查询的数据存储到es中,先查询es中数据,详情再去查询hbase数据,以空间换时间。

6.行式存储和列式存储的区别?

1)行式:mysql,oracle

                同一行数据放在同一个block块里面,数据写入快,适合查询全属性字段。

2)列式:hbase

                同一列数据放在同一个block块里面,每一列数据单独存放,适合查询某几列数据,大量降低系统IO。

7.nosql与关系型数据库的区别?

1)存储格式。nosql存储格式是key,value形式。

2)查询速度。nosql更快。

3)成本。hbase,mongodb开源。oracle收费。

4)查询方式。nosql不能使用复杂的join查询。

8.hbase如何优化?

1)JVM优化,设置多个线程进行垃圾回收。

2)延迟高的数据操作的等待时间,延长超时时间。

3)优化datanode允许最大文件打开数,hbase一般会同一时间操作大量文件。

 

posted @ 2020-04-26 18:51  所向披靡zz  阅读(198)  评论(0编辑  收藏  举报