- 博客(22)
- 收藏
- 关注
原创 kafka + flume + hdfs + zookeeper + spark 测试环境搭建
最近由于项目需要, 搭建了一个类似线上环境的处理流数据的环境用的是CDH 版本5.9.xhdfs组成: 2 namenode HA, 6 datanodekafka: 3 台kafka serverzookeeper: 3台flume: 1台spark: 6台 每台32G内存数据流程是有远端终端向我们数据处理服务器(Gengo)发送, 再由Gengo向kaf...
2017-07-20 11:28:28
362
原创 YARNRunner的运行原理总结
之前看了那么些源码, 大致对整个Yarn的运行过程有了一个了解, 总结一下首先每个Yarn集群都有一个Resource Manager 以及若干个NodeManagerResource Manager主要有两个对象, 一个就是Scheduler, 还有一个就是Applications Manager ASMScheduler有FIFO和Fair等, 主要作用就是根据Node...
2016-10-25 17:52:27
890
原创 Hadoop中Yarnrunner里面submit Job以及AM生成 至Job处理过程源码解析(下)
中间隔了国庆, 好不容易才看明白了MRAppMaster如何启动其他container以及如何在NodeManager上面运行Task的。上回写到了AM启动到最后其实是运行的MRAppMaster的main方法, 那么我们就从这里开始看他是如何启动其他container的, 首先看一下main方法:[code="java"] public static void main(Stri...
2016-10-11 13:53:11
402
原创 Hadoop中Yarnrunner里面submit Job以及AM生成 至Job处理过程源码解析 (中)
继续上一篇文章, 那时候AM Allocation已经生成, 就等着NM 的心跳来找到有资源的NM, 再去启动, 那么假设一个NM 心跳, 然后走的就是RMNodeImpl的状态机的RMNodeEventType.STATUS_UPDATE事件, 看一下事件定义:[code="java"] private static final StateMachineFactory stateMac...
2016-09-27 13:25:42
376
Hadoop中Yarnrunner里面submit Job以及AM生成 至Job处理过程源码解析 (上)
参考了一篇文章, 才看懂了Yarnrunner的整个流程:http://blog.csdn.net/caodaoxi/article/details/12970993网上很多文章写的不是很清楚, 有些到AM的启动的时候就错了, 结合最近俩星期看的Yarnrunner部分的源码 我把我的理解写下来, 打算分三部分上: SubmitJob到schduler为ApplicationMas...
2016-09-24 16:46:45
376
原创 看Yarnrunner的辅助文章
http://blog.csdn.net/caodaoxi/article/details/12970993http://www.cnblogs.com/shenh062326/p/3586510.html这两篇文章不错, 这两天在看Yarnrunner的整个流程, 回头看完了后写几篇文章出来记录一下...
2016-09-19 15:42:58
164
Hadoop MapReduce Job执行过程源码跟踪
前面一片文章写了MR怎么写, 然后添加的主要功能怎么用, 像partitioner, combiner等, 这周看了一下MR执行的时候Job提交以及Task运行的过程, 记录一下整个源码执行步骤, 量太大就不写详细了, 只是一步一步跟踪下去, 具体是在做什么就稍微解释一下, 跟多还是要靠自己看上下文理解了, 首先Job是通过job.waitForCompletion(true) 来提交的, 里面是...
2016-09-07 15:07:09
256
Hadoop的Map端sort, partition, combiner以及Group
Mapreduce在执行的时候首先会解析成KV键值对传送到Map方法里面, 在Mapper类的run里面有这么一段代码:[code="java"]while (context.nextKeyValue()) { map(context.getCurrentKey(), context.getCurrentValue(), context); }[/cod...
2016-09-05 15:15:54
427
原创 Hadoop 的WordCount
之前花了点时间玩spark, 现在开始学一下hadoop前面花了几天时间搭建Hadoop环境和开发环境, 具体就不多说了, 今天开始了第一个Map/Reduce程序, 经典的wordcount。使用的Hadoop版本是2.6.3, 所以我会用最新的API, 大部分都是在org.apache.hadoop.mapreduce这个包下面的。 (mapred是老的api)我的...
2016-08-30 19:41:33
96
源码跟踪executor如何写数据到blockmanager, 以及如何从blockmanager读数据
之前看了Job怎么submit 以及最后run的, 然后也看了blockmanager是怎么工作的, 那么接下来就是要看spark是如何从blockManager中读写数据的。 首先每个计算都是在对应机器的executor的task上面运行的, 那么计算完后也是从executor端开始写入的, 根据之前文章的解析, 我们知道最后Task是在executor的TaskRunner中执行的,...
2016-08-10 19:41:36
320
Spark中Blockmanager相关代码解析
前一段时间看了如何划分stage以及如何提交Job, 最后把结果返回到Driver端的过程, 中间也涉及到了通过blockManager来获取Data等过程。 这两天花了点时间看了一下blockmanager是如何工作的, 在这里记录一下。看了一下源代码, 这里有几个主要的对象:1.BlockManager2.BlockManagerMaster3.BlockManagerMa...
2016-08-04 19:47:33
305
原创 Spark在submitStage后如何通过clustermanager调度执行task到Driver接收计算结果的代码解析...
前文: http://humingminghz.iteye.com/blog/2314269前面先看到了从action入口到如何切分stage, 随后submit stage的过程, 那么既然stage被submit了, 接下来就应该是cluster manager去分配各个任务到prefer location的executor上面去执行了. submitstage的方法, 最终会...
2016-08-01 14:08:22
205
Spark中saveAsTextFile至stage划分和job提交的源代码分析
之前看了Spark Streaming和Spark SQL, 自己还花了一些时间去玩了些machine learning的算法, 像 线性回归, kmeans, 协同过滤等。 现在回过头来, 打算看一下spark core部分代码, 就先找了下saveAsTextFile这个方法作为入口, 看一下是怎么保存文档到hadoop中,并且怎么切分stage以及提交Task。 中间也会触碰到DAG...
2016-07-29 14:20:39
260
原创 SparkSQL DF.agg 执行过程解析
在上一篇文章前, 我一直没看懂为什么下面的代码就能得到max或者avg或者min的值:[code="scala"]malePPL.agg(Map("height" -> "max", "sex" -> "count")).show[/code]数据是身高 性别 这样的一个组合大概有几百万个值刚开始是使用reducebykey去做计算, 后来发现网上有agg里面直
2016-07-19 10:21:34
1249
SparkSQL SQL语句解析过程源代码浅析
前两天一直在忙本职工作, 最近才有时间闲下来看了一下SparkSql的执行过程, 记录一下。主要是通过sqlContext.sql() 这个方法作为一个入口。 在这之前先得知道一句SQL传到 sql()这个方法里面后要经历好几次转换, 最终生成一个executedPlan去执行。总的过程分下面几步:1.通过Sqlparse 转成unresolvedLogicplan...
2016-07-15 19:34:35
307
SparkStreaming从启动Receiver到收取数据生成RDD的代码浅析
前面一片文章介绍了SocketTextStream 是如何从blockmanager里面获取block组成blockRDD的, 地址:http://humingminghz.iteye.com/admin/blogs/2310003那么接下来关注一下block是怎么存到blockmanager里面的。还是从receiverTracker.start() 入手, 会执行Recei...
2016-07-08 17:54:45
290
原创 Sparkstreaming是如何获取数据组成Dstream的源码浅析
前面一篇文章介绍了SparkStreaming是如何不停的循环submitJob的, 连接:http://humingminghz.iteye.com/admin/blogs/2308711既然已经知道了Spark Streaming如何循环处理, 那么我们就要看一下处理过程中是怎么获取到Dstream的, 用简单的socketTextStream 来做一个列子, 入口:[co...
2016-07-08 11:23:48
456
原创 SparkSQL 使用SQLContext读取csv文件 分析数据 (含部分数据)
前两天开始研究SparkSQL, 其主要分为HiveContext以及SQLContext目前打算先学习SQLContent, 因为Hive环境还没搭好, :oops: :oops: 一步一步来 先把spark的原理弄明白后再去研究hadoop的组件。 这篇文章主要是讲如何使用SQLContext去读取csv文件, 然后根据表头注册表, 进行数据分析要通过SQLCon...
2016-07-06 11:24:30
2730
SparkStreaming是如何完成不停的循环处理的代码浅析
一直很好奇Sparkstreaming的ssc.start是怎么做到不停的一直定时循环处理数据的, 看了一下源码, 大致明白了整个过程, 记录分享一下。入口为StreamingContext的start方法:在构造StreamingContext的时候 state就初始化为INITIALIZED , 并且定义了一个JobScheduler scheduler代码里面很明白,...
2016-07-02 12:26:57
776
1
SparkStreaming 对Window的reduce的方法解析
在sparkstreaming中对窗口范围进行reduce主要有下面四个方法, 其他方法都是直接或者间接调用下面的方法来获取结果在这之前, 最好了解我之前一篇博客内容:http://humingminghz.iteye.com/blog/2308138对非(K,V)形式的RDD 窗口化reduce:1.reduceByWindow(reduceFunc, windowDur...
2016-06-30 11:57:14
170
Sparkstreaming reduceByKeyAndWindow(_+_, _-_, Duration, Duration) 的源码/原理解析
最近在玩spark streaming, 感觉到了他的强大。 然后看 StreamingContext的源码去理解spark是怎么完成计算的。 大部分的源码比较容易看懂, 但是这个reduceByKeyAndWindow(_+_, _-_, Duration, Duration)还是花了不少时间。 主要还是由于对spark不熟悉造成的吧, 还好基本弄明白了。 总的来说SparkSt...
2016-06-29 19:50:23
293
原创 关于Eclipse开发环境下 Spark+Kafka 获取topic的时候连接出错
林林总总玩了Spark快一个月了, 打算试一下kafka的消息系统加上Spark Streaming 进行实时推送数据的处理。简单的写了一个类作为kafka的producer, 然后SparkStreaming的类作为consumerProducer 的run方法产生数据:[code="java"]public void run() { KafkaProd...
2016-06-28 17:20:40
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人