Spark踩过的坑—-Spark on YARN

Spark 天涯孤鸟 10844℃ 0评论

测试环境:

  • CDH-5.7.1-1
  • CentOS6.5
  • Spark1.6
  • Kafka_2.10-0.9.0.1

最近在做Spark on Yarn 遇到了诸多问题,下面就遇到的问题及解决方法做一个记录:

一、没有认证

解决方法:

二、–executor-cores 设置不够

解决方法:
在spark-submit 的时候,将–executor-cores设置大一点,也不宜过大。

三、client模式报如下错误:资源不足

解决方法:用以下命令查看有哪些应用正占用资源,把他kill掉

四、cluster模式报如下错误,同样也解决了,奇葩吧

五、权限不够:提示没权限执行这个文件/home/hadoop/5loong/application.properties

解决方法:

六、报/home/hadoop/5loong/application.properties文件或目录不存在

解决方法:
由于这里的/home/hadoop/5loong/application.properties是作为外部参数传入,所以在
hadoop yarn 集群每个节点都要有这个文件,否则会报 文件或目录不存在,将/home/hadoop/5loong/application.properties拷贝到各个节点就可以,重启不再报这个错。

七、共享变量问题:由于properties是作为一个全局的变量在spark中使用,初始化的时候,加载到内存,这种情况在单机环境是不会有问题的,因为内存是共享的,但是在yarn多节点环境下,就会有问题,nodemanager节点获取到的是null,所以导致一直连接kafka失败。Missing required configuration “bootstrap.servers” which has no default value.

解决方法:
将properties改为Broadcast变量,记住,不能是static类型,否则会报java.lang.NullPointerException,然后在启动spark的时候,通过以下代码,将变量广播到各个node节点:

然后再业务处理的时候,通过propertiesBroadcast.value() 来获取值。
参考链接:http://blog.csdn.net/wangjian1204/article/details/52664250

未完,后续继续更新。

转载请注明:猫头鹰工作室 » Spark踩过的坑—-Spark on YARN

喜欢 (2)or分享 (0)
Avatar
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. Avatar
    你好,请问ctrl+c结束spark streaming时,报错Exception in thread "streaming-job-executor-0" java.lang.Error: java.lang.InterruptedException是什么原因呢?
    youngmilk2018-04-16 18:16 Reply