分享

spark的SPARK_CLASSPATH问题

chyeers 发表于 2015-9-14 21:31:08 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 76045
本帖最后由 chyeers 于 2015-9-14 21:38 编辑

在spark-submit提交job的时候,会有一些依赖包,通过 SPARK_CLASSPATH配置指明依赖包位置可以方便很多,但是在 standalone cluster提交过程中报错
[mw_shl_code=shell,true]org.apache.spark.SparkException: Found both spark.driver.extraClassPath and SPARK_CLASSPATH. Use only the former.[/mw_shl_code]
但是提交命令中没有指定spark.driver.extraClassPath,spark-env.sh,spark-defaults.conf也没有指定spark.driver.extraClassPath[mw_shl_code=shell,true]spark-submit --master spark://hdpb-005:6066 \
             --class FromKafkaToPhoenix \
             --deploy-mode cluster \
             --supervise \
             --executor-memory 4G \
             --total-executor-cores 16 \
             hdfs://h005:9000/spark/lib/test.jar 192.168.10.1:9092 testkafka[/mw_shl_code]

已有(6)人评论

跳转到指定楼层
jixianqiuxue 发表于 2015-9-14 23:25:53
是不是重了,两个地方都有
回复

使用道具 举报

chyeers 发表于 2015-9-15 09:15:44
jixianqiuxue 发表于 2015-9-14 23:25
是不是重了,两个地方都有

关键是没有重啊,而且怪异的是,有的时候是运行成功的,不报错。但大部分是运行不成功报这个错误。
回复

使用道具 举报

Alkaloid0515 发表于 2015-9-15 10:38:59
chyeers 发表于 2015-9-15 09:15
关键是没有重啊,而且怪异的是,有的时候是运行成功的,不报错。但大部分是运行不成功报这个错误。

看看配置文件,还有Linux环境变量。肯定有重的,只不过可能没有找到对应位置
先把 SPARK_CLASSPATH注释掉,在运行。


回复

使用道具 举报

chyeers 发表于 2015-9-15 11:50:50
Alkaloid0515 发表于 2015-9-15 10:38
看看配置文件,还有Linux环境变量。肯定有重的,只不过可能没有找到对应位置
先把 SPARK_CLASSPATH注释 ...

问题排查出来了,我是做的一个 spark streaming 程序,启动后设置了checkpoint,刚开始 checkpoint dir 没有生成的时候执行程序没有问题,然后在执行的过程中spark会将SPARK_CLASSPATH中的jar包路径分别传递给 spark.driver.extraClassPath 和spark.executor.extraClassPath ,并且将环境变量保存在 checkpoint dir 中,所以当你停掉 该程序,第二次启动程序的时候,spark streaming 会从 checkpoint dir 中获取环境路径spark.driver.extraClassPath和spark.executor.extraClassPath,然后与 SPARK_CLASSPATH 冲突,然后报错。这种处理机制很麻烦,使得 程序必须一直运行,不能停止,停止后重启就必须删除 checkpoint ,但是checkpoint中有恢复机制,删了我怎么恢复原先执行状态 ?这是个BUG!
回复

使用道具 举报

pt1688 发表于 2015-9-16 11:44:50
本帖最后由 pt1688 于 2015-9-16 13:53 编辑
chyeers 发表于 2015-9-15 11:50
问题排查出来了,我是做的一个 spark streaming 程序,启动后设置了checkpoint,刚开始 checkpoint dir 没 ...

解决方法:
1 在spark-env.sh中注释spark_classpath, spark streaming 使用checkpoint没有问题,但是同集群下spark 程序不能正常运行
2 不使用checkpoint恢复StreamingContext,参见 官方手册中必须使用checkpoint的俩条原则。
回复

使用道具 举报

chyeers 发表于 2015-9-19 10:14:48
pt1688 发表于 2015-9-16 11:44
解决方法:
1 在spark-env.sh中注释spark_classpath, spark streaming 使用checkpoint没有问题,但是同 ...

"spark streaming 使用checkpoint没有问题,但是同集群下spark 程序不能正常运行" why?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条