2016-08-29 11 views
2

私はHive 1.1.0のみをサポートするCloudera Manager CDH 5.7.1を使用しています。 NiFi 1.0.0-BETAはHive 1.2.1を使用しています。 、つまり、のバージョンが不一致で、Hiveクライアントとサーバーの間にが存在することを意味します。Hive 1.1(CDH 5.7.1)を持つApache NiFiハイブプロセッサ

この問題を解決するための任意の提案はありますか?

デフォルトの1.2.1ではなくhive-jdbcの依存関係のバージョン1.1.0でNiFiを構築することを考えましたが、より良い解決策があることを願っています。

答えて

3

NiFiはApacheプロジェクトであるため、Apache JAR(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 

ハイブプロセッサはのHadoop NiFi HadoopのライブラリNARが提供するライブラリ、およびHadoopのような他のNARを(使用/ HDFSプロセッサ)は、この同じライブラリNARを使用するので、最良の方法は全体を構築することです。それ以外の場合は、Hadoop/Hive/HBase関連のNARだけを置き換えて、動作するかどうか確認することができます。

+0

ありがとうございました。私はそれを構築しようとしたときにエラーが発生しました。 'コンパイル失敗:エラー:パッケージorg.apache.hadoop.hive.ql.io.filtersが存在しません。 'おそらく古いバージョン。何か案は? – Dennis

+0

パッケージが存在しない場合は、パッケージを削除して、不足しているパッケージを使用する機能の本体を空にする(NO BODY)ようにすることができます。私はこれを行い、プロトコルのバージョンのミスマッチはまだコンパイルします。 – ozw1z5rd

2

NiFiはHiveの新しいバージョンを期待しているため、サポートされていない新しい機能(HiveStreamingやORCサポートなど)を削除し、古いバージョンのThriftをサポートし、Cloudera固有のライブラリを構築する必要があります。

私はあなたが以下のように構築することができPutHiveQLとSelectHiveQLプロセッサが仕事を得るために必要な変更、と現在のNiFi-1.1.xのリリースのブランチ作成しました:私は投稿している

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

関連する問題