HBase安全批量加載

2018-05-04 14:05 更新

HBase安全批量加載

由于客戶端必須將從MapReduce作業(yè)生成的文件的所有權轉移給HBase,所以在安全模式下的批量加載比正常設置涉及更多。安全批量加載由名為SecureBulkLoadEndpoint的協處理器實現,該協處理器使用由配置屬性hbase.bulkload.staging.dir配置的暫存目錄,該目錄默認為/tmp/hbase-staging/。

安全批量加載算法

  • 只有一次,創(chuàng)建一個臨時目錄,這個目錄是全局通用的,并由運行HBase的用戶擁有(模式711或rwx—?x—?x)。此目錄的列表將類似于以下內容:
    $ ls -ld /tmp/hbase-staging
    drwx--x--x  2 hbase  hbase  68  3 Sep 14:54 /tmp/hbase-staging
  • 用戶將數據寫入該用戶擁有的安全輸出目錄。例如,/user/foo/data。
  • 在內部,HBase創(chuàng)建一個全局可讀/可寫(-rwxrwxrwx, 777)的秘密的臨時目錄。例如,/tmp/hbase-staging/averylongandrandomdirectoryname。該目錄的名稱和位置不會公開給用戶。HBase管理這個目錄的創(chuàng)建和刪除。
  • 用戶使數據具有全局可讀性和可寫性,將其移入隨機的臨時目錄,然后調用該SecureBulkLoadClient#bulkLoadHFiles方法。

安全的優(yōu)勢在于秘密目錄的長度和隨機性。

要啟用安全批量加載,請將以下屬性添加到hbase-site.xml。

<property>
  <name>hbase.security.authorization</name>
  <value>true</value>
</property>
<property>
  <name>hbase.bulkload.staging.dir</name>
  <value>/tmp/hbase-staging</value>
</property>
<property>
  <name>hbase.coprocessor.region.classes</name>
  <value>org.apache.hadoop.hbase.security.token.TokenProvider,
  org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
</property>
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號