2016-03-16 58 views

回答

0

HBase客戶端API速度更快,因爲您在使用MapReduce時直接在數據庫上執行操作,這意味着任務將在作業之上運行,根據我的經驗,這需要時間。 超過這個HBase將允許你在MapReduce不能做的Column家族中執行特定的操作。

1

HBase Client API不允許執行批量刪除操作,除非您知道要刪除的單元格的行鍵。

可以利用BulkDeleteEndpoint根據掃描器的結果進行批量刪除。

+0

你可以指導我去一個教程或網站,這將有助於我瞭解「BulkDeleteEndpoint」..因爲我真的是新來的hadoop和hbase ..感謝 –

+0

您可以檢查[HBase文檔](https: //hbase.apache.org/devapidocs/org/apache/hadoop/hbase/coprocessor/example/BulkDeleteEndpoint.html) – herberts

1

對於大型連續數據集,最快和最有效的方法是通過刪除HDFS目錄並從META表中刪除它們來刪除整個區域。這幾乎沒有IO,所以它可以說是幾乎免費的。 但是,請注意,這還不能直接通過高級API獲得,因此您必須腳本/編碼才能完成。

以下是HBase郵件列表中關於如何使用shell執行操作的示例。

  1. 從外殼關閉區域(上如何工作使用shell 幫助閱讀起來 - 不做取消分配)
  2. 然後,只需刪除該區域的內容,HDFS一旦該地區是 已關閉(HDFS中的區域目錄名稱與區域編碼名稱相同, 區域名稱的最後一部分 - check refguide)。
  3. 在HDFS中刪除後,調用分配區域。

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

+0

謝謝..我會盡力做到這一點。 –

相關問題