2016-04-24 6 views
0

CDH 5.7.0にspark 1.6.0とkafka 0.9.0があります。また、0.8.2.2の別のクラスタでkafkaブローカーからのメッセージを消費するSparkストリーミングジョブを実行する必要がありますバージョン。CDHでスパークを実行しているライブラリを無効にする方法

libraryDependencies += "org.apache.spark" %% "spark-streaming-kafka" % "1.2.0" 

をそのライブラリと私はバージョン0.8.2.xでブローカーに合ったクライアントを使用して次のようになります。私は追加しているbuild.sbtで

val stream = KafkaUtils.createStream(ssc, Utils.settings.zookeeperQuorum, Utils.settings.kafkaGroup, Utils.settings.topicMapWifi) 

:私のようなストリームを作成します。

/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/spark/bin:しかし、問題はそのスパークがでCDHのclaspathからトンのものをロードしています/ spark-class

これは、必要なものより新しいバージョンのkafkaクライアントを追加しています。コードから特定のライブラリをオーバーライドする方法はありますか?

答えて

0

あなたは(Clouderaの上の/ etc /火花/ confに)スパークconfigディレクトリの下に配置spark-env.shを編集して、スパークのインスタンスを指すように

export SPARK_HOME=/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/spark 

を変更することができます。 また、Sparkのバージョンを配備し、ClouderaのHadoop設定を使用することもできます(spark-env.shでHADOOP_CONF_DIRを/ etc/hadoop/confに設定します)。アプリケーションが--jarオプションを指定してカフカ0.8.2.2のjarファイルを配布し、spark.driver.userClassPathFirst=trueとspark.confでspark.executor.userClassPathFirst=trueを指定する構成

spark.eventLog.dir=hdfs:/user/spark/applicationHistory 
0

に設定されている場合この場合は、あなたがロードされている、アプリケーションの履歴を見ることができます子ファーストクラスローダーを使用してCDHクラスパスより前のjarファイルを作成します。

関連する問題