Hadoop
文章平均质量分 72
MrTitan
这个作者很懒,什么都没留下…
展开
-
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 评论 -
hadoop hbase metric名全解释
和同事花了1天时间把hadoop和hbase的所有metric全部解释了一遍,记录一下:系统参数监控metricsload_one 每分钟的系统平均负载load_fifteen 每15分钟的系统平均负载load_five 每5分钟的系统平均负载boottime 系统原创 2013-05-28 15:29:49 · 11497 阅读 · 6 评论 -
Hadoop cdh4.2.0配置 ShortCircuitRead
Hadoop在读数据时提供了一种优化:如果读的block文件在本地时,hdfs的client会直接读本地data.dir内的block文件,而不是从datanode的网络端口读取。这个优化在mapreduce时会对性能有很大的提升,因为一般来说mapper都会和读取数据在一台server上。ShortCircuitRead功能在chd4.1.0上有bug,除了hdfs用户其他用户比如hbase原创 2013-03-21 18:10:43 · 2227 阅读 · 0 评论 -
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 · 7583 阅读 · 4 评论 -
hadoop核心逻辑shuffle代码分析-map端
首先要推荐一下:http://www.alidata.org/archives/1470阿里的大牛在上面的文章中比较详细的介绍了shuffle过程中mapper和reduce的每个过程,强烈推荐先读一下。 不过,上文没有写明一些实现的细节,比如:spill的过程,mapper生成文件的partition是怎么做的等等,相信有很多人跟我一样在看了上面的文章后还是有很多疑问,我也是带着疑问原创 2013-03-24 21:01:30 · 4173 阅读 · 3 评论 -
实时系统HBase读写优化--大量写入无障碍
在使用hbase过程中发现在写入hbase的数据量很大时,经常发生写不进去的情况。而我们基于hbase的应用是对实时性要求很高的,一旦hbase不能读写则会大大影响系统的使用。下面将记录hbase写优化的过程。1.禁止Major Compaction在hbase进行Major Compaction时,该region将合并所有的storefile,因此整个region都不可读,所有对原创 2013-03-11 18:14:00 · 19228 阅读 · 6 评论 -
hadoop 4.1.0 cdh4读文件源码分析
上篇文章分析了hadoop写文件的流程,既然明白了文件是怎么写入的,再来理解读就顺畅一些了。 同样的,本文主要探讨客户端的实现,同样的,我依然推荐读一下http://www.cnblogs.com/duguguiyu/archive/2009/02/22/1396034.html,读文件的大致流程如下:不论是文件读取,还是文件的写入,主控服务器扮演的都是中介的角色。客户端把自己的需原创 2013-02-16 23:40:32 · 2624 阅读 · 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 hbase的Log Appender
要想很好的监控hadoop集群的状态,hadoop打印的log是很重要的。我们的思路是使用部门研发的log appender将hadoop的数据append到我们自己的central logging数据库中(其实就是存在hbase中)。说起来简单,实际操作起来也花了一天多的时间,下面记录下整个过程。首先要明确hadoop使用的log机制。hadoop使用了slf4j,log原创 2013-02-06 20:02:15 · 5378 阅读 · 2 评论 -
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 · 1196 阅读 · 0 评论 -
如何使用mapred export import删除hbase表数据
背景:hbase的删除功能比较弱,只能单行删除,而且必须指定rowkey。遇到问题:今天遇到一个需求,用户导入了大量错误的数据,数据的rowkey开头都是110102,需要删除这些垃圾记录,用hbase shell删除实在不科学。解决方案:用hbase的mapreduce工具进行export和import,在export过程中filter掉不需要的数据。首先原创 2013-01-11 16:37:14 · 2659 阅读 · 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 · 2074 阅读 · 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 · 1320 阅读 · 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 Get流程源码分析
在debug region一文中http://blog.csdn.net/mrtitan/article/details/8209994已经说到Hbase中每个region都是个独立的个体,本文会分析一次get操作在region层面是如何实现的。HBase系统架构:client的一次get操作到了regionserver后,regionserver会根据rowkey的范围选择对应的re原创 2012-12-02 18:55:58 · 1528 阅读 · 0 评论 -
Hadoop启动脚本全解析,不能再全了![bed]
在工作过程中,经常需要调整一些hadoop的参数配置,所以经常会遇到各种各样的问题。比如改了个配置怎么突然namenode起不来啦,加了个jar包怎么让hadoop的jvm加载啊,如何设定log目录啦等等,每次都需要仔细的查一遍启动脚本才能找到原因,费时又费力,因此专门总结了一下以便不时之需。 cloudera的hadoop的启动脚本写的异常复杂和零散,各种shell脚本分散在系统的各个角原创 2013-06-17 23:34:23 · 11229 阅读 · 0 评论