Spark
文章平均质量分 84
Spark
珞沫
欲望以提升热忱,毅力以磨平高山。
展开
-
IDEA中Maven项目打包方式
方式一:只打包程序包,包括类的方法。在其他应用中运行时,必须保证其上面有相应的依赖包,才能运行。maven——》Lifecyle——》Clean——》Package打包成功后就会出现target文件夹方式二:打包两个jar包:一个是架包(只包含程序包即方式一打的包一个是全包(包含程序包、依赖包)一般都会选择方式二进行打包,这样可以直接在其他应用中调用maven——》Plugins——》assembly——》assembly:assembly打包成功后就会出现targ原创 2021-01-19 14:32:09 · 29370 阅读 · 2 评论 -
Spark之IDEA创建基于Scala语言的Spark Maven项目
创建MVN1、创建Maven工程1.1 新建一个工程1.2 设置Maven配置指向2、首先我们需要搭建好相关的环境,包括:IntelliJ IDEA(官网上下载最新的就行了)、JDK(1.8)、Scala(2.12.12)、Spark(3.0.1)、Hadoop(2.7.4)Maven(如果你下载的是最新版的IDEA的话就不用下载了,因为IDEA里面已经自带了)(安装完后记得添加环境变量)1、创建Maven工程1.1 新建一个工程创建出来就是这样的1.2 设置Maven配置指向Fi原创 2021-01-17 18:58:00 · 1600 阅读 · 0 评论 -
Spark之【运行模式、环境搭建】
运行模式1、 Local模式1.1 环境搭建1.2 启动spark-shell1.3 读取文件1.4 应用场景1.2、Spark Standalone模式1.2 启动Local模式\quad \quadSpark注重建立良好的生态系统,它不仅支持多种外部文件存储系统,也提供了多种多样的集群运行模式。部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行;当以分布式集群部署的时候,可以根据自己集群的实际情况选择Standalone模式(Spark自带的模式)、Spark on原创 2021-01-16 21:38:02 · 1020 阅读 · 0 评论 -
Spark之Spark任务的提交方式【Spark-shell、Spark-submit】
spark-shell1、概述2、启动1、概述\quad \quadSpark-shell 是 Spark 给我们提供的交互式命令窗口(类似于 Scala 的 REPL)2、启动直接启动bin目录下的spark-shell:./spark-shell<1>直接使用 ./spark-shell表示使用local 模式启动,在本机启动一个SparkSubmit进程<2>还可指定参数 --master,如:spark-shell --master local[原创 2021-01-16 20:45:09 · 11783 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【CheckPoint】
RDD CheckPoint1、概述2、作用3、特性3、应用1、概述\quad \quad虽然 RDD 的血缘(依赖)关系天然地可以实现容错,当 RDD 的某个分区数据失败或丢失,可以通过血缘关系重建。但是对于长时间迭代型应用来说,随着迭代的进行,RDDs 之间的血缘关系会越来越长,一旦在后续迭代过程中出错,则需要通过非常长的血缘关系去重建,势必影响性能。为此,RDD 支持 checkpoint 将数据保存到持久化的存储中,这样就可以切断之前的血缘关系,因为 checkpoint 后的 RDD 不需要知原创 2021-01-16 16:47:18 · 295 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【缓存】
RDD缓存1、概述2、 API2.1 cache()2.2 persist()3、 级别4、清理缓存5、应用场景1、概述\quad \quadSpark最重要的一个功能是它可以通过各种操作(operations)持久化(或者缓存)一个集合到内存中。当你持久化一个RDD的时候,每一个节点都将参与计算的所有分区数据存储到内存中,并且这些数据可以被这个集合(以及这个集合衍生的其他集合)的动作(action)重复利用。这个能力使后续的动作速度更快(通常快10倍以上)。对应迭代算法和快速的交互使用来说,缓存是一个原创 2021-01-16 15:10:38 · 302 阅读 · 0 评论 -
解决之Spark Sql读写Hive表(加载源数据为.csv形式 )数据不一致
问题:Hive查询:Spark SQL 查询同一张表,结果查询效果不一样spark sql查询的表第一行即是源数据的表头,至于为什么有的是空值,是因为其所在字段都设置成int了,不相符合。原因:1、Hive表中不出现表头即脏数据的原因是我在创建表的时候跳过了文件的第一行create table trains(order_id int,product_id int,add_to_cart_order int,reordered int)row format delimite原创 2021-01-15 18:02:42 · 1153 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【执行过程、编程模型:创建、转换、输出、运行过程】
4、创建创建RDD一般有三种方法1、通过数据集进行创建由外部存储系统的数据集创建,包括本地的文件系统,还有所有Hadoop支持的数据集,比如HDFS、Cassandra、HBase等val rdd1=sc.textFile("文件路径")2、通过集合来创建通过集合创建RDD有两种方法:parallelize与 makeRDDmakeRDD多一个重载方法:重载分配一系列本地Scala集合形成一个RDD,可以为每个集合对象创建一个分区,并指定优先位置便于在运行中优化调度。使用本地集合创建原创 2021-01-13 11:23:41 · 466 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【任务切分、运行路径】
RDD如何运行1、RDD到底做什么?2、任务切分3、RDD运行规划图1、RDD到底做什么?RDD 是一个应用层面的逻辑概念。一个 RDD 多个分片。RDD 就是一个元数据记录集,记录了 RDD 内存所有的关系数据。2、任务切分Application:一个能够打成 jar 包的 Spark 程序就是一个应用。里面应该有一个 SparkContext。Job:一个应用中每一个 Action 操作所涉及到的所有转换叫一个 Job。Stage:一个 Job 根据 RDD 之间的宽窄依赖关系划分原创 2021-01-13 10:46:48 · 208 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【DAG的生成和划分Stage】
DAG1、概念2、DAG的生成3、划分stage4、RDD运行规划图1、概念\quad \quadDAG(Directed Acyclic Graph) 叫做有向无环图。2、DAG的生成\quad \quad原始的RDD通过一系列的转换操作就形成了DAG有向无环图,任务执行时,可以按照DAG的描述,执行真正的计算(数据被操作的一个过程)。DAG的边界开始:通过SparkContext创建的RDD结束:触发Action,一旦触发Action就形成了一个完整的DAG3、划分stage原创 2021-01-13 10:35:44 · 194 阅读 · 1 评论 -
Spark之SparkCore:RDD-数据核心/API【依赖关系:宽窄依赖】
RDD 依赖关系1、窄依赖(narrow dependency)2、宽依赖(wide dependency)3、作用\quad \quadRDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。1、窄依赖(narrow dependency)窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用 (一对一的关系)常见算子:map flatmap filter union sampl原创 2021-01-12 21:53:35 · 264 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【算子】
RDD算子1、Transformation 转换 算子(lazy)2、动作算子 Actions(non-lazy)RDD的算子分为两类:Transformation转换操作:返回一个新的RDDAction动作操作:返回值不是RDD(无返回值或返回其他的)1、Transformation 转换 算子(lazy)RDD中的所有转换都是惰性求值/延迟执行的,也就是说并不会直接计算。Spark仅记录作用于RDD上的转换操作逻辑,当遇到动作算子( Action)时才会进行真正计算。RDD常见转原创 2021-01-12 21:15:33 · 238 阅读 · 0 评论 -
Spark之SparkCore:RDD-数据核心/API【概念、属性、特点】
RDD引言1、概念2、属性2.1 多分区2.2 compute函数2.3 依赖关系2.4 分区器(Partitioner)2.5 分区优先位置列表3、特点4、创建引言为什么要有RDD?\quad \quad在许多迭代式算法(比如机器学习、图算法等)和交互式数据挖掘中,不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输入。但是,之前的MapReduce框架采用非循环式的数据流模型,把中间结果写入到HDFS中,带来了大量的数据复制、磁盘IO和序列化开销。且这些框架只能支持一些特定的计原创 2021-01-12 20:45:31 · 494 阅读 · 0 评论 -
Spark之【体系架构、API】
Spark1、Spark 架构2、 Spark API2.1 SparkContext2.2 SparkSession3、核心组件1、Spark 架构Spark架构主要由以下组件构成:Application: 建立在 Spark上的用户程序,包括 Driver代码和运行在集群各节点 Executor中的代码Driver program: 驱动程序, Application中的main函数并创建 SparkContextCluster Manager : 在集群(Standalone、Mesos、原创 2021-01-12 15:25:15 · 408 阅读 · 1 评论 -
Spark之【简介、特点、生态架构】
Spark1、简介2、四大特性2.1 高效性2.2 易用性2.3 通用性2.4 兼容性3、生态架构3.1 Spark Core3.2 Spark Streaming3.3 Spark SQL3.4 Spark MLlib3.5 GraphX1、简介\quad \quadApache Spark是一个开源的、强大的、分布式的并行计算框架,是一个实现快速通用的集群计算平台,用于大规模数据处理的统一分析引擎。它是由加州大学伯克利分校AMP实验室 开发的通用内存并行计算框架,用来构建大型的、低延迟的数据分析原创 2021-01-11 20:54:07 · 800 阅读 · 0 评论