APACHE DRILL:ISSUE连接到启用了kerbros的配置单元

时间:2017-04-07 07:28:49

标签: hive hadoop2 apache-drill

我有一个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

提供任何帮助以解决此问题。

1 个答案:

答案 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"
  }
}