使用hive 1.1(cdh 5.7.1)的apache nifi hive处理器

xpszyzbs  于 2021-06-28  发布在  Hive
关注(0)|答案(2)|浏览(552)

我使用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 ,但我希望有更好的解决办法。

u1ehiz5o

u1ehiz5o1#

因为nifi需要更新版本的hive,所以有必要删除不受支持的更新功能(例如hivestreaming和orc支持),支持旧版本的thrift,并根据cloudera特定的库进行构建。
我已经创建了当前nifi-1.1.x版本的一个分支,并进行了必要的更改,以使puthiveql和selecthiveql处理器正常工作,您可以如下所示构建:

git clone https://github.com/Chaffelson/nifi.git
git checkout nifi-1.1.x-cdhHiveBundle
mvn -T C2.0 clean install -Pcloudera -Dhive.version=1.1.0-cdh5.10.0 -Dhive.hadoop.version=2.6.0-cdh5.10.0 -Dhadoop.version=2.6.0-cdh5.10.0 -DskipTests

我在hortonworks社区论坛上发布了更完整的报道:https://community.hortonworks.com/articles/93771/connecting-nifi-to-cdh-hive.html

35g0bw71

35g0bw712#

因为nifi是一个apache项目,所以它使用apachejar(比如hive和hadoop)构建。但是,您可以使用特定于供应商的概要文件和构建属性为特定的hadoop发行版构建nifi。
例如,您可以尝试以下方法为cdh 5.7.1构建nifi发行版:

mvn clean install -DskipTests -Pcloudera -Dhadoop.version=2.6.0-cdh5.7.1 -Dhive.version=1.1.0-cdh5.7.1 -Dhbase.version=1.2.0-cdh5.7.1

hive处理器使用nifi hadoop库nar提供的hadoop库,而其他nar(比如hadoop/hdfs处理器)使用相同的库nar,因此最好的方法是构建整个过程。否则,您可以尝试只替换与hadoop/hive/hbase相关的nar,看看是否有效。

相关问题