14.9. Kerberos

GeoMesa包括对使用Kerberos进行身份验证的HBase集群的初始支持。目前支持键表。

Kerberos功能应通过将以下属性附加到 hbase-site.xml

  • hbase.geomesa.keytab

  • hbase.geomesa.principal

备注

所有应用程序都需要访问 hbase-site.xmlcore-site.xml 以获得正确的配置。

14.9.1. 长期持有的连接

有时,Kerberos身份验证可能不同步,这可能会导致HBase连接停止工作。由于HBase连接被缓存,这可以防止创建新的数据存储实例。为防止出现这种情况,可以通过设置数据存储参数来禁用HBase连接缓存 hbase.connections.reusefalse

14.9.2. 开发和测试

GeoMesa Kerberos支持是针对Hortonworks Data Platform 2.6开发的,针对MIT KDC进行身份验证。到目前为止,它已经在单个节点上使用Hortonworks Data Platform 2.6的有限开发环境中进行了测试。

备注

要在Kerberos环境中使用GeoMesa,请将以下属性添加到 hbase-site.xml

<property>
     <name>hbase.geomesa.principal</name>
     <value>hbaseGeomesa/_HOST@machineName</value>
</property>

<property>
     <name>hbase.geomesa.keytab</name>
     <value>/etc/security/keytabs/hbase.geomesa.keytab</value>
</property>

14.9.3. 管理类路径上的Hadoop和HBase配置

为了设置GeoMesa命令行工具,请创建Hadoop配置文件的符号链接以 $GEOMESA_HOME/conf/ 。以下是帮助完成此操作的示例命令::

$ for i in $(ls /usr/hdp/current/hadoop-client/conf); do ln -s /usr/hdp/current/hadoop-client/conf/$i $GEOMESA_HOME/conf/; done
$ ln -s  /usr/hdp/current/hbase-client/conf/hbase-site.xml $GEOMESA_HOME/conf/

您可以通过获取一个小的样例文件来验证GeoMesa HBase命令行工具是否正常工作。

对于Geoserver,需要将上述配置文件复制或符号链接到 geoserver/WEB-INF/classes/

14.9.4. 在HDP上启用Kerberos

要在HDP群集上启用Kerberos,您可以执行以下任一操作:

  • 全部手动完成(不推荐)

  • 使用https://docs.hortonworks.com/HDPDocuments/Ambari-2.2.0.0/bk_Ambari_Security_Guide/content/ch_configuring_amb_hdp_for_kerberos.html中概述的安巴里语

  • 或者部署支持Kerberos的Ambari BluePrint https://cwiki.apache.org/confluence/display/AMBARI/Blueprints,如

{
  [
    {
      "kerberos-env": {
        "properties_attributes" : { },
        "properties" : {
          "realm" : "myOrg.com",
          "kdc_type" : "mit-kdc",
          "kdc_hosts" : "kdc.company.com",
          "admin_server_host" : "kdx.company.com"
        }
      }
    },
    {
      "krb5-conf": {
        "properties_attributes" : { },
        "properties" : {
          "domains" : "",
          "manage_krb5_conf" : "false"
        }
      }
    },
  ],
  "host_groups" : [
    {
      "name" : "host_group_1",
      "configurations" : [ ],
      "default_password": "hadoop",
      "components" : [
        { "name" : "INFRA_SOLR"             , "provision_action" : "INSTALL_AND_START" },
        ......
        { "name" : "ZOOKEEPER_CLIENT"       , "provision_action" : "INSTALL_AND_START" }
      ],
      "cardinality" : "1"
    }
  ],
  "Blueprints" : {
    "blueprint_name" : "hdp-2.6-sandbox",
    "stack_name" : "HDP",
    "stack_version" : "2.6",
    "security" : {
      "type" : "KERBEROS"
    }
  }
}