spark
多哥仁慈的骆驼
甘肃农业大学信息科学技术学院14计算机科学与技术
展开
-
Spark集群部署
1.下载spark安装包:http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz2.上传spark-1.5.2-bin-hadoop2.6.tgz安装包到Linux上3.解压安装包到指定位置:tar -zxvf spark-1.5.2-bin-hadoop2.6.tgz -C /...原创 2017-12-20 10:44:37 · 268 阅读 · 0 评论 -
spark优化---提高并行度
简介: 并行度就是Spark作业中,各个stage的task数量,也就代表了Spark作业的在各个阶段(stage)的并行度。意义: 假设,现在已经在spark-submit脚本里面,给我们的spark作业分配了足够多的资源,比如50个executor,每个executor有10G内存,每个executor有3个cpu core,基本已经达到了集群或者yarn队列的资源上限...转载 2018-10-08 22:03:05 · 502 阅读 · 0 评论 -
spark调优----广播变量
广播变量: 在Spark Application中,经常会使用到一个共享变量,众所周知的,Spark是一个并行计算框架,对于这个变量,每一个executor的task在访问它的时候,都会去拷贝一份副本去使用。如下图所示: 1.对于这种默认方式,它会极大的系统的内存,我们可以假设一个集群中有1024个task,这个共享变量大小假设为1M,那么就会去复制1024份到...转载 2018-10-08 22:47:39 · 350 阅读 · 0 评论 -
Spark调优----数据本地化
Spark数据本地化-->如何达到性能调优的目的1.Spark数据的本地化:移动计算,而不是移动数据2.Spark中的数据本地化级别: TaskSetManager 的 Locality Levels 分为以下五个级别: PROCESS_LOCAL NODE_LOCAL NO_PREF ...转载 2018-10-08 23:06:36 · 266 阅读 · 0 评论 -
Hadoop Shuffle和Spark Shuffle的区别
一.MR的Shuffle mapShuffle 数据存到hdfs中是以块进行存储的,每一个块对应一个分片,maptask就是从分片中获取数据的 在某个节点上启动了map Task,map Task读取是通过k-v来读取的,读取的数据会放到环形缓存区,这样做的目的是为了防止IO的访问次数,然后环形缓存区的内存达到一定的阀值的 时候会把文件益写到磁盘,溢...转载 2018-11-13 07:17:45 · 4743 阅读 · 0 评论 -
Spark 运行时常见异常及数据倾斜的解决方法
spark执行异常: 现象1: 有时会出现的一种情况非常普遍,在spark的作业中;shuffle file not found。(spark作业中,非常非常常见的)而且,有的时候,它是偶尔才会出现的一种情况。有的时候,出现这种情况以后,会重新去提交stage、task。重新执行一遍,发现就好了。没有这种错误了。 现象2: 如果说,你是...转载 2018-11-13 09:37:00 · 613 阅读 · 0 评论 -
Spark的三种join笔记
准备数据: orders:(订单t1) order_id driver_id 1000 5000 1001 5001 1002 5002 drivers:(司机表t2) ...转载 2018-11-13 09:44:45 · 396 阅读 · 0 评论 -
Spark调优----Shuffle调优
Spark性能调优之Shuffle调优 • Spark底层shuffle的传输方式是使用netty传输,netty在进行网络传输的过程会申请堆外内存(netty是零拷贝),所以使用了堆外内存。 • shuffle过程中常出现的问题常见问题一:reduce oom? 问题原因: reduce task 去map端获取数据,reduce一边拉取数据一边聚合,red...转载 2018-11-12 10:13:17 · 232 阅读 · 0 评论 -
SparkStreaming获取kafka数据的两种方式
简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据Receiver 使用Kafka的高层次Consumer API来实现。receiver从Kafka中获取的数据都存储在Spark Executor的内存中,然后Spark Streaming启动的job会去处理那些数据。然而,在默认的配置下,这...转载 2018-12-03 12:02:46 · 185 阅读 · 0 评论 -
spark调优----垃圾回收
背景: 如果在持久化RDD的时候持久化了大量的数据那么java 虚拟机在垃圾回收的时候就可能成为一个性能瓶颈。因为java虚拟机会定期的进行垃圾回收,此时会最总所有的java对象并且在垃圾回收时找到些不在使用的对象进行回收。垃圾回收的性能开销,是根内存中对象的数量成正比的所以对于垃圾回收的性能问题首先要做的是,使用高效的数据结构,比如array和String 其次在持久化RDD时候。使...转载 2018-10-07 22:12:35 · 1603 阅读 · 0 评论 -
spark优化----序列化持久化
简介: 除了对多次使用的RDD进行持久化操作之外,还可以进一步优化其性能,因为很有可能,RDD的数据是持久化到内存,或者磁盘中的,那么此时如果内存大小不是特别充足,完全可以使用序列化的持久化级别, 如下: 1.MEMORY_ONLY_SER 2.MEMORY_AND_DISK_SER 使用RDD.persist(StorageLeve...转载 2018-10-07 21:45:01 · 255 阅读 · 0 评论 -
SparkRDD知识总结
.RDD的属性 1)一组分片(Partition),即数据集的基本组成单位。对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会采用默认值。默认值就是程序所分配到的CPU Core的数目。 2)一个计算每个分区的函数。Spark中RDD的计算是以分片为单位的,每个RDD都会实现compute函数以...原创 2017-12-20 11:45:14 · 560 阅读 · 0 评论 -
Spark一些配置参数整理
以下是整理的Spark中的一些配置参数,官方文档请参考Spark Configuration。Spark提供三个位置用来配置系统:· Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置· 环境变量:可以通过每个节点的 conf/spark-env.sh脚本设置。例如IP地址、端口等信息· 日志配置:可以通过log4j.properties原创 2017-12-20 11:46:47 · 665 阅读 · 0 评论 -
Spark架构
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实...转载 2017-12-15 18:51:10 · 294 阅读 · 0 评论 -
spark与storm的对比
spark与storm的对比对比点StormSpark Streaming实时计算模型纯实时,来一条数据,处理一条数据准实时,对一个时间段内的数据收集起来,作为一个RDD,再处理实时计算延迟度毫秒级秒级吞吐量低高转载 2018-01-07 13:17:14 · 542 阅读 · 0 评论 -
Spark基于yarn的两中模式的运行过程
Yarn-Client模式中,Driver在客户端本地运行,这种模式可以使得Spark Application和客户端进行交互,因为Driver在客户端,所以可以通过webUI访问Driver的状态,默认是http://hadoop1:4040访问,而YARN通过http:// hadoop1:8088访问。 YARN-client的工作流程分为以下几个步骤: (1)....原创 2018-09-16 22:48:33 · 308 阅读 · 0 评论 -
Spark性能优化----(概述)
一、内存消耗在什么地方 1、每个Java对象,都有一个对象头,会占用16个字节,主要是包括了一些对象的元信息,比如指向它的类的指针。如果一个对象本身很小,比如就包括了一个int类型的field,那么它的对象头实际上比对象自己还要大。 2、Java的String对象,会比它内部的原始数据,要多出40个字节。因为它内部使用char数组来保存内部的字符序列的,并且还得保存诸如数组长...转载 2018-10-07 20:20:59 · 143 阅读 · 0 评论 -
Spark调优基本策略
1. RDD的持久化 cahce() persist() checkpoint()2. 避免创建重复的RDD 尽可能复用同一个RDD,类似于多个RDD的数据有重叠或者包含的情况,应该尽量复用一个RDD,以尽可能减少RDD的数量,从而减少算子计算次数4.尽量避免使用shuffle类算子 spark运行过程中,最消耗性能的地方就是shuffle过程(简单...转载 2018-10-07 21:18:09 · 132 阅读 · 0 评论 -
Spark优化----数据结构的优化
概述: 要减少内存的消耗,除了使用高效的序列化类库以外,还有一个很重要的事情,就是优化数据结构。从而避免Java语法特性中所导致的额外内存的开销,比如基于指针的Java数据结构,以及包装类型。有一个关键的问题,就是优化什么数据结构?其实主要就是优化你的算子函数,内部使用到的局部数据,或者是算子函数外部的数据。都可以进行数据结构的优化。优化之后,都会减少其对内存的消耗和占用。如何优化数...转载 2018-10-07 21:28:16 · 140 阅读 · 0 评论 -
CM方式搭建集群---基础准备
生产中的集群规模: 一般情况下,在生产环境中根据集群查的规模分成三种 一,小型集群 20台以内 二, 中型集群 50台以内 三,大型集群 50台以上基本组件的配置: 1.zookeeper 一,小型集群:3-5个节点 ...翻译 2018-12-24 10:27:22 · 902 阅读 · 0 评论