// // // //

随笔分类 -  BD大数据-Spark

 
spark教程-Pyspark On Yarn 的模块依赖问题
摘要:原理简述 Yarn 模式是把资源统一交给 Yarn 集群来管理,其优点在于实现了 application 的多样性,如 MapReduce 程序、HBase 集群、Storm 集群、spark 集群等; Yarn 模式有两种运行模式:client 和 cluster,区别在于 client 模式的 阅读全文
posted @ 2019-12-25 14:04 努力的孔子 阅读(7216) 评论(2) 推荐(2) 编辑
spark机器学一Mllib 数据抽象
摘要:spark 提供了两个机器学习库 MLlib 和 ML,MLlib 是 spark 第一个机器学习库,相比于 ML,它更加成熟 rdd 是 spark core 的数据抽象,dataframe 是 sparkSQL 的数据抽象, 而 MLib 的数据抽象包括 Vector、LabeledPoint、 阅读全文
posted @ 2019-12-20 17:24 努力的孔子 阅读(980) 评论(0) 推荐(0) 编辑
spark调优篇-oom 优化(汇总)
摘要:spark 之所以需要调优,一是代码执行效率低,二是经常 OOM 内存溢出 内存溢出无非两点: 1. Driver 内存不够 2. Executor 内存不够 Driver 内存不够无非两点: 1. 读取数据太大 2. 数据回传 Executor 内存不够无非两点: 1. map 类操作产生大量数据 阅读全文
posted @ 2019-12-19 17:46 努力的孔子 阅读(4463) 评论(0) 推荐(1) 编辑
spark调优篇-数据倾斜(汇总)
摘要:数据倾斜 为什么会数据倾斜 spark 中的数据倾斜并不是说原始数据存在倾斜,原始数据都是一个一个的 block,大小都一样,不存在数据倾斜; 而是指 shuffle 过程中产生的数据倾斜,由于不同的 key 对应的数据量不同导致不同 task 处理的数据量不同 注意:数据倾斜与数据过量不同,数据倾 阅读全文
posted @ 2019-12-18 16:08 努力的孔子 阅读(5290) 评论(0) 推荐(3) 编辑
spark调优篇-Spark ON Yarn 内存管理(汇总)
摘要:本文旨在解析 spark on Yarn 的内存管理,使得 spark 调优思路更加清晰 内存相关参数 spark 是基于内存的计算,spark 调优大部分是针对内存的,了解 spark 内存参数有也助于我们理解 spark 内存管理 spark.driver.memory:默认 512M spar 阅读全文
posted @ 2019-12-17 10:57 努力的孔子 阅读(1995) 评论(0) 推荐(0) 编辑
spark异常篇-OutOfMemory:GC overhead limit exceeded
摘要:执行如下代码时报错 # encoding:utf-8 from pyspark import SparkConf, SparkContext from pyspark.sql import SparkSession conf = SparkConf().setMaster('yarn') sc = 阅读全文
posted @ 2019-12-16 10:54 努力的孔子 阅读(4040) 评论(0) 推荐(0) 编辑
spark异常篇-Removing executor 5 with no recent heartbeats: 120504 ms exceeds timeout 120000 ms 可能的解决方案
摘要:问题描述与分析 题目中的问题大致可以描述为: 由于某个 Executor 没有按时向 Driver 发送心跳,而被 Driver 判断该 Executor 已挂掉,此时 Driver 要把 该 Executor 上执行的任务发送给另外一个 Executor 重新执行; 默认等待时长为 spark.n 阅读全文
posted @ 2019-12-16 10:45 努力的孔子 阅读(3840) 评论(0) 推荐(0) 编辑
spark调优篇-spark on yarn web UI
摘要:spark on yarn 的执行过程在 yarn RM 上无法直接查看,即 http://192.168.10.10:8088,这对于调试程序很不方便,所以需要手动配置 配置方法 1. 配置 spark-defaults.conf cp spark-defaults.conf.template s 阅读全文
posted @ 2019-12-14 17:24 努力的孔子 阅读(3889) 评论(0) 推荐(0) 编辑
spark内核篇-task数与并行度
摘要:每一个 spark job 根据 shuffle 划分 stage,每个 stage 形成一个或者多个 taskSet,了解了每个 stage 需要运行多少个 task,有助于我们优化 spark 运行 task 数 首先需要了解以下概念: RDD,弹性分布式数据集,多个 partition; sp 阅读全文
posted @ 2019-12-11 15:15 努力的孔子 阅读(1929) 评论(0) 推荐(0) 编辑
spark内核篇-任务调度机制
摘要:在生产环境中,spark 部署方式一般都是 yarn-cluster 模式,本文针对该模式进行讲解,当然大体思路也适用于其他模式 基础概念 一个 spark 应用包含 job、stage、task 三个概念 job:以 action 方法为界,一个 action 触发一个 job stage:它是 阅读全文
posted @ 2019-12-10 11:25 努力的孔子 阅读(607) 评论(0) 推荐(0) 编辑
spark算子篇-repartition and coalesce
摘要:我们知道 RDD 是分区的,但有时候我们需要重新设置分区数量,增大还是减少需要结合实际场景,还有可以通过设置 RDD 分区数来指定生成的文件的数量 重新分区有两种方法:repartition and coalesce 先看源代码 def repartition(self, numPartitions 阅读全文
posted @ 2019-12-09 15:55 努力的孔子 阅读(680) 评论(0) 推荐(0) 编辑
spark教程(19)-sparkSQL 性能优化之谓词下推
摘要:在 sql 语言中,where 表示的是过滤,这部分语句被 sql 层解析后,在数据库内部以谓词的形式出现; 在 sparkSQL 中,如果出现 where,它会现在数据库层面进行过滤,一般数据库会有索引,效率不会太低, sparkSQL 只读取过滤后的数据,大大减少数据量,提高效率,特别是提高 j 阅读全文
posted @ 2019-12-04 17:06 努力的孔子 阅读(843) 评论(0) 推荐(1) 编辑
spark教程(18)-sparkSQL 自定义函数
摘要:sparkSQL 也允许用户自定义函数,包括 UDF、UDAF,但没有 UDTF 官方 API class pyspark.sql.UDFRegistration(sparkSession)[source] register(name, f, returnType=None)[source] Reg 阅读全文
posted @ 2019-12-04 16:54 努力的孔子 阅读(1181) 评论(0) 推荐(0) 编辑
spark教程(八)-SparkSession
摘要:spark 有三大引擎,spark core、sparkSQL、sparkStreaming, spark core 的关键抽象是 SparkContext、RDD; SparkSQL 的关键抽象是 SparkSession、DataFrame; sparkStreaming 的关键抽象是 Stre 阅读全文
posted @ 2019-12-04 14:29 努力的孔子 阅读(27361) 评论(0) 推荐(1) 编辑
spark教程(16)-Streaming 之 DStream 详解
摘要:DStream 其实是 RDD 的序列,它的语法与 RDD 类似,分为 transformation(转换) 和 output(输出) 两种操作; DStream 的转换操作分为 无状态转换 和 有状态转换,且 tansformation 也是惰性的; DStream 的输出操作请参考 我的博客 S 阅读全文
posted @ 2019-11-28 15:09 努力的孔子 阅读(1703) 评论(0) 推荐(0) 编辑
spark教程(15)-Streaming
摘要:Spark Streaming 是一个分布式数据流处理框架,它可以近乎实时的处理流数据,它易编程,可以处理大量数据,并且能把实时数据与历史数据结合起来处理。 Streaming 使得 spark 具有了流式处理的能力,它为数据流式处理提供了高层抽象,底层仍然是 spark,所以它具有 spark 的 阅读全文
posted @ 2019-11-27 14:29 努力的孔子 阅读(883) 评论(0) 推荐(0) 编辑
spark教程(14)-共享变量
摘要:spark 使用的架构是无共享的,数据分布在不同节点,每个节点有独立的 CPU、内存,不存在全局的内存使得变量能够共享,驱动程序和任务之间通过消息共享数据 举例来说,如果一个 RDD 操作使用了驱动程序中的变量,spark 会将这个变量的副本和 task 一起发送给 executor 中的执行者,对 阅读全文
posted @ 2019-11-25 15:42 努力的孔子 阅读(1328) 评论(0) 推荐(0) 编辑
spark教程(13)-shuffle介绍
摘要:shuffle 简介 shuffle 描述了数据从 map task 输出到 reduce task 输入的过程,shuffle 是连接 map 和 reduce 的桥梁; shuffle 性能的高低直接影响了整个程序的性能和吞吐量,因为在 分布式 情况下,reduce task 需要跨节点去拉取其 阅读全文
posted @ 2019-10-24 10:19 努力的孔子 阅读(532) 评论(0) 推荐(0) 编辑
spark教程(12)-生态与原理
摘要:spark 是目前非常流行的大数据计算框架。 spark 生态 Spark core:包含 spark 的基本功能,定义了 RDD 的 API,其他 spark 库都基于 RDD 和 spark core SparkSQL:像 sql 一样操作数据 SparkStreaming:实时数据处理,像操作 阅读全文
posted @ 2019-10-22 09:02 努力的孔子 阅读(355) 评论(0) 推荐(0) 编辑
spark教程(10)-sparkSQL
摘要:sparkSQL 的由来 我们知道最初的计算框架叫 mapreduce,他的缺点是计算速度慢,还有一个就是代码比较麻烦,所以有了 hive; hive 是把类 sql 的语句转换成 mapreduce,解决了开发难的问题,但是 hive 的底层还是 mapreduce,仍然是慢; spark 也看到 阅读全文
posted @ 2019-10-19 09:21 努力的孔子 阅读(862) 评论(0) 推荐(0) 编辑