14.9. Kerberos¶
GeoMesa包括对使用Kerberos进行身份验证的HBase集群的初始支持。目前支持键表。
Kerberos功能应通过将以下属性附加到 hbase-site.xml
:
hbase.geomesa.keytab
hbase.geomesa.principal
备注
所有应用程序都需要访问 hbase-site.xml
和 core-site.xml
以获得正确的配置。
14.9.1. 长期持有的连接¶
有时,Kerberos身份验证可能不同步,这可能会导致HBase连接停止工作。由于HBase连接被缓存,这可以防止创建新的数据存储实例。为防止出现这种情况,可以通过设置数据存储参数来禁用HBase连接缓存 hbase.connections.reuse
至 false
。
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"
}
}
}