Spark精华问答 | Spark的三种运行模式有何区别?

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=png

Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第一代产品使用HDFS,第二代加入了Cache来保存中间计算结果,并能适时主动推Map/Reduce任务,第三代就是Spark倡导的流Streaming。今天,就让我们一起来看看关于它的更加深度精华问答吧!


640?wx_fmt=gif1
















Q:Spark的三种运行模式有何区别?Spark Client 和 Spark Cluster的区别 ?


A:单机:

local[n] 单机伪分布式模式,n个线程分别充当driver和Executors,由于driver和Executors处于同一个jvm,算子可以访问外部的变量。很多新手的坏习惯就是从这里养成的。

集群:

standalone spark worker组成集群,Spark内置的集群搭建模式。适合于不太依赖Hadoop的运算环境,或者存储集群和计算集群分离的场景。

yarn 运行与Hadoop Yarn集群之上。作业调度、资源调度由Yarn分配。Yarn在这方面做得比Spark standalone集群好,适用于存储计算合一,或者需要依赖MR、Hive等作业的场景。

部署模式:

client driver运行于执行spark-submit脚本的机器上。这机器不一定是集群的节点,你可以在Windows上运行driver,Linux集群运行Executors。cluster 作业提交后,driver运行于集群上的某一个节点上,集群视其为一个Executor,相当于后台程序。

standalone和yarn(还有mesos,这个不了解)都支持client/cluster两种模式。前者由--master参数控制,后者由deploy-mode参数控制。


640?wx_fmt=gif2

Q:Spark算子内能不能引用SparkSession?


A:Spark的算子是在executor上执行的,数据也是放在executor上。executor和driver并不在同一个jvm(local[*]除外),所以算子是不能访问在driver上的SparkSession对象。

好好品味一下这个图:

640?wx_fmt=png

     

如果一定要“在算子里访问SparkSession”,那只能把数据collect回Driver,然后用Scala 集合的算子去做。这种情况下只能适用于数据量不大(多大取决于分配给Driver的内存)。另外建议是通过join的方式获取关联数据并进行处理。


640?wx_fmt=gif3

Q:一个使用Sparksql查询Hbase数据的功能,只取结果的1000条数据,用的limit算子,最后用foreachPartition算子将数据插入数据库中,但是Hbase那张表的数据量很大,有3000多个region,查看sparkui,发现竟然是要把所有的数据都要加载一遍取出对应的数据,所以Sparksql计算的时候是要把所有的数据都要加载一遍计算吗?


A:如果数据量巨大而集群计算资源吃不消的话,就建议不要用HBase存储数据,HBase并不留存任何结构化信息,同时也没有索引,因此并不适合多维查询。用Hive+Parquet+合理的分区分桶优化+SparkSQL查询性能会可观得多。另外更酷炫的是Spark+CarbonData,满足绝大多数OLAP需求,甚至详单查询的性能也很恐怖,并且支持update delete insert。


640?wx_fmt=gif4

Q:在其他机器上部署了HDFS、HBase、Spark,请问怎么在本地调试Java Spark来操作远程的HBase,就像操作远程数据库一样?


A:1. HBase是一个数据库(分布式),有自己的JDBC,可以根据HBase的JDBC开发自己应用, 只要能连接上,本地远程都可以。

2. Spark集群部署好了,写好Spark作业提交给Spark集群,Spark cluster计算完成后,可以参看结果。

3. Spark相关的rest server是livy,然而并不是很好用有一定的版本和环境要求,很多开发者会选择避开这个坑,所以你会看到网上的大部分博客。

4. 推荐Linux环境下开发,少爬很多坑,Windows不适合大数据相关的开发。


640?wx_fmt=gif5

Q:HDP2.4.0版本,Spark SQL运行在yarn-client模式,现在发现有些语句跑特别慢,20个节点,一千多个CPU核心,8TB内存,数据量不到一亿条,都是类似这样的语句:

640?wx_fmt=png

group by十个字段,然后sum20多个值,竟然要十分钟以上,而把数据加载到一台oracle服务器,开启多核计算,同样语句只要30秒。

Spark SQL设置成动态分配,spark.dynamicallocation.enabled=true,设置成最大最小和初始化都是300。发现是卡在最后一个task里,例如有200个任务,卡在最后一个任务里,最后一个任务占95%以上时间。Java调用Spark的thrift server接口,直接运行SQL语句,没有采用调Spark rdd方法,请问是什么问题?


A:典型的数据倾斜问题。在一个stage里,每个task对应一个partition,当有一个partition的数据量大于其他的,就会出现这样的情况。这种情况只能用代码的方法,观察问题所在的stage对应的dataset,然后在执行SQL前,reparation(>200,有文档建议是2k)。如果问题仍存在,就要对group by的字段值加盐,group by一轮后,去盐再group by得到最终数据。


----------------    --------------

小伙伴们冲鸭,后台留言区等着你!

关于Spark,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~


----------------    --------------


1.微信群:

添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


2.征稿:

投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。


推荐阅读

  • Gartner的预言:通向混合IT之旅

  • 崩溃!新浪程序员加班错失 77 万年会大奖

  • 刚刚!华为又被美国盯上了!

  • 阿里“菜鸟”AI?

  • 以太坊升级的拖油瓶,竟只是这几行代码

  • 程序员有话说 | 程序猿在乘地铁的时候都在想什么?

  • 清华北大“世界排名断崖式下跌”?


640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!


640?wx_fmt=png喜欢就点击“好看”吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

戳蓝字“CSDN云计算”关注我们哦!简书ID:我没有三颗心脏 github:wmyskxz 欢迎关注公众微信号:wmyskxz前言:由于之前没有接触过Hibernate框架,但是最近看一些博客深深被它的“效率”所吸引,所以…

云重磅 | 阿里云开源Blink;华为发布5G Cloud VR;AWS 将举行AI 大会 re;英伟达下调5亿美元业绩预期...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周二第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

虚拟化精华问答 | 虚拟化会使管理更轻松吗?

戳蓝字“CSDN云计算”关注我们哦!虚拟化是实现动态IT的重要基石,在虚拟化蓬勃发展的这些年里,虚拟化可以根据不同划分标准进行分类,包括全虚拟化,CPU 虚拟化,硬件虚拟化,服务器虚拟化等等&#…

Storm精华问答 | 为什么这么多人用Spark而不用Storm?

戳蓝字“CSDN云计算”关注我们哦!Storm被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,以及大数据实时处理解决方案的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼…

聊聊云计算:为什么构建网站时常会用到负载均衡

戳蓝字“CSDN云计算”关注我们哦!作者:疯子程序员来源:https://blog.csdn.net/qq_40196321/article/details/85075746 负载均衡可以将客户端请求分摊到多个操作单元上进行处理硬件负载均衡负载均衡有很多种不同的实现方式,总的来说…

要闻君说:阿里云联合8家芯片模组商推出“全平台通信模组”;北汽与小桔车服联合“京桔”;IBM要帮助印度公司打造5G战略!...

关注并标星星CSDN云计算每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 嗨,大家好!偶是要闻君。盼望着、盼望着,放假的日子又临近了一步,抢先祝福各位看官们新年快乐哈!文/要闻君近日&#xff0…

揭开容器的神秘面纱:帮助初学者深入了解容器技术

戳蓝字“CSDN云计算”关注我们哦!本文转载自:Docker 简介无论你是学生,还是公司的开发人员,或是软件爱好者,相信你都听说过容器。 你可能还听说容器是轻量级虚拟机,但这究竟意味着什么,容器究竟…

微服务精华问答 | 微服务有什么优点和不足呢?

戳蓝字“CSDN云计算”关注我们哦!过去几年来,“微服务架构”这个术语出现了,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。尽管这种架构风格没有确切的定义,但围绕业务能力,自动化部署&#xff0…

Gartner预测2019年全球IT支出将达到3.8万亿美元

戳蓝字“CSDN云计算”关注我们哦!【2019年1月29日】全球领先的信息技术研究和顾问公司Gartner表示,2019年全球IT支出将达到3.76万亿美元,较2018年增长3.2%。Gartner研究副总裁John-David Lovelock表示:“尽管经济衰退传闻、英国脱…

4个最受欢迎的大数据可视化工具!

戳蓝字“CSDN云计算”关注我们哦!想像阅读书本一样阅读数据流?这只有在电影中才有可能发生。 在现实世界中,企业必须使用数据可视化工具来读取原始数据的趋势和模式。大数据可视化是进行各种大数据分析解决的最重要组成部分之一。 一旦原始数…

边缘计算与物联网精华问答 | 边缘计算和物联网有什么关系?

戳蓝字“CSDN云计算”关注我们哦!随着物联网时代到来,云计算平台将面临着海量设备接入、海量数据等高难度挑战,这使得云计算中心实时返回数据决策也变成了不可能的任务。于是,边缘计算开始进入到公众的视线。1Q:边缘计算和物联网有…

要闻君说:FaceTime的服务究竟坑有多大?CNCF 技术监督委员会首添中国面孔,来自阿里!高通华为暂和解……...

关注并标星星CSDN云计算每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 嗨,大家好!偶是要闻君。终于等到了工作日的最后一天,内心狂喜,想必有的看官已经放假啦。十分感谢小伙伴们长达一月的陪伴&#xff0c…

C语言 fprintf 函数 - C语言零基础入门教程

目录 一.fprintf 函数简介二.fprintf 函数使用三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.fprintf 函数简介 fprintf 是 C / C 中的一个格式化库函数,位于头文件 中,其作用是格式化输出到一个流文件中&#xff1…

云漫圈 | 漫画:什么是加密算法?

戳蓝字“CSDN云计算”关注我们哦!文章来自:程序员小灰作者:小灰加密算法的历史加密算法最早诞生在什么时候?是在计算机出现之后吗?不不不,早在古罗马时期,加密算法就被应用于战争当中。在大规模…

深入浅出大数据:到底什么是Hadoop?

戳蓝字“CSDN云计算”关注我们哦!作者:小枣君来源:鲜枣课堂1998年9月4日,Google公司在美国硅谷成立。正如大家所知,它是一家做搜索引擎起家的公司。无独有偶,一位名叫Doug Cutting的美国工程师&#xff0c…

趣挨踢 | 30 个让程序员崩溃的瞬间,笑死我了!

戳蓝字“CSDN云计算”关注我们哦!文章来自:程序员最幽默前方高能,看完不笑的来找我。我自己看了好几遍,程序员真的是一群逗比的人才!1. 公司实习生找 Bug2. 在调试时,将断点设置在错误的位置3. 当我有一个很…

“史上最强春节档”来袭!数据解读值得看的影片是......

戳蓝字“CSDN云计算”关注我们哦!作者介绍:徐麟,目前就职于互联网公司数据部,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据个人公众号:数据森麟&#xff08…

大厂必问的分布式究竟是什么鬼?

戳蓝字“CSDN云计算”关注我们哦!新的一年又开始了,各大招聘咨询机构都会对过去一年市场上的人才供需进行盘点。根据高端招聘平台100 offer发布的Java人才盘点报告,在过去的2018年,Java仍然是最流行、招聘供需量最大的技术语言。在…

为什么不用原生Spring-Cloud-Config

戳蓝字“CSDN云计算”关注我们哦!引言近几年传统应用架构已经逐渐朝着微服务架构演进。那么随着业务的发展,微服务越来越庞大,此时服务配置的管理变得会复杂起来。为了方便服务配置文件统一管理,实时更新,配置中心应运…

cesium实现区域贴图及加载多个gif动图

1、cesium加载多个gif动图 Cesium的Billboard支持单帧纹理贴图,如果能够将gif动图进行解析,获得时间序列对应的每帧图片,然后按照时间序列动态更新Billboard的纹理,即可实现动图纹理效果。为此也找到了相对于好一点的第三方库libg…