分享

spark连接mongodb 耗时特别长 是什么原因啊

yisun123456 发表于 2017-10-17 16:19:55 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 11 14518
本帖最后由 yisun123456 于 2017-10-17 16:23 编辑


4台集群下,spark on yarn, 3 千万mongodb数据 慢死 估计1小时 什么原因啊 前辈们 如何使用sparkSQL(spark)快速 处理mongodb数据啊,急求


object ConnMongo03 {
  def main(args: Array[String]): Unit = {
    val t1 = System.currentTimeMillis()

    // 1. 创建SparkContext -> spark 入口
    val conf = new SparkConf()
    //.setMaster("local")
      .setAppName("ConnMongo03")
      .set("spark.mongodb.input.uri", "mongodb://xxxxxxxxxxxx")
      .set("spark.mongodb.output.uri", "mongodb://xxxxxxxxxxxxxx")
    val sc = new SparkContext(conf)
    // 2. 创建SQLContext
    val sqlContext = SQLContext.getOrCreate(sc)
    // 3. 使用MongoSpark创建Dataframe
    val df = MongoSpark.load(sqlContext)

    val data = df.rdd.sortBy(x=>x.getString(11)).map(doc =>  
      (doc.getString(1), doc.getString(6) + "_" + doc.getString(4) + "_" + doc.getString(11))
    )
    ).reduceByKey(_ + ";" + _)
    val t2 = System.currentTimeMillis()
    println((t2-t1)+"ms")

  }
}

已有(11)人评论

跳转到指定楼层
nextuser 发表于 2017-10-17 17:07:17
代码没有看出什么问题,只能优化集群了。

推荐文章:
Spark实践经验和Spark原理为依据调优spark
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20451


Spark性能优化的10大问题及其解决方案
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12676


Spark之性能优化
http://www.aboutyun.com/forum.php?mod=viewthread&tid=11547



Spark性能优化指南一——基础篇
http://www.aboutyun.com/forum.php?mod=viewthread&tid=18238



Spark性能优化指南二——高级篇
http://www.aboutyun.com/forum.php?mod=viewthread&tid=18414



回复

使用道具 举报

sstutu 发表于 2017-10-17 20:10:21
这方面看下日志和运行过程,找到问题出现在那里
回复

使用道具 举报

yisun123456 发表于 2017-10-17 20:15:51
本帖最后由 yisun123456 于 2017-10-17 20:17 编辑

这是某一次运行程序的 jobs(类似上面的代码)
1.png
回复

使用道具 举报

sstutu 发表于 2017-10-17 21:43:40
yisun123456 发表于 2017-10-17 20:15
这是某一次运行程序的 jobs(类似上面的代码)

这个看不出什么的,看系统运行日志。
回复

使用道具 举报

yisun123456 发表于 2017-10-18 09:43:22
sstutu 发表于 2017-10-17 21:43
这个看不出什么的,看系统运行日志。

运行日志没有什么报错 就是在不停的执行stage
回复

使用道具 举报

lee_178213557 发表于 2017-10-18 11:16:05
多大的数据量,代码就是上面的部分?
回复

使用道具 举报

yisun123456 发表于 2017-10-18 11:17:43
本帖最后由 yisun123456 于 2017-10-18 11:22 编辑
lee_178213557 发表于 2017-10-18 11:16
多大的数据量,代码就是上面的部分?

3千万mongodb数据 对关键字添加了索引 代码就是上面的
回复

使用道具 举报

einhep 发表于 2017-10-19 19:22:04
yisun123456 发表于 2017-10-18 09:43
运行日志没有什么报错 就是在不停的执行stage

对的,stage应该是可以优化的。看看到底那里执行时间最长
回复

使用道具 举报

yisun123456 发表于 2017-10-20 17:21:59
einhep 发表于 2017-10-19 19:22
对的,stage应该是可以优化的。看看到底那里执行时间最长

sortBy和count  mongodb的collection才3千万数据
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条