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

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

1

Q:Spark的组建构成有哪些?

A:1:每一个application有自己的executor的进程,它们相互隔离,每个executor中可以有多个task线程。这样可以很好的隔离各个applications,各个spark applications 不能分享数据,除非把数据写到外部系统。

2:SparkContext对象可以视为Spark应用程序的入口,主程序被称为driver program,SparkContext可以与不同种类的集群资源管理器(Cluster Manager),例如Hadoop Yarn、Mesos等 进行通信,从而分配到程序运行所需的资源,获取到集群运行所需的资源后,SparkContext将得到集群中其它工作节点(Worker Node) 上对应的Executors (不同的Spark应用程序有不同的Executor,它们之间也是独立的进程,Executor为应用程序提供分布式计算及数据存储功能),之后SparkContext将应用程序代码分发到各Executors,最后将任务(Task)分配给executors执行。

2

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

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

好好品味一下这个图:

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

3

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

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

4

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不适合大数据相关的开发。

5

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

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天,答:……

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

福利

写好python的代码怎么放在spark上跑_Spark精华问答 | spark的组件构成有哪些?相关推荐

  1. Spark精华问答 | spark的组件构成有哪些?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  2. spark sql 本地调试_Spark精华问答|Spark的三种运行模式有何区别?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

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

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  4. Spark精华问答 | spark性能优化方法

    Hadoop再火,火得过Spark吗?今天我们继续关于Spark的精华问答吧. 1 Q:影响性能的主要因素是什么? A:网络传输开销大 硬件资源利用率低 同一资源的复用率低 2 Q:优化的方向有哪些? ...

  5. Spark精华问答 | Spark 会替代Hadoop 吗?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  6. Spark精华问答 | Spark的计算方法是什么?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  7. Spark精华问答 | Spark做大规模高性能数值计算可以吗?

    Spark作为一个用来实现快速而通用的集群计算的平台.扩展了广泛使用的MapReduce计算模型,而且高效地支持更多的计算模式,在处理大规模数据集的时候,速度是非常重要的.Spark的一个重要特点就是 ...

  8. python代码总体框架怎么写_mtcnn python 开源代码详细图解

    感觉自己陷入了代码细节误区,本着时间紧任务重的理念,加上本人能力有限,暂时无法完成细节代码图解,但是可以简单写一下自己两周以来的学习感悟,和整体架构! 首先总体架构参考如下博客:https://zhu ...

  9. 入门级别的Python爬虫代码 爬取百度上的图片

    简单讲解下python爬取百度图片的方法还有一些小坑(ps:我是搞.net的所以python只是新手讲错勿怪,注意:系统是windows下的) 首先讲下对百度图片上请求的分析:这里我引用下别人的博客, ...

最新文章

  1. Vue 入门,Vue属性和指令
  2. 每日一皮:雷神索尔的锤子为什么这么重?
  3. 直播 | ACL 2021论文解读:表征与结构兼备,结构化语言模型R2D2
  4. VMware下主机与虚拟机通信问题
  5. 二叉树第i层中的所有结点_讲透学烂二叉树(二):图中树的定义amp;各类型树的特征分析...
  6. node 微信红包 证书出错,请登录微信支付商户平台下载证书
  7. 2017-2018-1 20155338 《信息安全系统设计基础》第七周学习总结
  8. Windows临界区简单实现
  9. C#设计模式之8-组合模式
  10. Redmi K20 Pro尊享版官宣:升级为骁龙855 Plus旗舰平台
  11. ajax获取java session的值_jquery 怎么获取 ajax中的session值
  12. window-批量创建文件夹
  13. 单片机学习笔记-基础知识
  14. Error: java.lang.RuntimeException: Crunching Cruncher xxx.9.png failed,
  15. 悉尼大学SOFT2201课业解析
  16. 一支笔的测试点_软件测试面试:如何测试一支笔(铅笔,钢笔,中性笔)
  17. Consistent 与 Mirrored 视角
  18. python求15的因数_十五道Python小案例,学会这些,Python基础已过关!
  19. I2C driver编写指导二:编写i2c client driver指南
  20. EDG夺冠火爆全网,官网域名用的如何?

热门文章

  1. XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件
  2. UGUI的优点新UI系统二 直观、易于使用
  3. iOS 滚动图滚动到顶部汇总
  4. mysql报错2_MySQL基于报错注入2
  5. python中不同类型的数据不能相互运算_PyTorch中Tensor的数据类型和运算的使用
  6. 融合机器人技术和神经科学的神经工程未来与挑战
  7. android中xml文件的生成与读取(Pull)
  8. 扎克伯格凌晨放大招,说几句话能造世界的那种
  9. 上汽接入Momenta飞轮,成为中国第一个落地RoboTaxi的车企
  10. 跟百万人一起在快手学自动驾驶,是种怎样的体验?