第四课Spark应用经验与程序调优

第四课Spark应用经验与程序调优的相关问题都在下面进行提问回帖
1、大家在这个帖子上回复自己想要提的问题。(相同的问题,请点赞表示自己关注这个问题,不用重复提问)
2、提出的问题,老师在直播课的最后30分钟统一回答。
3、课后会整理出参考答案,给每个问题回帖。

课后调查问卷,请大家填写!
http://wj.qq.com/s/844240/f812
微信二维码如下:
1477050350845.png

 
老师,能不能录个小视频讲解一下maven配置,能让例子能mvn package运行起来?

@CrazyChao - 人生不止眼前的苟且,还有诗和远方的田野!^.^

赞同来自: crazyant

老师讲解一下这段代码吧!谢谢! 
collect().toMap  是不是和 collectAsMap() 没有区别?
/**
     * Transfrom filmID to fileName
     */
    val movieID2Name = moviesRdd.map(_.split("::")).map { x =>
      (x(0), x(1))                            //拿出(电影编号,电影名称)
    }.collect().toMap                         //map{(1,2),(4,6)}

    topKmovies.map(x => (movieID2Name.getOrElse(x._1, null), x._2)).foreach(println)

    println(System.currentTimeMillis())

@CrazyChao - 人生不止眼前的苟且,还有诗和远方的田野!^.^

赞同来自: crazyant

老师讲解一下这段代码吧!谢谢! 
val topKScoreMostMovie = ratings.map{x =>
      (x._2, (x._3.toInt, 1))                  //(电影编号,(电影评分,1))
    }.reduceByKey { (v1, v2) =>
      (v1._1 + v2._1, v1._2 + v2._2)
    }.map { x =>
      (x._2._1.toFloat / x._2._2.toFloat, x._1)
    }.sortByKey(false).
        take(10).
        foreach(println)

猫尾巴花开

赞同来自: 狂龙

强烈建议老师录个小视频介绍下,从建立Idea,到程序打成jar在集群中运行,现在一直没有跑起来,一直报class not find

郭亮

赞同来自:

老师好。 请问  您看这 RDD里的值  不对。。  我试了很多次,RDD里条数对,但内容都是最后一行的值。再往下解析OrcStruct,值也不对,前面的RDD值就错了。 能不能不调用SPARK-SQL,像上述这种解析ORC文件。 下面是正确的值。SPARK-SQL也正确。 hive> select * from orctest; OK sadfghjsfdajhkfds       sad sfdahfdashjfdas sfd asdfasdfsdaf    asd 123123dsfdasfdsa        123 Time taken: 0.269 seconds, Fetched: 4 row(s) SPARK-SHELL里RDD的值不对。 scala> import org.apache.hadoop.io.NullWritable import org.apache.hadoop.io.NullWritable scala> import org.apache.hadoop.hive.ql.io.orc.OrcStruct import org.apache.hadoop.hive.ql.io.orc.OrcStruct scala> val glorc=sc.hadoopFile[NullWritable,OrcStruct,org.apache.hadoop.hive.ql.io.orc.OrcInputFormat]("/hive/warehouse/orctest") glorc: org.apache.spark.rdd.RDD[(org.apache.hadoop.io.NullWritable, org.apache.hadoop.hive.ql.io.orc.OrcStruct)] = /hive/warehouse/orctest HadoopRDD[0] at hadoopFile at <console>:26 scala> glorc.collect res0: Array[(org.apache.hadoop.io.NullWritable, org.apache.hadoop.hive.ql.io.orc.OrcStruct)] = Array(((null),{123123dsfdasfdsa, 123}), ((null),{123123dsfdasfdsa, 123}), ((null),{123123dsfdasfdsa, 123}), ((null),{123123dsfdasfdsa, 123}))

对方正在输入中 - 80后IT男、运维

赞同来自:

shuffle的过程中,中间结果写本地磁盘是写在本地磁盘的哪个目录,这个目录是如何配置,可以自己定义目录吗?

freshcandy

赞同来自:

spark访问本地文件,这个被读取的本地文件需要集群中的每个节点上都有吗?测试wordcount的时候,输入参数为driver上的一个本地文件,报错文件不存在

xbyang18

赞同来自:

老师,你在讲shuffle时,说sort shuffle比hash shffle要性能好 但hash suffle的优化后,是同一个core的多个mapshuffleTask把结果写在一个文件里, sort shffle是有多少个mapshffleTask就写多少个文件,在加上sort shuffle又要排序,怎么会比优化后的hash suffle更高效了?  

heming621

赞同来自:

董老师,请问: 1、Spark中的DAG的作用体现在什么地方?和MapReduce相比,DAG优化了哪些地方? 2、RDD.cache()的作用相当于广播变量吗?广播变量一直占用内存直到程序结束吗?一个节点中只有一个广播变量?

周榆杰

赞同来自:

董老师,你好!我在win IDE 编写了sparkPI、wordcount打包后,将jar包上传服务器使用yarn-master方式运行,会有如下截图错误,请董老师指教!

kaiball9999 - Focus on bigdata

赞同来自:

怎么把一个text文件转化成parquet文件

Tomguluson

赞同来自:

sc.textFile("abc.log").map().map()..... 当进行这种操作的时候,如果transformation太多,是否会导致堆栈溢出?为什么? sc.textFile("abc.log")生成第一个rdd时,是等这个rdd完全创建完毕再进行后续的map操作么? 还是当第一个rdd的partition一有数据流入,就把它分发给后面的map操作?为什么?

xuyifei

赞同来自:

hadoop yarn上的作业失败提醒有什么好的方式吗

@CrazyChao - 人生不止眼前的苟且,还有诗和远方的田野!^.^

赞同来自:

自动生成模拟数据的原理是什么?如何实现?能否把讲课用到的例子给我们呢?

yslbg2008

赞同来自:

什么操作会进行笛卡尔集 和shuff 呢??老师可以举些例子么?

风雨之间

赞同来自:

使用alluxio会对spark程序提升多少,一般用在什么场合

shareshow

赞同来自:

spark有没有并行的数据结构map,如并行的HashMap?

胡博强_doc

赞同来自:

SparkSQL group by 时,有类似设置 partition 数目、reduce task 数目的方法吗?

shareshow

赞同来自:

在使用分布式编程的时候如何使用这些数据结构,比如map,是需要广播?那如果是要对这个数据结构进行修改,该怎么做呢?

shareshow

赞同来自:

在使用分布式编程的时候如何使用这些数据结构,比如map,是需要广播?那如果是要对这个数据结构进行修改,比如修改某个key对应的内容,该怎么做呢?

张兴华

赞同来自:

spark的historyserver和yarn的historyserver是什么关系?可以同时启用么

kaiseu

赞同来自:

能讲一下spark的内存管理吗?

hahawei

赞同来自:

standalone模式下应该是不用提交assembly的吧!?

tsingfu

赞同来自:

spark Broadcast 对程序调优,之前发现使用过程中,并没有生效,每个task执行时回从 driver 端传大量数据,导致job执行很慢,一直没有解决,结果没有解决跳过了; 这种情况有没有遇到过?

ShadowFiend

赞同来自:

数据存在greenplum里面,怎么更好的用spark,做迁移吗

shareshow

赞同来自:

有没有graphx的课程?

hahawei

赞同来自:

standalone模式下spark是不会自动提交assembly的吧!?懂老师这次跑的好快:)

lcg_1023 - 如:80后IT男..

赞同来自:

董老师:   在spark on yarn 中执行程序时出现 container 死掉的情况,是什么原因?      
QQ图片20161024171727.png
 

tianling

赞同来自:

请问老师,是否有一些练习项目的代码,我们可以参考。能否提供一下代码的git下载的地址,谢谢

乖乖燕杰

赞同来自:

老师我想问下,在一个应用系统中,有很多其他的代码,程序有些流程是不需要转换为RDD处理的,比如说中有一个线程循环扫描一个目录,如果目录中扫描到有文件就把文件全换成RDD,再对这些RDD进行后续的处理,这种逻辑spark可以实现吗?这种逻辑处在spark程序中的什么位置?

乖乖燕杰

赞同来自:

还想 老师 再问下如果我们系统中需要同时处理两种类型数据,一种是实时由kafka发送来的,还有一种是离线数据放到hdfs或是ftp上的,用spark 或spark streaming能处理这两种类型吗?

dongmoo

赞同来自:

董老师,说一下你们公司的数据分析师对spark以及spark ML的掌握程度,另外我会用python以及python的数据挖掘包sklearn,请问数据分析师行业不学习scala问题也不大吧?

草根人才

赞同来自:

 Error:scalac: Error: requirement failed: package compress java.lang.IllegalArgumentException: requirement failed: package compress spark版本 :spark-2.1.0-bin-hadoop2.6.tgz  jdk1.8 scala版本为2.12.1 董老师您好,我的程序运行时出现这个异常,我怀疑是版本不对应的问题,这个问题我怎么排查?上面是我用到的版本。

该问题目前已经被锁定, 无法添加新回复