我正试图在hive kerberized环境中的kafka流上创建一个外部表。我在尝试运行一个简单的SELECT*FROM[EXTERNAL KAFKA STREAM TABLE]时遇到了几个问题。CREATE TABLE查询中的tblproperty中需要哪些必填字段?
这是我的:
- kafka.bootstrap.servers
- 卡夫卡主题
- kafka.consumer.sasl.kerberos.service.name
- kafka.consumer.sas.mmechanism
- kafka.consumer.sasl.mechanism.inter.broker.协议
- kafka.consumer.sasl_sl.gssapi.sasl.jaas.config
- kafka.consumer.security.protocol
- kafka.consumer.ssl.client.auth
- kafka.consumer.ssl.protocol
- kafka.consumer.ssl.truststore.location
- 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
-
此代码直到配置单元4.0.0才准备好-https://issues.apache.org/jira/browse/HIVE-20735
-
根据该代码,
SASL_PLAINTEXT
是唯一支持的security.protocol
-
如果
$HADOOP_CONF_DIR
的core-site.xml
中将"hadoop.security.authentication"设置为"kerberos",则会加载该部分
不过,除了前几个之外,如果您的主题不使用JSON,并且"inter.broker.procol"无论如何都不是有效的使用者属性,则可以添加kafka.serde.class
。
我不确定如果Hive被Kerberize而Kafka不是会发生什么