codecamp

HBase安全批量加载

HBase安全批量加载

由于客户端必须将从MapReduce作业生成的文件的所有权转移给HBase,所以在安全模式下的批量加载比正常设置涉及更多。安全批量加载由名为SecureBulkLoadEndpoint的协处理器实现,该协处理器使用由配置属性hbase.bulkload.staging.dir配置的暂存目录,该目录默认为/tmp/hbase-staging/。

安全批量加载算法

  • 只有一次,创建一个临时目录,这个目录是全局通用的,并由运行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创建一个全局可读/可写(-rwxrwxrwx, 777)的秘密的临时目录。例如,/tmp/hbase-staging/averylongandrandomdirectoryname。该目录的名称和位置不会公开给用户。HBase管理这个目录的创建和删除。
  • 用户使数据具有全局可读性和可写性,将其移入随机的临时目录,然后调用该SecureBulkLoadClient#bulkLoadHFiles方法。

安全的优势在于秘密目录的长度和随机性。

要启用安全批量加载,请将以下属性添加到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>
HBase使用标签读取单元格
安全启用HBase
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

HBase快速入门

HBase批量加载

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }