做海报的网站类似于创客贴,申请了域名怎么建网站,wordpress登录注册页面,西安看个号网络科技有限公司戳蓝字“CSDN云计算”关注我们哦#xff01;Spark是一个针对超大数据集合的低延迟的集群分布式计算系统#xff0c;比MapReducer快40倍左右#xff0c;是hadoop的升级版本#xff0c;Hadoop作为第一代产品使用HDFS#xff0c;第二代加入了Cache来保存中间计算结果#xf… 戳蓝字“CSDN云计算”关注我们哦Spark是一个针对超大数据集合的低延迟的集群分布式计算系统比MapReducer快40倍左右是hadoop的升级版本Hadoop作为第一代产品使用HDFS第二代加入了Cache来保存中间计算结果并能适时主动推Map/Reduce任务第三代就是Spark倡导的流Streaming。今天就让我们一起来看看关于它的更加深度精华问答吧1QSpark的三种运行模式有何区别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上运行driverLinux集群运行Executors。cluster 作业提交后driver运行于集群上的某一个节点上集群视其为一个Executor相当于后台程序。standalone和yarn还有mesos这个不了解都支持client/cluster两种模式。前者由--master参数控制后者由deploy-mode参数控制。2QSpark算子内能不能引用SparkSessionASpark的算子是在executor上执行的数据也是放在executor上。executor和driver并不在同一个jvmlocal[*]除外所以算子是不能访问在driver上的SparkSession对象。好好品味一下这个图 如果一定要“在算子里访问SparkSession”那只能把数据collect回Driver然后用Scala 集合的算子去做。这种情况下只能适用于数据量不大多大取决于分配给Driver的内存。另外建议是通过join的方式获取关联数据并进行处理。3Q一个使用Sparksql查询Hbase数据的功能只取结果的1000条数据用的limit算子最后用foreachPartition算子将数据插入数据库中但是Hbase那张表的数据量很大有3000多个region查看sparkui发现竟然是要把所有的数据都要加载一遍取出对应的数据所以Sparksql计算的时候是要把所有的数据都要加载一遍计算吗A如果数据量巨大而集群计算资源吃不消的话就建议不要用HBase存储数据HBase并不留存任何结构化信息同时也没有索引因此并不适合多维查询。用HiveParquet合理的分区分桶优化SparkSQL查询性能会可观得多。另外更酷炫的是SparkCarbonData满足绝大多数OLAP需求甚至详单查询的性能也很恐怖并且支持update delete insert。4Q在其他机器上部署了HDFS、HBase、Spark请问怎么在本地调试Java Spark来操作远程的HBase就像操作远程数据库一样A1. HBase是一个数据库(分布式)有自己的JDBC可以根据HBase的JDBC开发自己应用 只要能连接上本地远程都可以。2. Spark集群部署好了写好Spark作业提交给Spark集群Spark cluster计算完成后可以参看结果。3. Spark相关的rest server是livy然而并不是很好用有一定的版本和环境要求很多开发者会选择避开这个坑所以你会看到网上的大部分博客。4. 推荐Linux环境下开发少爬很多坑Windows不适合大数据相关的开发。5QHDP2.4.0版本Spark SQL运行在yarn-client模式现在发现有些语句跑特别慢20个节点一千多个CPU核心8TB内存数据量不到一亿条都是类似这样的语句group by十个字段然后sum20多个值竟然要十分钟以上而把数据加载到一台oracle服务器开启多核计算同样语句只要30秒。Spark SQL设置成动态分配spark.dynamicallocation.enabledtrue设置成最大最小和初始化都是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.征稿投稿邮箱liudancsdn.net微信号color_ld。请备注投稿姓名公司职位。推荐阅读Gartner的预言通向混合IT之旅崩溃新浪程序员加班错失 77 万年会大奖刚刚华为又被美国盯上了阿里“菜鸟”AI以太坊升级的拖油瓶竟只是这几行代码程序员有话说 | 程序猿在乘地铁的时候都在想什么?清华北大“世界排名断崖式下跌”点击“阅读原文”打开 CSDN App 阅读更贴心喜欢就点击“好看”吧