加载中
Spark kryo序列化

Spark中序列化的目的:序列化后数据更小,更便于传输和存储, 但是会耗用更多的cpu资源。 Spark中数据共有两种序列化方式: java :(默认) 兼容性好, 但是慢、较大。 Kryo :快, 较小, 但是...

08/19 22:13
9
Spark Core 实现排序的三种方式

一、普通的实现方式 val data: RDD[String] = sc.parallelize(Array("aa 200 3000", "bb 200 4000", "cc 999 3000", "dd 10 20000")) data.map(x => { val splits: Array[String] = x.split(...

08/18 23:06
4
Spark on yarn 资源调优

Spark作业在运行的时候应该分配足够多的资源, 在一定范围内, 增加资源和性能提升是成正比的。 提交到Yarn上时, 相关配置: --driver-memory Driver的内存 --executor-memory Executor的内存...

08/18 22:59
5
Spark的宽依赖与窄依赖

窄依赖(Narrow Dependency): 一个父RDD的Partition只能被子RDD的某一个Partition使用一次 宽依赖(Wide Dependency):发生了Shuffle。一个父RDD的Partition只能被子RDD的某一个Partition使用...

08/18 13:18
1
Spark persist 持久化

持久化算子可以将计算结果保存起来, 不必重新计算。 相关源码 持久化算子cache, persist, unpersist源码如下: /** * Persist this RDD with the default storage level (`MEMORY_ONLY`). *...

Spark Application

名称 解释 Application 被提交的Spark作业。由一个Driver和多个Executor构成。 Driver program 运行main主函数并创建SparkContext的进程。 Cluster manager 获取资源的额外服务 Worker node ...

08/18 10:33
3
Spark on yarn

yarn 的执行流程 Spark Application Spark与MapReduce的区别 MapReduce是基于进程的, mapTask、reducerTask 都是进程。当task完成了, 这个进程就结束了。 Spark是基于线程的, 多个task并行...

Spark 累加器 Accumulator

Spark的累加器Accumulator中, Executor内只能做add操作, 只有Driver才能读取它的值。 val doubleAcc: DoubleAccumulator = sc.doubleAccumulator("doubleAcc") val collAcc: CollectionAccu...

08/17 16:32
6
Spark History Server

当Spark程序运行时, 会开启一个web服务显示该程序的详细信息, 但是程序运行完过后便不再能访问这个页面了。 开启Spark的HistoryServer后, 可以记录并显示这些信息。 配置 编辑 spark-defa...

08/17 16:03
3
Spark Streaming 及相关算子

外部数据源 如果使用了基于receiver的数据源, 则receiver会占用一个进程来接受数据, 如果运行的环境上只有一个cpu核心, 那么SparkStreaming程序无法正常运行。 相关transformation算子 tr...

08/16 12:06
2
Spark添加数据至Hive分区表

准备工作: 创建hive分区表 create table login_origin( created_date string, event_id string, dev_mac string, domain string, session_id string, dev_name string, country string, la...

08/15 21:24
1
Spark Streaming与kafka对接

使用KafkaUtil来实现SparkStreaming的对接。 KafkaUtil共有两个版本: spark-streaming-kafka-0-8 spark-streaming-kafka-0-10 kafka version 0.8.2.1 or higher 0.10.0 or higher Offset C...

08/15 21:09
4
在IDEA本地Spark连接Hive

步骤 复制hive-site.xml、hdfs-site.xml文件至项目的资源文件夹。 maven中引入spark-hive_2.11以及访问元数据数据库所需要的依赖如mysql-connector-java <dependency> <groupId>org.apache.s...

解决Spark读取HDFS小文件的问题

若Spark读取HDFS文件夹时, 其中的小文件过多会降低程序性能,也给HDFS带来压力。 当Spark读取文件时, 会为每个文件的数据分配一个Partition, 可以使用coalesce算子减少rdd中的分区。 首先...

Spark中map、mapPartitions、foreach、foreachPartitions算子

map 与 mapPartitions /** * Return a new RDD by applying a function to all elements of this RDD. */ def map[U: ClassTag](f: T => U): RDD[U] = withScope { val cleanF = sc.clean(f)...

07/23 20:00
30
Spark利用Broadcast实现Join避免Shuffle操作

在Spark中, 诸如ReduceByKey,GroupByKey等操作会触发Shuffle, 影响性能。 本文提供了一种利用广播Broadcast, 实现了join操作, 避免了Shuffle。 正常的join操作 val sc = new SparkCont...

07/22 12:59
21
Spark Streaming调优 kafka

当使用Spark Streaming的Direct方式接受Kafka数据时, 如果kafka中的数据过多, 会导致spark数据积压, 无法准时完成作业, 甚至OOM。 Spark的运行指标及调优的目标 共两个运行指标:调度延迟...

07/11 14:57
26
kafka + spark streaming 确保不丢失不重复消费的offset管理方法

在使用Spark Streaming消费kafka中的数据时, 官方推荐将offset信息存储在kafka中 stream.foreachRDD { rdd => val offsetRanges = rdd.asInstanceOf[HasOffsetRanges].offsetRanges // some...

07/04 10:29
43

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部