- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 Producer 性能调优公式及验证
背景Kafka的Producer有很多的参数可以影响到Producer的写性能. 大多数人应该会对这些参数比较困惑, 往往会混淆名称相似的参数; 即使能够区分每个参数的意义,也很难知道如何通过组合这些参数达到Producer的比较高的性能.本人通过研究源码加上实践和思考,总结出了一个计算Producer的吞吐的公式, 这个公式包含Producer端重要的调优的参数,可以帮助大家直观
2017-07-24 16:39:28
1222
1
原创 Kafka所有JMX的MBean对象列表
kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request=StopReplicakafka.network:type=RequestMetrics,name=ResponseQueueTimeMs,request=ListGroupskafka.server:type=DelayedOperationPurgator
2017-05-27 17:49:06
4313
5
原创 Kafka Consumer各版本分析总结
又是很久没有写技术文章了, 平时的东西会记录在自己的本地, 比较方便; 但是搬上Blog的过程需要重新的总结和回顾甚至排版, 真没有那么多时间弄这些. 进入正题. Kafka从0.7版本到现在的0.10版本, 经历了巨大的变化; 而其中, 首当其冲的是Consumer的机制.Kafka最早设计Consumer的时候, 大方向比较明确, 就是同时支持Subscribe功能和Messa
2017-04-07 15:07:33
3082
原创 架构及未来-第4章
领导力是: 影响一个组织或者个人达成某个特定目标的力量.领导力是对他人的一种影响, 而非一种职级上的区别. 所以每个人都可以具有领导能力,都可以作为领导, 这没有上下级阻碍在前面.领导力的概念模型: 领导力由多个因素共同决定: 天生的: 外表, 外箱型性格, 智商; 环境影响形成的: 魅力, 感召力, 性格, 仪表; 做出的成绩:
2017-02-02 11:29:21
527
原创 RDD Pipeline 源码图解
在面试候选人Spark相关知识点时, 我总喜欢问这么一个问题: 如果一个源数据有1亿行, 对这个源数据分别做map()操作和flatMap()操作, 过程是下面描述的那种流程, 为什么? 1 每读1条数据, 顺次执行map()和flatMap(), 再读取下一条; 2 对1亿条数据遍历做完map()后, 然后再重新读取一遍这1亿条数据, 做flat
2017-01-08 18:04:12
1584
原创 Spark Sort Based Shuffle源码详细解析----数据流篇----Shuffle Write流
Spark Shuffle这部分的内容比较多, 可以通过以下图示的角度对内容做细分:Spark Shuffle ----> 模块架构 ----> 模块交互关系及时序 ----> 数据流 ----> Hash Based Shuffle ----> Sort Based Shuffle ----> Sh
2017-01-05 13:02:38
1867
原创 Spark描述DAG的2种Task类型解析
Spark有2个类型的Task: ShuffleMapTask和ResultTask; 设想有: Stage1 ----shuffle--------> Stage2 -----shuffle------> Stage3 Stage3就是一个ResultTask, 因为是最终的action的执行;Stage2既是1个shuffle的数据读取者, 又是
2016-12-30 16:31:28
3432
原创 mapPartitions各部分执行流程解析
How-to: Translate from MapReduce to Apache Spark http://blog.cloudera.com/blog/2014/09/how-to-translate-from-mapreduce-to-apache-spark/这篇文章写得很好, 为从MR过渡到Spark提供了一个很好的指示.文章wen'zh中间关于如何模仿MR的cleanup
2016-12-30 12:15:14
1947
原创 trait底层原理分析
本文阐述了Scala语言中, trait的底层实现原理.trait中的变量是抽象变量************--------------------------trait(1):抽象变量---------------------------**************trait Property{ var name:String val value:String}cla
2016-12-23 15:53:11
728
原创 case class, object的底层实现
object和class的关系class O{ def func() { O.func(); println("No!") }}object O{ def func() { println("O!") }}都定义了func()方法,但是实际上不冲突;上述代码转化为java的结果:public final class O${
2016-12-23 14:34:22
602
原创 Spark-SQL和Hive on Spark, SqlContext和HiveContext
Hive on Spark和Spark SQL是不同的东西Hive on Spark: 是除了DataBricks之外的其他几个公司搞的,想让Hive跑在Spark上;Spark SQL: Shark的后继产品, 解除了不少Hive的依赖,且让SQL更加抽象通用化, 支持json,parquet等格式;关于Catelog和SchemaCatelog是目录的意思,从数据库方向
2016-12-22 15:27:53
8541
原创 对时间管理方法本质的理解和应用
自省很重要,隔几天就花点时间坐下来静一静,思考一下近来获得的知识,领悟的心得,应该改进的地方,要前进的方向, 纠正偏离的趋向.最近的一份工作,工作内容不甚理想。我承接了大量沟通和协作方面的事情,且从整体工作流程来看,我在流程中以一个单点的形式存在(我离职,部门会将为这种单点方式付出代价,懂HA的,应该都懂的),上下对接几十种需求,工作量是巨大的。从工作内容来说,我的
2016-12-22 14:05:36
1100
原创 详解New AggregationGroup
1 重要但隐藏的概念kylin的一些概念,文档中不会特别说明,但是如果你想了解Kylin的内部原理时,就必须需要理解。1.1 什么是Base Cuboid如一个需要通过kylin计算的hive表的维度为: [A, B, C], 那么[A,B,C]这个整体的维度组合, 就叫做Base cuboid.1.2 什么是includes数组一个Aggregation
2016-12-20 16:41:53
1759
转载 如何调试Kylin源码
1 Kylin运行的几个部分1.1 Tomcat配置系统大家知道, Kylin有一个比较友好的对外Web配置系统, 底层是基于tomcat的服务.1.2 Shell程序Kylin在运行一些与Hive, HBase的命令时,是使用shell命令直接执行的.1.3 分布式计算1.5之前, Kylin的底层系统使用的是MR; 1.5以后, Kylin支持了
2016-12-20 16:38:44
3263
1
原创 如何计算cuboid的数量
针对用户配置了各种Select Rules, 如何确定最终的cuboid数量呢? 知道了如何评估cuboid数量,也就可以评估出计算量的大小。设有: A, B, C, D, E, F, G, H, I 这9个维度, 那么cuboid的总数为2^9 = 512个.是怎么计算出来的呢? 两种方法: 1 C09 + C19 + C29 + C39 + C49 + ..... C99
2016-12-20 16:36:49
1318
原创 Spark Streaming对Exactly Once的实现原理
昨天看到了这篇文章: "为什么Spark Streaming + Kafka很难保证exactly once?" 看过后,对作者对Exactly Once的理解不敢苟同,所以想写这篇文章,阐述一下我对Spark Streaming保证Exactly Once语义的理解。 Exactly Once实现的整体性 首先一个很重要的道理是: 整个系统对exactly once的保证,从来都不
2016-09-21 11:27:06
5879
原创 多公钥下指定公钥进行ssh验证git权限
公司采用的是Atlassian的git平台,与github,gitlab类似,都可以在用户空间创建repo代码库。但是多人在同一台服务器上使用同一个work账号进行工作时,同一个public key(git的加公钥的ssh验证方式),只能被一个用户使用进行验证,也就是说: 机器的public key--用户绑定了. 解决方法: 1 重新生成一个新的公私钥对: s
2016-08-24 12:22:37
2078
原创 从另一个角度观察Spark Shuffle过程
大部分将Spark Shuffle的文章,都是从读写过程,与MapReduce对比等角度来阐述的,容易割裂开各模块在Shuffle过程中的关系及相互配合的联系。本人在读这部分源码的过程中,认为理清Applicatoin, Job, Stage, Task, ApplicationMaster, Executor这些模块间的协作,及如何完成Shuffle中间文件的定位,是比较重要的,可以让人有整
2016-08-06 19:27:09
886
原创 在IDEA中调试运行Spark SQL
昨晚想通过调试的方式阅读一下Spark SQL的源码, 用spark-sql命令行需要跨进程调试,太麻烦,于是尝试了一下在IDEA中运行和调试.结果不出所料,虽然最终可以在IDEA中成功运行了,不过中间还是遇到了不少问题,在这篇文章中总结一下.应用程序比较简单:case class Person(name: String, value: String)object SparkS
2016-08-04 11:07:35
7515
原创 YARN, MR History Server和Spark History Server
YARN, MR History Server和Spark History Server三者的区别:今天听到有人说, "Yarn自带的History Server"如何如何之类的。看来还有很多人把history server当做是为YARN的应用提供服务的功能。所以我想,还是有必要梳理一下YARN, YARN中的history server,以及spark的history server。
2016-08-02 00:23:07
4385
原创 Spark 源码调试一路通
现在越来越多的人加入到了学习 Spark 源码的队伍中来。但是如果只是单纯阅读代码,不动手亲自去跟踪和调试,往往无法很连贯地学习和理解,经常会出现无法看清代码的上下文跳转,无法理解代码含义等问题。这篇文章为大家介绍如何在真实环境中远程调试 Spark 的源码,为大家能够深入理解 Spark 核心原理铺平道路。环境先介绍一下这篇文章的环境。调试工具: IntelliJ IDE
2016-08-02 00:09:19
1086
1
原创 YARN 内存参数终极详解
很多朋友在刚开始搭建和使用 YARN 集群的时候,很容易就被纷繁复杂的配置参数搞晕了:参数名称相近、新老命名掺杂、文档说明模糊 。特别是那几个关于内存的配置参数,即使看好几遍文档也不能完全弄懂含义不说,配置时一不小心就会张冠李戴,犯错误。如果你同样遇到了上面的问题,没有关系,在这篇文章中,我就为大家梳理一下 YARN 的几个不易理解的内存配置参数,并结合源码阐述它们的作用和原理
2016-03-02 17:37:25
10219
2
原创 YARN环境中应用程序JAR包冲突问题的分析及解决
Hadoop框架自身集成了很多第三方的JAR包库。Hadoop框架自身启动或者在运行用户的MapReduce等应用程序时,会优先查找Hadoop预置的JAR包。这样的话,当用户的应用程序使用的第三方库已经存在于Hadoop框架的预置目录,但是两者的版本不同时,Hadoop会优先为应用程序加载Hadoop自身预置的JAR包,这种情况的结果是往往会导致应用程序无法正常运行。下面从我
2016-03-02 16:43:12
2560
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人