分享

spark多任务执行的问题

Fortitude 发表于 2015-12-15 14:23:28 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 19453
standalone模式,通过spark-submit先后提交了两个任务,发现第一个任务可以正常执行,第二个任务会一直等第一个任务结束后才会执行。网上查询了相关资料,我设置了System.setProperty("spark.scheduler.mode", "FAIR");任务也添加了--total-executor-cores参数保证核心数不被全部使用,但还是不行。我跑了两个spark streaming的任务,正常是不会停止的,那么第一个之后的任务就全部杯具了,请大拿们指教。

已有(5)人评论

跳转到指定楼层
cranberries8 发表于 2015-12-15 14:57:06
查看步骤:
1.确定你的中共可用的内存和 core数。
2.配置你的worker 的 内存和core数
3.查看运行第一个job是耗费的work数

如果你的内存数比较小你可以在conf 下 修改 slaves的 配置
      SPARK_WORKER_CORES=2 SPARK_WORKER_MEMORY=4g
把这两个改小点
回复

使用道具 举报

Fortitude 发表于 2015-12-15 15:41:34
按照楼上大侠的步骤检查了下,内存和core数都足够,可还是出问题,貌似问题是出在其他方面,因为我做了一些修改好了。我先描述下我的两个application,都是spark streaming任务,一个是监听hadfs1机器上的socket消息做wordcount处理后print出来,一个是监听hdfs1机器上的socket消息做wordcount写入hdfs。在做了配置修改以及设置内存和核心数后仍然是只有先启动的那个任务可以正常运行,于是我尝试把其中一个的监听地址改为hdfs2的socket,竟然两个都跑成功了。不知哪位大侠能解释下。
回复

使用道具 举报

cranberries8 发表于 2015-12-15 17:00:22
Fortitude 发表于 2015-12-15 15:41
按照楼上大侠的步骤检查了下,内存和core数都足够,可还是出问题,貌似问题是出在其他方面,因为我做了一些 ...

你的监听是什么意思? 你两个spark 的进程都作为client 端去访问这个socket?,那是不是你的socket服务是单线程的哦?
回复

使用道具 举报

Fortitude 发表于 2015-12-16 09:14:17
cranberries8 发表于 2015-12-15 17:00
你的监听是什么意思? 你两个spark 的进程都作为client 端去访问这个socket?,那是不是你的socket服务是 ...

其实就是netcat的nc -lk命令,运行了两个spark streaming程序,都从这个地址接收数据
回复

使用道具 举报

Pengjx2015 发表于 2015-12-16 09:15:17
哈哈哈哈哈
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条