我使用cloudera manager cdh5.7.1,它只支持hive1.1.0。nifi1.0.0-beta使用hive1.2.1。
当我尝试使用selecthiveql处理器时,出现以下错误: Required field 'client_protocol' is unset!
,这意味着配置单元客户端和服务器之间存在版本不匹配。
有什么解决这个问题的建议吗?
我想用它来建造nifi hive-jdbc
依赖关系版本 1.1.0
而不是默认值 1.2.1
,但我希望有更好的解决办法。
2条答案
按热度按时间u1ehiz5o1#
因为nifi需要更新版本的hive,所以有必要删除不受支持的更新功能(例如hivestreaming和orc支持),支持旧版本的thrift,并根据cloudera特定的库进行构建。
我已经创建了当前nifi-1.1.x版本的一个分支,并进行了必要的更改,以使puthiveql和selecthiveql处理器正常工作,您可以如下所示构建:
我在hortonworks社区论坛上发布了更完整的报道:https://community.hortonworks.com/articles/93771/connecting-nifi-to-cdh-hive.html
35g0bw712#
因为nifi是一个apache项目,所以它使用apachejar(比如hive和hadoop)构建。但是,您可以使用特定于供应商的概要文件和构建属性为特定的hadoop发行版构建nifi。
例如,您可以尝试以下方法为cdh 5.7.1构建nifi发行版:
hive处理器使用nifi hadoop库nar提供的hadoop库,而其他nar(比如hadoop/hdfs处理器)使用相同的库nar,因此最好的方法是构建整个过程。否则,您可以尝试只替换与hadoop/hive/hbase相关的nar,看看是否有效。