Spark
内存计算时代
皮哥四月红
这个作者很懒,什么都没留下…
展开
-
Spark(4)RDD编程中的transformation算子和action算子使用与区别详解
前言在上一篇文章中我们介绍了什么是RDD,以及RDD的属性、特征、依赖关系和缓存机制等等:Spark(3)架构原理、运行流程、RDD那么,本文继续重点介绍一下RDD两类算子的使用。一、编程模型在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFil原创 2020-08-04 16:07:44 · 2294 阅读 · 0 评论 -
Spark(3)架构原理、运行流程和RDD介绍
目录一、Spark简介1、内置模块介绍2、Spark特点二、Spark基本架构和运行流程1、基本架构2、运行流程三、RDD概述1、什么是RDD2、RDD的属性3、RDD的特点4、RDD依赖关系4.1 Lineage4.2 窄依赖4.3 宽依赖4.4 DAG4.5 任务划分(面试重点)5、 RDD缓存6、 RDD CheckPoint一、Spark简介1、内置模块介绍S...原创 2020-08-03 19:21:55 · 1873 阅读 · 0 评论 -
Spark(2)面试官要求手写的wordcount案例(Java、Scala代码实现)
目录一、编写WordCount程序二、启动Hadoop(HDFS+YARN)和Spark服务三、运行调试Spark Shell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDE中编制程序,然后打成jar包,然后提交到集群,最常用的是创建一个Maven项目,利用Maven来管理jar包的依赖。这里借用最基本的wordcount案例来演示一下:一、编写WordCount程序1、在IDEA中创建一个Maven项目WordCount并导入依赖 <de原创 2020-07-31 17:57:47 · 926 阅读 · 0 评论 -
Spark(1)分布式集群安装部署与验证测试
目录一、准备工作二、安装部署三、启动服务和验证一、准备工作1、准备三台服务器(虚拟机):weekend110 192.168.2.100 weekend01 192.168.2.101 weekend02 192.168.2.102 2、Hadoop已经安装好并能正常启动二、安装部署1、先在一台机器(weekend110)上安装Scala和Spark安装Scala:官网下载安装包并上传到虚拟机,然后解压:tar -zxvf soft/s原创 2020-07-31 15:31:47 · 751 阅读 · 0 评论 -
如何从Hive数仓3万张表中快速查询特定的几条数据在哪些表里有存储
这是最近项目中所遇到的一个比较奇葩的需求,重点是如何快速地实现这个需求。思路一:先考虑实现需求,后面再进行速度和性能上的进一步优化。先是考虑从hive的元数据库中把具有该字段的表信息都找出来,然后扫描这些表的时候只针对目标字段进行过滤和判断,避免直接针对3万张表进行全表扫描。为了方便演示,简化需求为从hive数据仓库中的ods库的几十张表里找出字段sex=“UnKnown”的数据在哪些表中有存储。采用Shell脚本来实现,代码如下:#!/bin/bashdName="ods"resultT原创 2020-06-16 17:34:43 · 1206 阅读 · 0 评论 -
Exception in thread “main” java.lang.IllegalArgumentException: XXX is not a valid DFS filename.
背景:在idea中运行spark程序来操作MySQL数据库中的表时报错:Exception in thread “main” java.lang.IllegalArgumentException: Pathname /F:/spark/spark-warehouse from F:/spark/spark-warehouse is not a valid DFS filename.原因:因为我们在程序中,通常会将代码以打jar包的方式,放到集群中运行,所以会导入hdfs-site.xml和core原创 2020-06-17 17:10:51 · 1084 阅读 · 1 评论 -
【面试题】MapReduce和Spark的区别与联系
1)从功能上来说,MapReduce能够完成的各种离线批处理功能,以及常见算法(比如二次排序、TopN等),基于Spark RDD的核心编程都可以实现,而且是更好地、更容易地实现。2)从速度上来说,基于Spark RDD编写的离线批处理程序,运行速度是MapReduce的数倍,速度上有非常明显的优势,毕竟Spark是基于内存进行计算的,当然也有部分计算基于磁盘,比如Shuffle,但是其大量Tr...原创 2020-04-16 00:10:14 · 3939 阅读 · 0 评论 -
Spark开发之四种方式实现Scala中的自定义排序和二次排序算法
import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * Spark应用:自定义排序 + 二次排序 * 需求:对数据集按照产品价格降序排序,产品价格相同再按照产品数量降序排序 */object sortAPP { def main(args: Array[String...原创 2020-04-08 21:00:27 · 597 阅读 · 0 评论 -
【面试题】简述Spark中YarnCluster模式下作业提交流程
上图:流程大致如下:1)spark-submit通过命令行的方式提交任务;2)任务提交后会和ResourceManager通讯申请启动ApplicationMaster;3)随后ResourceManager分配container,并在合适的NodeManager上启动ApplicationMaster;4)ApplicationMaster启动后会创建Driver线程来执行用户...原创 2020-04-05 23:18:49 · 900 阅读 · 0 评论 -
【面试题】简述spark中的cache() persist() checkpoint()之间的区别与联系
首先,这三者都是做RDD持久化的。其次,缓存机制里的cache和persist都是用于将一个RDD进行缓存,区别就是:cache()是persisit()的一种简化方式,cache()的底层就是调用的persist()的无参版本,同时就是调用persist(MEMORY_ONLY)将数据持久化到内存中。如果需要从内存中清楚缓存,那么可以使用unpersist()方法。另外,cache 跟 ...原创 2020-04-05 21:39:57 · 1169 阅读 · 0 评论
分享