页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

nimbus.autocredential.plugins.classes : ["org.apache.storm.hbase.security.AutoHBase"]
nimbus.credential.renewers.classes : ["org.apache.storm.hbase.security.AutoHBase"]
hbase.keytab.file: "/path/to/keytab/on/nimbus"(这是 HBase 超级用户的密钥表,超级用户具有最高权限可以管理其它用户)
hbase.kerberos.principal: "superuser@EXAMPLE.com"
nimbus.credential.renewers.freq.secs : 518400(6天,HBase 授权 tokens  默认7天失效,并且不能够被更新。如果你在 hbase-site.xml 里对 hbase.auth.token.max.lifetime 有自定义的设置,你应该确保这个值至少比那个少一个小时。)你的 有自定义的设置,你应该确保这个值至少比那个少一个小时。)

你的 Topology 配置应该有 topology.auto-credentials :["org.apache.storm.hbase.security.AutoHBase"]。

如果 nimbus 没有上面的配置,你需要添加它,并重启。确保 HBase 的配置文件(core-site.xml,hdfs-site.xml and hbase-site.xml)、storm-hbase jar 和所有的依赖都在 nimbus 的 classpath 中。nimbus 将用配置文件中指定的 keytab 和 principal 与 HBase 进行验证。从此,每次提交 Topology,nimbus 将模拟 Topology 提交的用户,并且代表 Topology 提交的用户去获取 tokens 。提交的用户去获取 tokens 。如果 Topology 中的 topology.auto-credentials 在开始时被设置为 AutoHBase ,nimbus 将发送授权 tokens 给所有的 worker,HBase bolt/state 将用这些 tokens 进行认证。

要使 nimbus 能代表 Topology 提交用户,你必须保证 storm.kerberos.principal 指定的用户有权代表其他用户去获取 tokens。为了做到这一点,你需要按照这个链接配置

...