大数据开发-spark+java

1.使用spark-submit的方式提交java任务

例如spark-submit --class aa.bb  --master yarn --deploy-mode client --queue cc  XXX.jar 。

指定queue是在spark-submit里面指定,在java代码里面通过spark.conf().set("queue", "cc") 的方式指定没有用。

在 yarn client模式下,通过--name demotest的方式指定的appname不会生效,在java代码中指定的appname才会生效。

在yarn cluster模式下,通过--name demotest的方式指定的appname会生效

2.java代码创建SparkSession,

SparkSession spark = SparkSession.builder().appName("demo")
      .config("spark.sql.warehouse.dir", warehouseLocation).enableHiveSupport().getOrCreate();

3.性能分析,在使用spark-submit提交java任务的过程中,

spark-submit是一个性能损耗,例如你可以把原来提交2个spark-submit的任务,在代码中把2个任务融合成一个,使用1个spark-submit提交。

还有一个性能损耗是java代码中build sparksession的过程,你可以把多个任务改写成使用同一个sparksession,所有任务执行完毕后再stop。如果你在一个for循环里面build sparksession,性能损耗远远大于在for循环外build sparksession。大家在写代码的时候需要注意,如果你的spark 任务很多这个时候就需要考虑性能问题了

4.关于queue。如果你的spark任务没有指定queue,默认是default。实际测试中,例如大家都把任务指定到了一个a队列,a队列任务在跑,然后新任务来了一个,一个default队列任务b,a队列任务c,b早于c先来。那么实际上c执行完了,b都还没执行。只要a

队列不断有新任务来,那么就优先执行a队列任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值