0

我正在使用启用了 kerberos 安全性的 Cloudera Hadoop 集群。但是在属性文件中,我没有提到hbase.encryption。所以我需要在hbase-site.xml 中将属性hbase.rpc.protection的值更改为 none 。我试图将此属性值设置为 none,但它失败了,因为在 Cloudera 中它只显示身份验证、隐私和完整性选项。那么有人对此有解决方案吗?提前致谢。

4

1 回答 1

0

对于 hbase.rpc.protection ,您只能选择authenticationintegrity或。privacy当它设置为 none 时,它​​默认为authentication. 这可以在 hbase-client/src/main/java/org/apache/hadoop/hbase/security/SaslUtil.java 中看到:

  /**
   * @param rpcProtection Value of 'hbase.rpc.protection' configuration.
   * @return Map with values for SASL properties.
   */
  static Map<String, String> initSaslProperties(String rpcProtection) {
    String saslQop;
    if (rpcProtection.isEmpty()) {
      saslQop = QualityOfProtection.AUTHENTICATION.getSaslQop();
    } else {
      String[] qops = rpcProtection.split(",");
....

使用 Cloudera Manager 配置加密的 HBase 数据传输说明如下:

搜索 HBase Transport Security 属性并选择以下选项之一:

  • 身份验证:启用使用 Kerberos 的简单身份验证。
  • 完整性:检查接收到的数据的完整性,以确保它在传输过程中没有损坏。选择完整性还可以启用身份验证。

  • 隐私:通过使用 TLS/SSL 加密对传输中的数据进行加密来确保隐私。选择隐私还可以启用身份验证和完整性。将此属性设置为隐私以启用安全的 RPC 传输。

因此,通过选择authentication或者integrity您不加密 RPC 流量。

于 2017-08-01T22:08:17.923 回答