![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
文章平均质量分 79
MrTitan
这个作者很懒,什么都没留下…
展开
-
HBase 如何Debug region
要想很好的理解HBase的代码,Debug Hbase的源码是最简单的方式,但很可惜的是HBase不能在Windows上运行(除非cygwin),即使用cygwin配置起来也很麻烦。而且即使用cygwin,HBase中最核心最关键的代码region部分也很难debug。不过,本文提供的方法可以轻松在本地创建region对象,然后就可以直接调用方法进行debug啦。首先说下原理:原创 2012-11-30 11:17:22 · 2355 阅读 · 1 评论 -
实时系统HBase读写优化--大量写入无障碍
在使用hbase过程中发现在写入hbase的数据量很大时,经常发生写不进去的情况。而我们基于hbase的应用是对实时性要求很高的,一旦hbase不能读写则会大大影响系统的使用。下面将记录hbase写优化的过程。1.禁止Major Compaction在hbase进行Major Compaction时,该region将合并所有的storefile,因此整个region都不可读,所有对原创 2013-03-11 18:14:00 · 19226 阅读 · 6 评论 -
hadoop核心逻辑shuffle代码分析-reduce端
接上篇文章,下面是reduce端的过程分析。大概介绍下reduce的实际作用。以mapreduce经常做的groupby为例,map是将输入按group by的key排序,reduce就是做各种类型的聚合,比如sum,max,mean等。因此,可想而知,reduce的输入必须是按照groupby排序的,所以自然,reduce的输入必须汇聚所有map的输入,这也是reduce框架最复杂的原创 2013-04-01 23:34:40 · 7581 阅读 · 4 评论 -
hadoop核心逻辑shuffle代码分析-map端
首先要推荐一下:http://www.alidata.org/archives/1470阿里的大牛在上面的文章中比较详细的介绍了shuffle过程中mapper和reduce的每个过程,强烈推荐先读一下。 不过,上文没有写明一些实现的细节,比如:spill的过程,mapper生成文件的partition是怎么做的等等,相信有很多人跟我一样在看了上面的文章后还是有很多疑问,我也是带着疑问原创 2013-03-24 21:01:30 · 4172 阅读 · 3 评论 -
HBase 大吞吐系统HTablePool和HTable使用技巧
这2周主要将项目中写hbase的模块中原来的异步hbaseclient改写成了使用hbase原生的HTable对象。大概总结下改写过程中和hj,xingchao发现的问题和解决方法。 1.HTablePool的基本使用方式:由于HTable对象不是线程安全的,因此HBase提供HTablePool来支持多线程写入hbase,多线程同时从HTablePool中取出HTable并写入是安全原创 2013-05-07 23:19:00 · 10389 阅读 · 1 评论 -
hadoop hbase metric名全解释
和同事花了1天时间把hadoop和hbase的所有metric全部解释了一遍,记录一下:系统参数监控metricsload_one 每分钟的系统平均负载load_fifteen 每15分钟的系统平均负载load_five 每5分钟的系统平均负载boottime 系统原创 2013-05-28 15:29:49 · 11494 阅读 · 6 评论 -
Hadoop启动脚本全解析,不能再全了![bed]
在工作过程中,经常需要调整一些hadoop的参数配置,所以经常会遇到各种各样的问题。比如改了个配置怎么突然namenode起不来啦,加了个jar包怎么让hadoop的jvm加载啊,如何设定log目录啦等等,每次都需要仔细的查一遍启动脚本才能找到原因,费时又费力,因此专门总结了一下以便不时之需。 cloudera的hadoop的启动脚本写的异常复杂和零散,各种shell脚本分散在系统的各个角原创 2013-06-17 23:34:23 · 11228 阅读 · 0 评论 -
Spring探秘--开发自己的Spring框架之IOC
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-05-24 22:11:42 · 1601 阅读 · 0 评论 -
hadoop 4.1.0 cdh4读文件源码分析
上篇文章分析了hadoop写文件的流程,既然明白了文件是怎么写入的,再来理解读就顺畅一些了。 同样的,本文主要探讨客户端的实现,同样的,我依然推荐读一下http://www.cnblogs.com/duguguiyu/archive/2009/02/22/1396034.html,读文件的大致流程如下:不论是文件读取,还是文件的写入,主控服务器扮演的都是中介的角色。客户端把自己的需原创 2013-02-16 23:40:32 · 2619 阅读 · 1 评论 -
Hadoop 2.1.0-cdh4写文件源码分析
本文将剖析写入hadoop的java接口是如何实现的写入文件的。本文不会重点剖析namenode和datanode段是如何处理,而是专注在客户端的处理上。 背景知识:简单介绍写文件client-namenode-datanode流程(单纯了解hadoop此文足矣。。。):http://www.cnblogs.com/duguguiyu/archive/2009/02/22/1396034.原创 2013-02-10 17:29:37 · 2837 阅读 · 1 评论 -
hadoop 0.1.0版本namenode代码分析
在对hbase有了一点了解后最近开始学习hadoop的相关源码,首先看了下某高人的hadoop源码分析系列http://caibinbupt.iteye.com/blog/monthblog/2008-11,看了三十几篇停了,有些看不懂,虽然代码解释的比较细但类实在太多,想一下子理清思路比较难。果断使用学习hbase时的方法,把hadoop最原始的化石版本0.1.0搞来看看,本文将介绍nameno原创 2013-02-04 23:29:04 · 1195 阅读 · 0 评论 -
HBase 0.1.0 数据存储基本结构详解
首先,还是拿出一张Hbase自带的结构图:HBase采用了LSM-Tree来解决数据存储问题。其中有几个核心数据结构:HRegion:一个独立的数据存储单元。存储从startkey-endkey的所有数据。HRegion中会根据每个columnfamily生成一个HStore对象HStore:存储了hbase中每个columnfamily的数据记录。数据结构上主要包括一个Memst原创 2012-12-02 18:26:26 · 1506 阅读 · 0 评论 -
HBase 0.1.0 Put流程源码分析
put的过程相对比较简单,因为根据LSM-Tree的理论,写入操作会写入到内存中,然后再batch的写入磁盘。HBase的实现也是如此。首先,从客户端的batch操作中提取出所有的put操作并放在一个sortedmap中(localput):Text row = b.getRow(); long lockid = obtainRowLock(row); lon原创 2012-12-02 23:52:22 · 1225 阅读 · 0 评论 -
HBase 0.1.0 Flush流程源码分析
这篇文章将会分析和总结Flush流程的实现。Flush是LSM-Tree重要的实现步骤,对应理解hbase非常关键。简单来说,flush就是把内存中的数据flush到磁盘上,那么具体是怎么实现的纳?首先,regionserver在适当的时机调用region.flushcache。步骤如下:lock.readLock().lock(); //原创 2012-12-04 22:11:11 · 1318 阅读 · 0 评论 -
HBase 0.1.0版本源码分析--Master启动流程
接触HBase2个月了,公司使用了0.92版本,大概浏览过代码,对于我等菜鸟来说过于复杂,入门甚难,故找来最原始的版本来看看,顺便瞻仰下当年大神的原迹。 原始版本可以在github上找到,在以后的几篇文章中笔者也将仔细的分析HBase中几个比较重要类的逻辑。 Master初始化1.查看是hdfs文件系统,如果是则等待hdfs退出safemode this.fs = File原创 2012-11-22 23:30:03 · 2072 阅读 · 0 评论 -
HBase SplitSize 到底是多少
大家都知道HBase的一个重要特性就是split,split通常情况下是自动执行的,而trigger条件就是region的size到达一定大小。那么到底这个大小是多少纳? 笔者google了一些文章,不少文章说是256M,但也有一些说是1G。那么到底是多少纳? HBase是支持设置Table级别的splitsize的,HTableDescriptor类里读取FileSize的代码如原创 2012-11-23 22:08:27 · 2261 阅读 · 0 评论 -
HBase 0.92.1 Scan 源码详细分析
从这篇文章开始终于要讨论比较正常版本的hbase了---0.92.1~~ Scan是hbase提供的非常重要的功能之一,我们的hbase分析系列就从这儿开始吧。 首先,我们有一些background的知识需要了解:1.HBase是如何区分不同记录的,大家可以参考http://punishzhou.iteye.com/blog/1266341,讲的比较详细2.Region,原创 2012-12-12 23:36:45 · 4860 阅读 · 0 评论 -
hbase scan和bloom filter的讨论
在工作中大家对hbase的bloom filter是否能作用于scan展开讨论。在没讨论前,我还真没想过这个问题,想当然的以为bloom filter肯定可以为scan剔除掉不需要的hfile。但Google了下才发现事实不是如此!首先,学习了以下2篇文章:hbase对bf的理解和使用http://zjushch.iteye.com/blog/1530143hbase的主要原创 2013-01-09 21:13:18 · 7558 阅读 · 1 评论 -
从MergeSort看HBase 二
接着前一篇 从MergeSort看HBase 一:http://blog.csdn.net/mrtitan/article/details/8457080 在hbase中scan是最核心的算法,从直接的读操作get,scan到一些hbase的大操作compact、split、flush都是使用各种各样的scanner实现的,可以说region的一切读操作都是scan。scan的实现可以参考原创 2013-01-15 23:22:17 · 1633 阅读 · 0 评论 -
Docker Swarm原理大解密
Docker Swarm原理大解密Docker Swarm是docker公司2014年出品的基于docker的集群管理调度工具,官方文档地址:https://docs.docker.com/swarm/overview/。Swarm能够把多台主机构建成一个docker的集群,用户可以只和swarm api操作来管理多个主机上的docker,再结合上Overlay的网络实现简单的容器调度和互访。Doc原创 2017-03-12 20:26:18 · 5924 阅读 · 4 评论