手工进行Major Compaction

<property>
  <name>hbase.hregion.majorcompaction</name>
  <value>0</value>
</property>

将时间设置为0,禁用自动Major Compaction。

在HBase Shell中执行脚本:

major_compact ‘table_name’

这样就能手工执行一次Major Compaction。将所有的表名称写成一个文件,然后在shell脚本中遍历这个文件,执行HBase Shell命令,就可以定时自动执行了。

for table in $(cat $TABLES_FILE); do
  echo “major_compact ‘$table'” | $HBASE_HOME/bin/hbase shell
  sleep 10
done

写成shell,设置一下crontab,每天夜深人静的时候跑一下就可以了。

您可以选择一种方式赞助本站