Kerberized服务器上Kafka流上Hive外部表中所需的TBLPROPERTIES是什么



我正试图在hive kerberized环境中的kafka流上创建一个外部表。我在尝试运行一个简单的SELECT*FROM[EXTERNAL KAFKA STREAM TABLE]时遇到了几个问题。CREATE TABLE查询中的tblproperty中需要哪些必填字段?

这是我的:

  1. kafka.bootstrap.servers
  2. 卡夫卡主题
  3. kafka.consumer.sasl.kerberos.service.name
  4. kafka.consumer.sas.mmechanism
  5. kafka.consumer.sasl.mechanism.inter.broker.协议
  6. kafka.consumer.sasl_sl.gssapi.sasl.jaas.config
  7. kafka.consumer.security.protocol
  8. kafka.consumer.ssl.client.auth
  9. kafka.consumer.ssl.protocol
  10. kafka.consumer.ssl.truststore.location
  11. kafka.consumer.ssl.truststore.password

我不确定这些SSL或SASL属性是否被接受-您可以在这里看到定义的属性的来源-https://github.com/apache/hive/blob/master/kafka-handler/src/java/org/apache/hadoop/hive/kafka/KafkaTableProperties.java

Kafka Kerberos主体来自HiveConf,而不是表属性,这似乎是由于该提交,并且不能被覆盖-https://github.com/apache/hive/commit/dcaeeb4722553f3256c9d3f5282cc82cae7bc9b4#diff-f206f68e2d1b5d396fa7f12830d98cbfR279

  1. 此代码直到配置单元4.0.0才准备好-https://issues.apache.org/jira/browse/HIVE-20735

  2. 根据该代码,SASL_PLAINTEXT是唯一支持的security.protocol

  3. 如果$HADOOP_CONF_DIRcore-site.xml中将"hadoop.security.authentication"设置为"kerberos",则会加载该部分


不过,除了前几个之外,如果您的主题不使用JSON,并且"inter.broker.procol"无论如何都不是有效的使用者属性,则可以添加kafka.serde.class


我不确定如果Hive被Kerberize而Kafka不是会发生什么

最新更新