首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何覆盖CDH中运行spark的库

如何覆盖CDH中运行spark的库
EN

Stack Overflow用户
提问于 2016-04-24 20:58:35
回答 2查看 1.7K关注 0票数 0

我有CDH5.7.0和spark 1.6.0和kafka 0.9.0,我需要运行一个Spark流作业,它用0.8.2.2版本消耗来自另一个集群中的kafka broker的消息。我创建了一条溪流,如:

代码语言:javascript
复制
val stream = KafkaUtils.createStream(ssc, Utils.settings.zookeeperQuorum, Utils.settings.kafkaGroup, Utils.settings.topicMapWifi) 

在build.sbt中,我要添加:

代码语言:javascript
复制
libraryDependencies += "org.apache.spark" %% "spark-streaming-kafka" % "1.2.0"

对于这个库,我将使用一个适合于代理的客户机,其版本为0.8.2.x。但问题是,星火正在从CDH类路径中装载大量内容,如下所示:

/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/spark/bin/spark-class

正在添加一个新版本的卡夫卡客户端,而不是我需要的版本。有办法从代码中覆盖特定的库吗?

EN

回答 2

Stack Overflow用户

发布于 2016-04-25 07:23:02

您可以编辑位于Cloudera上的Spark目录(/etc/spark/conf )下的星火-env.sh并进行更改。

代码语言:javascript
复制
export SPARK_HOME=/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/spark

指向你的星火实例。或者,您也可以部署您的Spark版本,并使用Cloudera的Hadoop配置(将HADOOP_CONF_DIR设置在smack-env.sh中至/etc/hadoop/conf)。在这种情况下,如果在配置中设置了应用程序,则可以查看应用程序历史记录。

代码语言:javascript
复制
spark.eventLog.dir=hdfs:/user/spark/applicationHistory
票数 0
EN

Stack Overflow用户

发布于 2016-04-25 09:50:47

使用-jar选项分发您的kafka 0.8.2.2 jar,并在spark.driver.userClassPathFirst=truespark.executor.userClassPathFirst=true中指定spark.conf,这将在CDH类路径之前使用子类加载器加载jar。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36828820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档