写好python的代码怎么放在spark上跑_Spark精华问答 | spark的组件构成有哪些?
戳蓝字“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的组件构成有哪些?相关推荐
- Spark精华问答 | spark的组件构成有哪些?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- spark sql 本地调试_Spark精华问答|Spark的三种运行模式有何区别?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- Spark精华问答 | Spark的三种运行模式有何区别?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- Spark精华问答 | spark性能优化方法
Hadoop再火,火得过Spark吗?今天我们继续关于Spark的精华问答吧. 1 Q:影响性能的主要因素是什么? A:网络传输开销大 硬件资源利用率低 同一资源的复用率低 2 Q:优化的方向有哪些? ...
- Spark精华问答 | Spark 会替代Hadoop 吗?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- Spark精华问答 | Spark的计算方法是什么?
戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...
- Spark精华问答 | Spark做大规模高性能数值计算可以吗?
Spark作为一个用来实现快速而通用的集群计算的平台.扩展了广泛使用的MapReduce计算模型,而且高效地支持更多的计算模式,在处理大规模数据集的时候,速度是非常重要的.Spark的一个重要特点就是 ...
- python代码总体框架怎么写_mtcnn python 开源代码详细图解
感觉自己陷入了代码细节误区,本着时间紧任务重的理念,加上本人能力有限,暂时无法完成细节代码图解,但是可以简单写一下自己两周以来的学习感悟,和整体架构! 首先总体架构参考如下博客:https://zhu ...
- 入门级别的Python爬虫代码 爬取百度上的图片
简单讲解下python爬取百度图片的方法还有一些小坑(ps:我是搞.net的所以python只是新手讲错勿怪,注意:系统是windows下的) 首先讲下对百度图片上请求的分析:这里我引用下别人的博客, ...
最新文章
- Vue 入门,Vue属性和指令
- 每日一皮:雷神索尔的锤子为什么这么重?
- 直播 | ACL 2021论文解读:表征与结构兼备,结构化语言模型R2D2
- VMware下主机与虚拟机通信问题
- 二叉树第i层中的所有结点_讲透学烂二叉树(二):图中树的定义amp;各类型树的特征分析...
- node 微信红包 证书出错,请登录微信支付商户平台下载证书
- 2017-2018-1 20155338 《信息安全系统设计基础》第七周学习总结
- Windows临界区简单实现
- C#设计模式之8-组合模式
- Redmi K20 Pro尊享版官宣:升级为骁龙855 Plus旗舰平台
- ajax获取java session的值_jquery 怎么获取 ajax中的session值
- window-批量创建文件夹
- 单片机学习笔记-基础知识
- Error: java.lang.RuntimeException: Crunching Cruncher xxx.9.png failed,
- 悉尼大学SOFT2201课业解析
- 一支笔的测试点_软件测试面试:如何测试一支笔(铅笔,钢笔,中性笔)
- Consistent 与 Mirrored 视角
- python求15的因数_十五道Python小案例,学会这些,Python基础已过关!
- I2C driver编写指导二:编写i2c client driver指南
- EDG夺冠火爆全网,官网域名用的如何?
热门文章
- XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件
- UGUI的优点新UI系统二 直观、易于使用
- iOS 滚动图滚动到顶部汇总
- mysql报错2_MySQL基于报错注入2
- python中不同类型的数据不能相互运算_PyTorch中Tensor的数据类型和运算的使用
- 融合机器人技术和神经科学的神经工程未来与挑战
- android中xml文件的生成与读取(Pull)
- 扎克伯格凌晨放大招,说几句话能造世界的那种
- 上汽接入Momenta飞轮,成为中国第一个落地RoboTaxi的车企
- 跟百万人一起在快手学自动驾驶,是种怎样的体验?