大数据/spark
莫言静好、
这个作者很懒,什么都没留下…
展开
-
spark基础之checkpoint机制
一 Spark中Checkpoint是什么假设一个应用程序特别复杂场景,从初始RDD开始到最后整个应用程序完成,有非常多的步骤,比如超过20个transformation操作,而且整个运行时间也比较长,比如1-5个小时。此时某一个步骤数据丢失了,尽管之前在之前可能已经持久化到了内存或者磁盘,但是依然丢失了,这是很有可能的。也就是说没有容错机制,那么有可能需要重新计算一次。而如果这个步骤很耗时和原创 2017-10-27 08:48:57 · 922 阅读 · 0 评论 -
Spark Streaming之运行原理
Spark Streaming之运行原理原创 2017-11-11 10:27:54 · 1290 阅读 · 0 评论 -
Spark Streaming之运行架构
一 Spark Streaming 运行架构图二 Spark Streaming各个组件2.1 StreamingContext: Spark Streaming 中Driver端的上下文对象,初始化的时候会构造Spark Streaming应用程序需要使用的组件,比如DStreamGraph、JobScheduler等2.2 DStreamGraph:用于保存DStrea原创 2017-11-11 10:31:30 · 2346 阅读 · 0 评论 -
Spark Streaming之checkpoint机制
Spark Streaming之checkpoint机制原创 2017-11-11 10:35:01 · 598 阅读 · 0 评论 -
Spark Streaming之Kafka的Receiver和Direct方式
一 Receiver方式Receiver是使用Kafka的high level的consumer API来实现的。Receiver从Kafka中获取数据都是存储在Spark Executor内存中的,然后Spark Streaming启动的job会去处理那些数据 然而这种方式很可能会丢失数据,如果要启用高可靠机制,让数据零丢失,就必须启动Spark Streaming预写日志机制。该机原创 2017-11-11 10:37:09 · 1281 阅读 · 0 评论 -
Spark Streaming之updateStateByKey和mapWithState比较
Spark Streaming之updateStateByKey和mapWithState比较原创 2017-11-12 10:29:40 · 6175 阅读 · 3 评论 -
spark sql 性能优化
一 设置shuffle的并行度我们可以通过属性spark.sql.shuffle.partitions设置shuffle并行度 二 Hive数据仓库建设的时候,合理设置数据类型,比如你设置成INT的就不要设置成BIGINT,减少数据类型不必要的内存开销 三 SQL优化 四 并行的处理查询结果对于Spark SQL查询的结果,如果数据量比较大,比如超过1000条,那么原创 2017-11-12 10:30:12 · 6043 阅读 · 0 评论 -
Spark Streaming之容错机制以及事务语义
我们知道RDD本身是一个不可变的,可重新计算的、分布式的数据集。每一个RDD都会记住确定好的操作血缘关系。如果因为某些原因,导致某个worker节点失败,则导致RDD的某个partition数据丢失了,那么那个partition可以通过对原始的容错数据集应用操作血缘,来重新计算。因为HDFS本身是容错文件系统的,所以在HDFS的数据不会丢失,最坏情况无非重新计算而已。 但是对于Spar原创 2017-11-12 10:30:35 · 1007 阅读 · 0 评论 -
spark 性能优化
一 性能优化点# 提升并行度,就意味着有更多的分区,也就意味着有更多的task.当然不是越多越好,结合实际情况# 对多次使用的RDD进行缓存,可以减少不必要的计算# 使用序列化的持久化机制,这样可以减少内存占用以及GC开销# Java虚拟机调优# 广播共享数据# 数据本地化# shuffle调优# 使用高性能的序列化类库 二 诊断内存消耗我们应该如何判断原创 2017-11-12 10:31:21 · 503 阅读 · 0 评论 -
spark数据倾斜
一 数据倾斜解决方案原理以及现象分析1.1 数据倾斜原理就是指某些key相关的数据和其他key的数据比例相比较,严重失衡,多太多,那么在task运行的时候每一个task需要处理的数据量就不一样,这样很容易造成,一些task很早就结束了,一些task要运行很久,拖后腿;另外提前运行完的task浪费资源。 1.2根据日志定位数据倾斜的位置和原因出现数据倾斜的原因,基本是因为发生了s原创 2017-11-12 10:31:51 · 411 阅读 · 0 评论 -
Spark SQL运行原理和架构
一 Spark SQL运行架构Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析、绑定、优化、执行。Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule)对Tree进行绑定、优化等处理过程。Spark SQL由Core、Catalyst、Hive、Hive-ThriftServer四部分构成:Core: 负责处理数据的输入和输出,如获取数据,查询结果原创 2017-11-11 10:25:56 · 3827 阅读 · 0 评论 -
RDD和DataFrame和Dataset比较
一 SparkSQL简介Spark SQL是一个能够利用Spark进行结构化数据的存储和操作的组件,结构化数据可以来自外部结构化数据源也可以通过RDD获取。外部的结构化数据源包括Hive,JSON,Parquet,RMDBS等。当前Spark SQL使用Catalyst优化器来对SQL进行优化,从而得到更加高效的执行方案。并且可以将结果存储到外部系统。 二 DataFrame &原创 2017-11-11 10:22:28 · 393 阅读 · 0 评论 -
spark基础之spark streaming的checkpoint机制
一 什么类型的数据需要使用checkpoint?Spark Streaming是最需要进行容错的,因为一般都是7 * 24小时运转,所以需要将足够的信息checkpoint到容错的存储系统上,比如HDFS,从而能够让他从失败中进行恢复。有两种数据需要被进行checkpoint:1、元数据checkpoint: # 配置信息:创建spark streaming应用程序的配置信息,比如原创 2017-11-10 20:59:51 · 730 阅读 · 0 评论 -
spark基础之RDD详解
一 什么是RDD,有什么特点?RDD: Resilient Distributed Dataset,弹性分布式数据集。特点:# 它是一种数据的集合# 它可以被分区,每一个分区分布在不同的集群中节点,从而使得RDD可以被并行处理,所以它是分布式的# 提供容错性,它将计算转换一个成一个有向无环图(DAG)的任务集合,方便利用血缘关系进行数据恢复# 中间计算结果缓存在内存二原创 2017-10-27 08:54:49 · 1904 阅读 · 0 评论 -
spark基础之shuffle机制和原理分析
一 概述Shuffle就是对数据进行重组,由于分布式计算的特性和要求,在实现细节上更加繁琐和复杂在MapReduce框架,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中,往往伴随着大量的磁盘和网络I/O。所以shuffle性能的高低也直接决定了原创 2017-10-27 08:59:38 · 36879 阅读 · 6 评论 -
spark基础之基于yarn两种提交模式分析
一 介绍基于YARN的提交模式,总共有2种:一种是基于YARN的yarn-cluster模式;一种是基于YARN的yarn-client模式。 需要将提交应用程序的spark-submit的脚本中加上--master参数,设置为yarn-cluster或者yarn-client。如果没有设置,默认就是standalone模式。 spark-submit --class c原创 2017-10-27 09:04:48 · 957 阅读 · 1 评论 -
spark基础之调度器运行机制简述
一 概述驱动程序在启动的时候,首先会初始化SparkContext,初始化SparkContext的时候,就会创建DAGScheduler、TaskScheduler、SchedulerBackend等,同时还会向Master注册程序;如果注册没有问题。Master通过集群管理器(cluster manager)会给这个程序分配资源,然后SparkContext根据action触发job。原创 2017-10-27 09:08:44 · 997 阅读 · 0 评论 -
spark基础之存储原理
一 Spark存储架构Spark的存储采用主从(Master/Slave)模式,使用RPC进行消息通信。Master主要负责整个应用程序在运行期间block元数据的管理和维护,Slave主要负责将本地数据块的状态的汇报给Master;而且接收Master传过来的执行指令,比如获取数据块状态,删除RDD/数据块等。 在Driver端只有一个BlockManagerMast原创 2017-10-27 09:13:16 · 693 阅读 · 0 评论 -
spark基础之RDD和DataFrame和Dataset比较
一 SparkSQL简介Spark SQL是一个能够利用Spark进行结构化数据的存储和操作的组件,结构化数据可以来自外部结构化数据源也可以通过RDD获取。外部的结构化数据源包括Hive,JSON,Parquet,RMDBS等。当前Spark SQL使用Catalyst优化器来对SQL进行优化,从而得到更加高效的执行方案。并且可以将结果存储到外部系统。 二 DataFrame &原创 2017-10-27 09:15:45 · 561 阅读 · 0 评论 -
spark基础之RDD和DataFrame的转换方式
一 通过定义Case Class,使用反射推断Schema定义Case Class,在RDD的转换过程中使用Case Class可以隐式转换成SchemaRDD,然后再注册成表,然后就可以利用sqlContext或者SparkSession操作了。我们给出一个电影测试数据film.txt,定一个Case Class(Film),然后将数据文件读入后隐式转换成SchemeRDD:film,并原创 2017-10-27 09:17:39 · 6706 阅读 · 0 评论 -
spark基础之Spark SQL和Hive的集成以及ThriftServer配置
如果希望Maven编译Spark时支持Hive,需要给定-Phive -Phive-thriftserver。比如比如:mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-Phive -Phive-thriftserver -DskipTests clean package 一 Spark SQL和Hive集成1.1 将hive的配置文件hiv原创 2017-10-27 09:19:15 · 12720 阅读 · 0 评论 -
spark基础之spark sql运行原理和架构
一 Spark SQL运行架构Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析、绑定、优化、执行。Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule)对Tree进行绑定、优化等处理过程。Spark SQL由Core、Catalyst、Hive、Hive-ThriftServer四部分构成:Core: 负责处理数据的输入和输出,如获取数据,查询结果原创 2017-10-27 09:21:33 · 6861 阅读 · 0 评论 -
spark streaming性能优化
一 数据接收并行度调优通过网络接收数据的时候,比如kafka或者flume,会将数据反序列化,并存储在在Spark内存中。如果数据接收成为系统的瓶颈,那么可以考虑并行化接收数据。1.1除了创建更多输入DStream和Receiver每一个InputDStream都会在某个Worker上的Executor上启动一个Receiver,该Receiver接收一个数据流。因此可以通过创建多个I原创 2017-11-12 10:32:22 · 4660 阅读 · 0 评论