【转】董西成问答整理:第一课

一、Spark在任何情况下均比MapReduce高效吗? 请举例。

不是任何情况下都很高效,数据量非常大的时候MapReduce要比Spark快。
比如:WordCount计算的数据量是1PB的时候,MapReduce会比Spark快。
快的原因是目前Spark的Shuffle实现比较差,而Spark Shuffle这个实现正在改进,且会换成同MapReduce Shuffle一样的实现。

二、当前存在很多DAG引擎,包括Spark,Tez,Flink,为何大家都在讨论Spark?

从设计架构看,Spark的设计架构不是最优的,有些还不如Flink和Tez。
但是Spark的社区支持,推广和宣传做的较好,活跃度很高。
因此Spark受关注的多些。

三、Spark号称“内存计算框架”,它将所有数据写到内存吗?

1.可以指定当然尽量的写入内存内存不够还是要落盘的~
2.不是,不会写到任何地方,可以显示指定数据写入的路径。
思考:默认情况下会不会先缓存在内存?spark在什么情况下会缓存在内存?

四、yarn集群 和 standalone集群有什么区别?优势在哪里?为什么要用yarn?

**yarn集群和其他的计算框架集成的较好,比如MapReduce、Tez、Spark等等这些任务都可以运行在yarn上。
standalone模式的集群只能运行spark任务不能运行其他的任务。
考虑运行的任务多样化和集群的运维成本,一般才用yarn集群即可,不会再单独搭建一套standalone模式的集群。
**

五、Hulu在生产环境中,哪些业务使用到了Spark,以及使用的哪个版本?

目前是1.5,将会升级到1.6,将来也会用2.0,主要用到推荐,广告,一些数据分析,机器学习算法等。

六、主要业务是用DataFrame从postgres里取出记录,然后对所有的记录做flatMap,每条记录做业务处理,然后返回结果,最后把结果存到postgres里。用spark1.6和spark2.0.1都实现过,在standalone和yarn上都跑过,无论参数是否调整,二十多万条记录的时间都是五分多。集群环境是5台server,每台4个core,16G内存。
问题详细描述:
在取数据库的时候,分区是16或100,差别也不是很大。spark-submit \
–master spark://datascienceresearch-01:7077 \
–executor-memory 15G \
–executor-cores 4 \
–driver-memory 4G \
–conf spark.default.parallelism=1000 \
–conf spark.storage.memoryFraction=0.2 \
–conf spark.shuffle.memoryFraction=0.2 \
–conf spark.executor.memory=3G \
–class com.GroupMain \
/usr/local/sparkProject/spark4content-0.0.1.jar
我们也调整fifo为fair模式,时间一样。不明白。
那么请问,一般参数需要怎么调整?一般有什么经验值和参数?请大神回答一下,谢谢。

回答:
fifo和fair模式都不会提高资源利用率及任务的并行度,调度模式是在资源有剩余的情况可以分给让另个作业使用。
根据你的脚本命令配置的是默认2个Exector,很有可能是task把Exector的资源都占满了,没有优化的余地了,不管调什么模式都不管用。

七、总是能看到“spark比hadoop快100倍”,“spark将要取代hadoop”之类的话,老师能分析一下spark的发展趋势吗?

这些话是软文推广的话术,不可信。目前在hulu的生产环境下逐渐将一些MapReduce任务换成spark,比较看好spark发展。回顾下第一次直播课,老师提到hadoop是存储和计算为一体,saprk只有计算。

八、部署在云平台的hadoop和spark,相较于物理机,有什么优点和缺点?spark适合部署在云平台吗?

1.优点:hadoop和spark在云平台的安装,部署和监控已经做了很好的支持,不需要运营机器,省下很多运维管理的成本。
缺点:在云平台的虚拟机性能会有一定的损失,网络资源开销比物理机差。
2.auto scale ~ 但是网络和性能可能不太好

九、除了CDH本身的一些监控,还有别的监控job数量和job运行状态的工具没?

yarn本身就可以监控,其他工具,可以使用dr. elephant.

十、Spark算子中哪些算子会引起Stage的划分,一个Stage中的Task数量会发生变化吗?哪些算子会引起Tasks数量的变化?具体举例说明下

只要带shuffle的算子,都会引起stage划分,比如reduceByKey,sort等,作业提交的那一刻开始,各个stage的task数目就已经确定了,运行过程中不会再变动。

十一、安装Ambari能够对已经运行一段时间的Hadoop、Spark集群做监控?

不能,必须是ambari部署的hadoop,才可以被他监控

十二、spark streaming跑一段时间就挂掉 现在定位不到问题 @Dong 麻烦能分析一下出现问题的可能性以及定位问题的方式么?

你需要告知更详细信息,比如集群情况,数据情况,提交脚本,运行日志(包括driver和executor日志)

十三、有一个程序在standalone模式下能正常运行,而提交到yarn上的时候运行到一半报序列化错误:
com.esotericsoftware.kryo.KryoException: Unable to find class xxx 而xxx在这个包中是存在的,这个可能是什么原因?

这是因为你采用了kryo序列化方式,但有些需要序列化的类没有采用kryo方式进行序列化,更没有注册。

十四、有个疑问, 现在spark官网提供的spark安装包是类似这种
spark-2.0.1-bin-hadoop2.7.tgz,
解压缩后设置几个环境变量就可以直接使用单机模式.
我的疑问是, 那我还需要额外安装hadoop吗?
spark的版本和hadoop的版本有什么关系?
感谢回答!

如果你处理的数据不在HDFS,就不用额外安装,例如只是做实验,完全可以用Spark读取本地文件,这样就不需要安装Hadoop,但如果你需要使用YARN作为资源管理或者HDFS作为数据存储,就需要额外安装了

十五、kafka中partition和副本存放策略是怎么样的?

这个跟hdfs类似,你可以设置kafka中每个topic的副本数,比如3,他们找三台机器存储副本,这三台机器选择时,还会考虑rack信息(如果你配置了的话)。

十六、Spark sql可以代替hive等其他的SQL on hadoop框架么?

不能,会共存。 比如,spark sql一定不会比impala/preso快,因为后者是MPP架构,且是全内存计算。

十七、我们在用Spark插入分区表的时候会特别慢,这是个普遍现象吗?

这个跟spark无关,与HDFS有关,如果很慢,可能是你的并行度不够,可以通过并行方式加快速度。

十八、为什么图计算和机器学习是迭代计算的呢?而数据挖掘是交互式处理呢?能分别举例说明吗?

是否为迭代计算是由算法决定的,很多图计算和机器学习算法(比如聚类算法)是迭代的,具体你可以了解下。数据挖掘更多的是多维分析,OLAP等,一般要求支持SQL,且计算结果尽快返回,比如报表系统。

十九、CDH 上 hive 依赖于 spark 的话,那么实际底层是用spark sql 吗?

hive on spark是一个独立的项目, 跟spark sql无直接。但他们的确应用场景非常类似,但hive是一个非常主流的查询引擎,所以hive on spark受众会更多。

二十、初学者搭建Spark运行环境用Cloudera还是Ambari比较好?

如果只需要学习spark,可以在本地环境,不需要搭建spark,下载spark安装包直接用即可。如果是分布式运行spark,可以用ambari部署hadoop。

二十一、老师能给我们搭建基于CDH的Hadoop环境吗 ?

自己搞个cloudera manager一直添加服务,简单方便。

二十二、做大数据运维怎么样,有前途吗 ?

Dong • 2016-10-12 09:23
这种人很稀缺,尤其是高级大数据运维工程师,要了解操作系统;hadoop/spark各个系统的部署,调优,监控,报警,问题诊断;要帮助用户解决他们遇到的问题。整体说来,好的大数据运维应该是一个知识广度非常大的人,底层要尽可能多的了解linux,上层要了解各个大数据各个系统。

二十三、mapreduce相比于spark的优势有哪些呢?

MapReduce仍保留一些优势,但这些优势在不断减少。目前存在的优势有:
(1)目前很多系统仍然对MR支持的最好,比如hive,pig
(2)目前MR在处理超大数据规模时,比Spark更稳定,比如TB级数据量

二十四、只会用python,对java是写hello world的水平。如果我要搞好spark应用层的问题,是不是可以主要学scala而非java?

java和scala可以相互调用,很多时候会相互引用一些库,比如编写scala程序时,经常会用到一些java的库,不管如何,java一定要有一些基础,会写一些简单程序。

二十五、老师可以简单讲讲 Spark 和 Alluxio 怎么结合使用么?

简单说来,alluxio可以作为缓存系统,你可以把数据存到内存或ssd上,这样用spark读取数据速度很快。

二十六、spark 通常和 hadoop 与 yarn 一同使用,在学些 spark过程中,需要补充哪些 hadoop 与 yarn 相关的知识点,可以整理列一下 ?

只需要了解yarn的基本架构和一个应用程序是如何在YARN上跑起来的(主要步骤知道)即可;对于hadoop,需要了解hdfs/hbase等系统的概念,架构和原理。 后面我会罗列一下。

二十七、transformation积累多了怎么办?如果没有action ?

没有action,这个应用程序马上会退出,不会有任何分布式的计算任务被调度出去,也就是说,你的程序实际上只在driver里跑了,executor端不会受到任何分布式计算任务。

二十八、现在互联网里面的大数据开发的岗位,是直接用开源的Spark开发各种分析工具,还是基于Spark的源码二次开发比较多?

绝大部分是用开源的Spark开发各种分析工具,极少数公司(绝大部分是大公司,比如阿里,腾讯)会二次开发spark。

二十九、yarn-cluster模式 如果driver 挂了,重启的话任务会完全重新启动么 ?

只有driver会重启,所有任务需要重算,目前做的不够好。 只是能避免应用程序失败,用户无需干预失败,但一旦失败后运行时间会大大变长。

三十、如何解决Spark的数据倾斜?

**没有太好方法,一般而言,以下方法可用:
(1)选择合适的key进行partition
(2)将计算过程分成两个阶段(两组reduce),第一阶段平均reduce,第二阶段汇总,具体参考hive的skey join实现
yuzhouwan • 2016-10-12 18:10

  1. 使用Hive ETL预处理数据
  2. 过滤少数导致倾斜的key
  3. 提高shuffle操作的并行度
  4. 两阶段聚合(局部聚合+全局聚合)
  5. 将reduce join转为map join
  6. 采样倾斜key并分拆join操作
  7. 使用随机前缀和扩容RDD进行join
  8. 多种方案组合使用
    网络收罗了一些方法**

三十一、在yarn-client模式下,client提交的job,driver在client端,那App master上运行的是什么?

App Master只是一个跟YARN(ResourceManager)交互的组件,用以向YARN申请资源供Spark用,没有任何用户的逻辑在里面。

三十二、一个partition只会在一个节点上吧?老师没有讲container的概念么?老师能把partition、container、executor、task再详细讲一下么?

container是yarn的概念,是一个抽象概念,是容器的意思,里面可以跑任何东西,比如MapTask,比如executor, executor是spark的运行任务的服务,paritition是数据存储单元,task是计算单元,我在spark技术内幕剖析一节还会介绍。

三十三、董老师,你好:我刚刚参加一个项目。是用spark分析日志统计用户访问量。在本地调式没有问题可以在es中能获取到数据。然而在正式环境上发现经常在es中没有数据。查询原因比较繁琐和困难。有的同事怀疑是spark分析日志出现问题。有的同事怀疑是日志格式数据问题导致的。请问有什么方式才能快速的定位问题。

在分布式环境下不容易定位问题,建议打印一些日志,查看任务运行日志。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容