我有一个kerbroized的集群,我已经在另一台服务器上安装了钻,我正在尝试使用作为kerbrorized集群一部分的hive。
作为hive的一部分,我已将下面的配置放在我的drill-override.conf
上 drill.exec: {
security: {
# user.auth.enabled:true,
auth.mechanisms:["KERBEROS"],
auth.principal:"xxxx/xxxxxxxx",
auth.keytab:"/xxx/xxxx/drill.keytab"
drill.exec.http.ssl_enabled="true"
}
}
drill.exec:
{
cluster-id: "drillbits1",
zk.connect: "localhost:2181"
}
当我从钻头ui访问配置单元时,得到以下错误:
2017-04-07 12:32:48,322 [2718c667-5587-b307-58f7-b673e29b7dbf:frag:0:0] WARN o.a.d.e.s.h.schema.HiveSchemaFactory - Failure while getti
ng Hive database list.
org.apache.thrift.TException: java.util.concurrent.ExecutionException: MetaException(message:Got exception: org.apache.thrift.transport.
TTransportException null)
我尝试使用钻取版本:1.5.0,1.10.0
提供任何帮助以解决此问题。
答案 0 :(得分:1)
您在drill-override.conf中提到的配置是使用kerberos进行DrillClient到Drillbit连接。
对于Hive,我认为我们之前没有尝试过,但根据一些研究,我认为您可以尝试在Drill Hive Storage Plugin中添加以下内容。还要确保使用 kinit 命令在Drillbit节点上为您用于运行Drillbit的进程用户生成了kerberos票证。如果它有帮助,请尝试让我们。
{
"type": "hive",
"enabled": true,
"configProps": {
"hive.metastore.uris": "thrift://<metastore_ip:port>",
"hive.metastore.sasl.enabled": "true",
"hive.metastore.kerberos.principal": "<metastore_kerberos_principal"
}
}