随笔 - 232  文章 - 1  评论 - 24  阅读 - 45万
11 2016 档案
Spark之SQL解析(源码阅读十)
摘要:如何能更好的运用与监控sparkSQL?或许我们改更深层次的了解它深层次的原理是什么。之前总结的已经写了传统数据库与Spark的sql解析之间的差别。那么我们下来直切主题~ 如今的Spark已经支持多种多样的数据源的查询与加载,兼容了Hive,可用JDBC的方式或者ODBC来连接Spark SQL。 阅读全文
posted @ 2016-11-27 14:55 松伯 阅读(5336) 评论(0) 推荐(0) 编辑
Spark BlockManager的通信及内存占用分析(源码阅读九)
摘要:之前阅读也有总结过Block的RPC服务是通过NettyBlockRpcServer提供打开,即下载Block文件的功能。然后在启动jbo的时候由Driver上的BlockManagerMaster对存在于Executor上的BlockManager统一管理,注册Executor的BlockMana 阅读全文
posted @ 2016-11-27 10:33 松伯 阅读(1678) 评论(0) 推荐(0) 编辑
Spark Job的提交与task本地化分析(源码阅读八)
摘要:我们又都知道,Spark中任务的处理也要考虑数据的本地性(locality),Spark目前支持PROCESS_LOCAL(本地进程)、NODE_LOCAL(本地节点)、NODE_PREF、RACK_LOCAL(本地机架)、ANY(任何)几种。其他都很好理解,NODE_LOCAL会在spark日志中 阅读全文
posted @ 2016-11-26 04:32 松伯 阅读(759) 评论(0) 推荐(0) 编辑
Spark Shuffle数据处理过程与部分调优(源码阅读七)
摘要:shuffle。。。相当重要,为什么咩,因为shuffle的性能优劣直接决定了整个计算引擎的性能和吞吐量。相比于Hadoop的MapReduce,可以看到Spark提供多种计算结果处理方式,对shuffle过程进行了优化。 那么我们从RDD的iterator方法开始: 我们可以看到,它调用了cach 阅读全文
posted @ 2016-11-25 00:43 松伯 阅读(1773) 评论(0) 推荐(0) 编辑
Spark常用函数(源码阅读六)
摘要:源码层面整理下我们常用的操作RDD数据处理与分析的函数,从而能更好的应用于工作中。 连接Hbase,读取hbase的过程,首先代码如下: 我们来一点一点解析整个过程。 1、val configuration = HBaseConfiguration.create() 这个用过hbase的伙伴们都知道 阅读全文
posted @ 2016-11-24 10:22 松伯 阅读(1657) 评论(0) 推荐(0) 编辑
Spark数据传输及ShuffleClient(源码阅读五)
摘要:我们都知道Spark的每个task运行在不同的服务器节点上,map输出的结果直接存储到map任务所在服务器的存储体系中,reduce任务有可能不在同一台机器上运行,所以需要远程将多个map任务的中间结果fetch过来。那么我们就来学习下shuffleClient。shuffleClient存在于每个 阅读全文
posted @ 2016-11-23 22:18 松伯 阅读(1992) 评论(0) 推荐(0) 编辑
SparkConf加载与SparkContext创建(源码阅读四)
摘要:sparkContext创建还没完呢,紧接着前两天,我们继续探索。。作死。。。 紧接着前几天我们继续SparkContext的创建: 接下来从这里我们可以看到,spark开始加载hadoop的配置信息,第二张图中 new出来的Configuration正是hadoop的Configuration。同 阅读全文
posted @ 2016-11-22 21:58 松伯 阅读(695) 评论(0) 推荐(0) 编辑
SparkSQL(源码阅读三)
摘要:额,没忍住,想完全了解sparksql,毕竟一直在用嘛,想一次性搞清楚它,所以今天再多看点好了~ 曾几何时,有一个叫做shark的东西,它改了hive的源码。。。突然有一天,spark Sql突然出现,如下图: = =好了,不逗了,言归正传。。。那么一条sql传统数据库会是怎么解析的呢? 传统数据库 阅读全文
posted @ 2016-11-21 23:34 松伯 阅读(919) 评论(0) 推荐(0) 编辑
SparkConf加载与SparkContext创建(源码阅读二)
摘要:紧接着昨天,我们继续开搞了啊。。 1、下面,开始创建BroadcastManager,就是传说中的广播变量管理器。BroadcastManager用于将配置信息和序列化后的RDD、Job以及ShuffleDependency等信息在本地存储。紧接着blockManager的创建后创建。如下: 随之我 阅读全文
posted @ 2016-11-21 21:54 松伯 阅读(695) 评论(0) 推荐(0) 编辑
SparkConf加载与SparkContext创建(源码阅读一)
摘要:即日起开始spark源码阅读之旅,这个过程是相当痛苦的,也许有大量的看不懂,但是每天一个方法,一点点看,相信总归会有极大地提高的。那么下面开始: 创建sparkConf对象,那么究竟它干了什么了类,从代码层面,我们可以看到我们需要setMaster啊,setAppName啊,set blabla啊。 阅读全文
posted @ 2016-11-20 16:38 松伯 阅读(4284) 评论(2) 推荐(1) 编辑
Hbase数据导入导出
摘要:平时用于从生产环境hbase到导出数据到测试环境。 导入数据: 导出数据: 阅读全文
posted @ 2016-11-20 15:04 松伯 阅读(1609) 评论(0) 推荐(0) 编辑
Spark代码调优(一)
摘要:环境极其恶劣情况下: import org.apache.spark.SparkContext import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, Row, SQLContext} import org.ap 阅读全文
posted @ 2016-11-18 00:21 松伯 阅读(21873) 评论(0) 推荐(0) 编辑
Spark性能测试报告与调优参数
摘要:1、代码中尽量避免group by函数,如果需要数据聚合,group形式的为rdd.map(x=>(x.chatAt(0),x)).groupbyKey().mapValues((x=>x.toSet.size)).collection() 改为 rdd.map(x=>(x.chatAt(0),x) 阅读全文
posted @ 2016-11-14 01:16 松伯 阅读(2400) 评论(0) 推荐(0) 编辑
Spark shuffle详细过程
摘要:有许多场景下,我们需要进行跨服务器的数据整合,比如两个表之间,通过Id进行join操作,你必须确保所有具有相同id的数据整合到相同的块文件中。那么我们先说一下mapreduce的shuffle过程。 Mapreduce的shuffle的计算过程是在executor中划分mapper与reducer。 阅读全文
posted @ 2016-11-13 14:05 松伯 阅读(7854) 评论(0) 推荐(0) 编辑
Spark 1.6以后的内存管理机制
摘要:Spark 内部管理机制 Spark的内存管理自从1.6开始改变。老的内存管理实现自自staticMemoryManager类,然而现在它被称之为”legacy”. “Legacy” 默认已经被废弃掉了,它意味着相同的代码在1.5版本与1.6版本的输出结果将会不同。需要注意的是,出于兼容性的考虑,你 阅读全文
posted @ 2016-11-13 10:29 松伯 阅读(1691) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示