参考:
https://developer.aliyun.com/article/573857
环境:hbase3.1.0+cdh6.3.0,数据5g文本
1.场景:像hbase中写入数据报错
se.RegionTooBusyException: Over memstore limit=1.0G, regionName=36bec2784926eec62efbad8ee750825a, server=hyt-bigdata03
2.问题:
写入小文件不会报错,大文件就报错了
代码:(如果是\t,删掉-Dimporttsv.separator=",")默认导入即可了
在hbase中建表:
1.hbase(main):021:0> create 'bmk_hbase_table3','cf1'
2.执行
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,cf1:field_2,cf1:field_3,cf1:field_4,cf1:field_5,cf1:field_6,cf1:ield_7,cf1:field_8,cf1:field_9,cf1:field_10,cf1:field_11,cf1:field_12,cf1:field_13,cf1:field_14,cf1:field_15,cf1:field_16,cf1:field_17,cf1:field_18,cf1:field_19,cf1:field_20,cf1:field_21,cf1:field_22,cf1:field_23,cf1:field_24,cf1:field_25,cf1:field_26,cf1:field_27,cf1:field_28,cf1:field_29,cf1:field_30,cf1:field_31,cf1:field_32,cf1:field_33,cf1:field_34,cf1:field_35,cf1:field_36 bmk_hbase_table3
/user/hdfs/yanke_data/data_/data5.txt
3.解决方法:
调整:
hbase.hregion.preclose.flush.size=3G
修改第一个就已经成功了
默认是2,改为4
成功状态:
bad lines=0表示写入成功