什么是Hbase批量删除的最快和最有效的方法

时间:2016-03-16 05:03:20

标签: hadoop hbase

批量删除hbase记录的最快,最有效的方法是什么? Hbase客户端API还是MapReduce作业?

3 个答案:

答案 0 :(得分:1)

除非您知道要删除的单元格的行键,否则HBase Client API不允许进行批量删除。

可以利用BulkDeleteEndpoint根据扫描仪的结果进行批量删除。

答案 1 :(得分:1)

对于大型连续数据集,最快速,最有效的方法是删除整个区域,删除其HDFS目录并从META表中删除它们。这实际上几乎没有IO,所以它几乎是免费的。 但请注意,目前尚未通过高级API直接提供,因此您必须对其进行脚本/编码才能完成。

以下是HBase邮件列表中有关如何使用shell执行此操作的示例。

  
      
  1. 从shell中关闭该区域(使用shell了解其工作原理   帮助 - 不要取消分配)
  2.   
  3. 然后只需在区域中删除HDFS中的区域内容即可   关闭(HDFS中的区域目录名称与区域编码名称相同,   区域名称的最后一部分 - 检查refguide)。
  4.   
  5. 在HDFS中删除后,调用assign region。
  6.   

来源http://search-hadoop.com/m/YGbbl9ZaSQ2HLT&subj=Re+Delete+a+region+from+hbase

答案 2 :(得分:0)

HBase Client API更快,因为您在使用MapReduce时直接在数据库上执行操作,这意味着任务将在作业上运行,并且根据我的经验需要时间。 超过该值,HBase将允许您在Map系列中运行MapReduce无法执行的特定操作。