锁屏面试题百日百刷,每个工作日保持更新面试题。锁屏面试题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一分为二。