Spark
文章平均质量分 53
往事随风_h
感谢互联网,让我在知识的海洋遨游了一年又一年,为了感谢广大网友,我也把所学知识分享,咱们一起进步!
展开
-
一分钟让你搞明白SparkStreaming与Storm的区别
SparkStreaming与Storm的区别1.Storm是纯实时处理数据,SparkStreaming是微批处理数据,可以通过控制间隔时间做到实时处理。SparkStreaming相对于Storm来说,吞吐量大。2.Storm擅长处理简单的汇总型业务。SparkStreaming擅长处理复杂的业务。Storm相对于SparkStreaming来说轻量级。SparkStreaming中可以使...原创 2020-03-20 09:38:40 · 7308 阅读 · 3 评论 -
流式大处理的三种框架对比:Storm,Spark和Flink
storm、spark streaming、flink都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行,都提供了简单的API来简化底层实现的复杂程度。Apache Storm在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(master node)分发代码,将任务分配给工作节点(worker node)执行。一个拓扑中包括spout和.原创 2021-02-19 20:29:02 · 6002 阅读 · 4 评论 -
spark 1.6 和spark 2.0读写csv文件
如果是spark1.6.0请添加maven: <dependency> <groupId>com.databricks</groupId> <artifactId>spark-csv_2.10</artifactId> <version>1.4.0</version> <scope>compile<原创 2021-02-07 21:01:47 · 3568 阅读 · 0 评论 -
周期性清除Spark Streaming流状态的方法
在Spark Streaming程序中,我们经常需要使用有状态的流来统计一些累积性的指标,比如各个商品的PV。简单的代码描述如下,使用mapWithState()算子:val productPvStream = stream.mapPartitions(records => { var result = new ListBuffer[(String, Int)] for (record <- records) { result += Tuple2(recor原创 2020-09-24 16:25:52 · 3577 阅读 · 0 评论 -
一篇文章了解 Spark Shuffle 内存使用
在使用 Spark 进行计算时,我们经常会碰到作业 (Job) Out Of Memory(OOM) 的情况,而且很大一部分情况是发生在 Shuffle 阶段。那么在 Spark Shuffle 中具体是哪些地方会使用比较多的内存而有可能导致 OOM 呢? 为此,本文将围绕以上问题梳理 Spark 内存管理和 Shuffle 过程中与内存使用相关的知识;然后,简要分析下在 Spark Shuffle 中有可能导致 OOM 的原因。文章目录一、Spark 内存管理和消费模型二、Spark Shuffle.原创 2020-09-23 16:15:31 · 4075 阅读 · 0 评论 -
Apache Spark 中编写可伸缩代码的4个技巧
在本文中,我将分享一些关于如何编写可伸缩的 Apache Spark 代码的技巧。本文提供的示例代码实际上是基于我在现实世界中遇到的。因此,通过分享这些技巧,我希望能够帮助新手在不增加集群资源的情况下编写高性能 Spark 代码。文章目录背景技巧一:尽可能给 Spark 函数更多的输入路径技巧二:尽可能跳过模式推断技巧三:尽可能避免 Shuffle技巧四:不要过度依赖 Catalyst Optimizer背景我最近接手了一个 notebook ,它主要用来跟踪我们的 AB 测试结果,以评估我们的推.原创 2020-09-19 10:49:02 · 2372 阅读 · 0 评论 -
SparkStreaming窗口函数的原理
窗口函数就是在原来定义的SparkStreaming计算批次大小的基础上再次进行封装,每次计算多个批次的数据,同时还需要传递一个滑动步长的参数,用来设置当次计算任务完成之后下一次从什么地方开始计算。...原创 2020-09-01 20:13:15 · 3585 阅读 · 3 评论 -
Spark Client和Cluster两种运行模式的工作流程区别
1.client 模式: 在Client模式下,Driver进程会在当前客户端启动,客户端进程一直存在直到应用程序运行结束。该模式下的工作流程图主要如下:工作流程如下: 1.启动master和worker . worker负责整个集群的资源管理,worker负责监控自己的cpu,内存信息并定时向master汇报 2.在client中启动Driver进程,并向master注册 3.master通过rpc与worker进行通信,通知worker启动一个或多个e原创 2020-08-07 17:05:36 · 5921 阅读 · 0 评论 -
MapReduce与spark的区别--内容详细
Hadoop MapReduce采用了多进程模型,而Spark采用了多线程模型:Apache Spark的高性能一定程度上取决于它采用的异步并发模型(这里指/driver 端采用的模型),这与Hadoop 2.0(包括YARN和MapReduce)是一致的。Hadoop 2.0自己实现了类似Actor的异步并发模型,实现方式是epoll+状态机,而Apache Spark则直接采用了开源软件Akka,该软件实现了Actor模型,性能非常高。尽管二者在server端采用了一致的并发模型,但在任务级别(特指原创 2020-08-07 16:49:59 · 5246 阅读 · 0 评论 -
spark core、spark sql、spark streaming 联系与区别
SparkCore 是做离线批处理SparkSql 是做sql高级查询SparkStreaming是做流式处理SparkShell 是做交互式查询区别:Spark Core :Spark的基础,底层的最小数据单位是:RDD ; 主要是处理一些离线(可以通过结合Spark Streaming来处理实时的数据流)、非格式化数据。它与Hadoop的MapReduce的区别就是,spark core基于内存计算,在速度方面有优势,尤其是机器学习的迭代过程。Spark SQL:Spark SQL 底原创 2020-07-29 17:12:38 · 5748 阅读 · 0 评论 -
Spark—— DAG 如何划分stage?
DAG介绍DAG是什么DAG(Directed Acyclic Graph有向无环图) 指的是数据转换执行的过程,有方向,无闭环(其实就是RDD执行的流程)原始的RDD通过一系列的转换操作就形成了DAG有向无环图,任务执行时,可以按照DAG的描述,执行真正的计算(数据被操作的一个过程)DAG的边界开始:通过SparkContext创建的RDD结束:触发Action,一旦触发Action就形成了一个完整的DAG注意:一个Spark应用中可以有一到多个DAG,取决于触发了多少次Act原创 2020-07-14 20:01:04 · 4097 阅读 · 0 评论 -
Spark-------控制算子
概念:控制算子有三种,cache,persist,checkpoint,以上算子都可以将RDD持久化,持久化的单位是partition。cache和persist都是懒执行的。必须有一个action类算子触发执行。checkpoint算子不仅能将RDD持久化到磁盘,还能切断RDD之间的依赖关系。cache默认将RDD的数据持久化到内存中。cache是懒执行。注意:cache () = pe...原创 2020-04-04 14:09:05 · 3597 阅读 · 0 评论 -
SparkSql 数据源
SparkSQL数据源目录通用加载/保存方法1.1手动指定选项1.2文件保存选项JSON文件Parquet文件JDBCHive数据库5.1内嵌Hive应用5.2外部Hive应用5.3运行Spark SQL CLI5.4代码中使用Hive1 通用加载/保存方法1.1 手动指定选项Spark SQL的DataFrame接口支持多种数据源的操作。一个DataFrame可...原创 2020-01-06 19:39:18 · 3187 阅读 · 0 评论 -
Spark Sql编程
第1章 Spark SQL概述1.1 什么是Spark SQLSpark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序的复杂性,由于MapReduce这种计算模型执行效...原创 2020-01-03 19:36:57 · 6915 阅读 · 0 评论 -
Spark RDD概述特点
1. 什么是RDDRDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。2. RDD的属性一组分区(Partition),即数据集的基本组成单位;一个计算每个分区的函数;RDD之间的依赖关系;一个Partitioner,即RDD的分片函数;一个...原创 2019-12-30 19:54:23 · 4815 阅读 · 0 评论 -
Spark常用的Action算子
action算子简介Action类算子也是一类算子(函数)叫做行动算子,如foreach,collect,count等。Transformations类算子是延迟执行,Action类算子是触发执行。一个application应用程序(就是我们编写的一个应用程序)中有几个Action类算子执行,就有几个job运行。1.reduce(func)案例作用:通过func函数聚集RDD中的所有元...原创 2019-12-28 10:05:58 · 6930 阅读 · 0 评论