自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除