锁屏面试题百日百刷,每个工作日保持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cn。已收录了每日更新的面试题的所有内容,还蕴含特色的解锁屏幕温习面试题、每日编程题目邮件推送等性能。让你在面试中后人一步!接下来的是今日的面试题:

1.HBase的导入导出形式?**

1)导入:bin/hbase org.apache.hadoop.hbase.mapreduce.Driver import 表名 门路

门路:起源

本地门路 file:///path

HDFS hdfs://cluster1/path

2)导出:bin/hbase org.apache.hadoop.hbase.mapreduce.Driver export 表名 门路

门路:目的地

本地门路 file:///path

HDFS hdfs://cluster1/path

2.Region如何预建分区?**

预分区的目标次要是在创立表的时候指定分区数,提前规划表有多个分区,以及每个分区的区间范畴,这样在存储的时候rowkey依照分区的区间存储,能够防止region热点问题。

通常有两种计划:

计划1:shell 办法

create 'tb_splits', {NAME => 'cf',VERSIONS=> 3},{SPLITS => ['10','20','30']}

计划2: JAVA程序控制

· 取样,先随机生成肯定数量的rowkey,将取样数据按升序排序放到一个汇合里;

· 依据预分区的region个数,对整个汇合均匀宰割,即是相干的splitKeys;

· HBaseAdmin.createTable(HTableDescriptor tableDescriptor,byte[][]splitkeys)能够指定预分区的splitKey,即是指定region间的rowkey临界值。

3.HRegionServer宕机如何解决?**

1)ZooKeeper会监控HRegionServer的高低线状况,当ZK发现某个HRegionServer宕机之后会告诉HMaster

进行生效备援;

2)该HRegionServer会进行对外提供服务,就是它所负责的region临时进行对外提供服务;

3)HMaster会将该HRegionServer所负责的region转移到其余HRegionServer上,并且会对HRegionServer上存在memstore中还未长久化到磁盘中的数据进行复原;

4) 这个复原的工作是由WAL重播来实现,这个过程如下:

· wal实际上就是一个文件,存在/hbase/WAL/对应RegionServer门路下。

· 宕机产生时,读取该RegionServer所对应的门路下的wal文件,而后依据不同的region切分成不同的临时文件recover.edits。

· 当region被调配到新的RegionServer中,RegionServer读取region时会进行是否存在recover.edits,如果有则进行复原。

4.HBase读写流程?**

读:

① HRegionServer保留着meta表以及表数据,要拜访表数据,首先Client先去拜访zookeeper,从zookeeper外面获取meta表所在的地位信息,即找到这个meta表在哪个HRegionServer上保留着。

② 接着Client通过方才获取到的HRegionServer的IP来拜访Meta表所在的HRegionServer,从而读取到Meta,进而获取到Meta表中寄存的元数据。

③ Client通过元数据中存储的信息,拜访对应的HRegionServer,而后扫描所在HRegionServer的Memstore和Storefile来查问数据。

④ 最初HRegionServer把查问到的数据响应给Client。

写:

① Client先拜访zookeeper,找到Meta表,并获取Meta表元数据。

② 确定以后将要写入的数据所对应的HRegion和HRegionServer服务器。

③ Client向该HRegionServer服务器发动写入数据申请,而后HRegionServer收到申请并响应。

④ Client先把数据写入到HLog,以避免数据失落。

⑤ 而后将数据写入到Memstore。

⑥ 如果HLog和Memstore均写入胜利,则这条数据写入胜利

⑦ 如果Memstore达到阈值,会把Memstore中的数据flush到Storefile中。

⑧ 当Storefile越来越多,会触发Compact合并操作,把过多的Storefile合并成一个大的Storefile。

⑨ 当Storefile越来越大,Region也会越来越大,达到阈值后,会触发Split操作,将Region一分为二。