- 博客(10)
- 资源 (4)
- 收藏
- 关注
转载 Spark算子:RDD基本转换操作(mapPartitions、mapPartitionsWithIndex)
1、mapPartitions函数定义:def mapPartitions[U](f: (Iterator[T]) => Iterator[U], preservesPartitioning: Boolean = false)(implicit arg0: ClassTag[U]): RDD[U] 该函数和map函数类似,只不过映射函数的参数由RDD中的每一个元素变成了R
2016-04-21 17:55:44
1329
原创 Spark Broadcast源码分析
本博文的主要内容包括:1、Broadcast功能描述2、Broadcast创建过程3、Broadcast读写原理一、功能描述Broadcast是指将数据从一个节点发送到其他节点,供其计算使用,是spark在计算过程中非常常用的方式,通常使用方式,包括共享配置文件,map数据集,树形数据结构等,为能够更好更快速为TASK任务使用相关变量。但是Broadcast不适合存放过大的数据
2016-03-25 09:01:31
667
原创 利用Spark将DataFrame、Hive数据写入Oracle
本篇博文的主要内容:1、分析Spark读写Oracle方法2、DataFrame数据写入Oracle3、Hive数据写入OracleDataFrame是在Spark1.3.0中推出的新的api,它借鉴了R语言DataFrame的一些优点,这让spark具备了处理大规模结构化数据的能力。作为Spark初学者,在通过学习使用Spark读写RDBMS数据的过程中,遇到了一系统的问
2016-03-23 15:18:47
8187
1
原创 Spark Rpc通信源码分析
Spark 1.6+推出了以RPCEnv、RPCEndpoint、RPCEndpointRef为核心的新型架构下的RPC通信方式。其具体实现有Akka和Netty两种方式,Akka是基于Scala的Actor的分布式消息通信系统,Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
2016-03-22 21:01:07
1483
原创 Spark资源调度机制流程
1、SparkContext实例化,调用createTaskScheduler来创建TaskSchedulerImpl和SparkDeploySchedulerBackend;2、在SparkContext实例化的时候,调用TaskSchedulerImpl的start,在该start方法中调用SparkDeploySchedulerBackend的start方法;3、在SparkDepl
2016-03-20 14:58:40
713
原创 Spark性能优化第六季-Shuffle性能调优
一:性能优化之数据本地性1、数据本地性对分布式系统的性能而言是一件最为重要的情况之一,程序运行本身饮食代码和数据两部分,单机版本一般情况下很少考虑数据本地性的问题(因为数据在本地),但是对于单机版本的程序,由于数据本性有PROCESS_LOCAL和NODE_LOCAL之分, 所以,尽量让数据处于PROCESS_LOCAL级别。Spark作为分布式系统,更加注重数据本地性,在Spark中数据本地
2016-03-20 14:38:37
650
原创 Spark性能优化第五季-数据本地性调优
一:Spark性能调优之序列化1、序列化最重要的原因是内存空间有限(减少GC的压力,最大化避免Full GC的产生,因为一旦产生Full GC,则整个Task处于停止状态!)、减少磁盘IO的压力、减少网络IO的压力;2、什么时候会必要的产生序列化和反序列化?发送磁盘IO和网络通信的时候会序列化和反序列化,更为重要的考虑序列化和反序列化的时候有另外两种情况:1)Persist(Checkpo
2016-03-20 14:35:57
4511
原创 Spark性能优化第二季-Task、数据倾斜及网络性能优化
一:Task性能优化1、慢任务的性能优化:可以考虑减少每个Partition处理的数据量,同时建议开启spark.speculation(在/conf目录下查找)2、尽量减少Shuffle,例如,要尽量减少groupByKey的操作,因为groupByKey会要求通过网络copy所有的数据(这就是所谓的shuffle)。优先考虑使用reduceByKey。因为会首先reduce local
2016-03-20 14:35:12
573
原创 Spark性能优化第四季-序列化
一:Spark程序数据结构的优化1、Java的对象:对象头占用16个字节(包括指向对象的指针等元数据信息),如果对象中只有一个Int的property,则此时会占用20个字节,也就是说对象的元数据占用了大部分的空间。所以在封装数据的时候尽量避免使用对象!例如说使用JSON格式来封装数据;2、Java中基本的数据类型会自动的封装操作,例如int会自动变成Integer,这会额外增加对象头的空
2016-03-20 14:33:10
617
原创 配置Spark history server
问题描述:启动sbin/start-history-server.sh,jps下无historyserver进程,查看日志,显示如下错误。原因分析:1)查看$SPARK_HOME/conf,发现未配置spark-default.conf;2)将spark.fs.history.logDirectory配置到conf/spark-defaults.conf目录里,发现并不起作用
2016-03-07 11:34:01
1354
Myeclipse开发MR使用的jar包插件hadoop-eclipse-plugin-2.6.0.jar
2017-12-19
JAVA并发编程实践
2016-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人