自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何删除Docker Swarm中的Node

如何删除Docker Swarm中的Node好吧,我又回来了。。。断了那么久主要是因为懒。。。现在有空会更新一些docker相关的知识。本文主要是总结下在工作中需要管理Docker Swarm中的Node遇到的问题:如何删除一个Swarm中的Node。如何删除Docker Swarm中的NodeDocker node rmDocker node demoteDocker swarm leave

2017-02-22 18:25:30 5633 2

原创 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 5897 4

原创 使用Springboot和Hystrix构建API Gateway

使用Hystrix构建API Gateway随着MicroService架构越来越深入人心,如何构建一个高性能,错误容忍的API Gateway成了一个很多人都遇到的问题。Netflix开源了Hystrix来帮助我们实现API Gateway。这里提供一个Springboot+Hystrix的例子: https://github.com/qmhu/SpringHystrixSample关于微服务可

2016-06-02 11:25:10 16026

原创 Spring探秘--开发自己的Spring框架之IOC

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-05-24 22:11:42 1584

原创 如何开发自己的HttpServer-NanoHttpd源码解读

现在作为一个开发人员,http server相关的内容已经是无论如何都要了解的知识了。用curl发一个请求,配置一下apache,部署一个web server对我们来说都不是很难,但要想搞清楚这些背后都发生了什么技术细节还真不是很简单的。所以新的系列将是分享我学习Http Server的过程。NanoHttpd是Github上的一个开源项目,号称只用一个java文件就能创建一个http

2014-07-20 23:04:59 19450 3

原创 Linux 几条强大命令的学习

最近今天陆续学习了几条强大的Linux命令,记录下学习资料:find+xargs+grep:http://www.cnblogs.com/skynet/archive/2010/12/25/1916873.htmlawk:处理列格式文件利器http://coolshell.cn/articles/9070.htmlsed:处理行式文件利器http:/

2013-09-04 16:06:01 2126

原创 Hadoop启动脚本全解析,不能再全了![bed]

在工作过程中,经常需要调整一些hadoop的参数配置,所以经常会遇到各种各样的问题。比如改了个配置怎么突然namenode起不来啦,加了个jar包怎么让hadoop的jvm加载啊,如何设定log目录啦等等,每次都需要仔细的查一遍启动脚本才能找到原因,费时又费力,因此专门总结了一下以便不时之需。 cloudera的hadoop的启动脚本写的异常复杂和零散,各种shell脚本分散在系统的各个角

2013-06-17 23:34:23 11171

原创 hadoop hbase metric名全解释

和同事花了1天时间把hadoop和hbase的所有metric全部解释了一遍,记录一下:系统参数监控metricsload_one            每分钟的系统平均负载load_fifteen        每15分钟的系统平均负载load_five           每5分钟的系统平均负载boottime            系统

2013-05-28 15:29:49 11435 6

原创 HBase 大吞吐系统HTablePool和HTable使用技巧

这2周主要将项目中写hbase的模块中原来的异步hbaseclient改写成了使用hbase原生的HTable对象。大概总结下改写过程中和hj,xingchao发现的问题和解决方法。 1.HTablePool的基本使用方式:由于HTable对象不是线程安全的,因此HBase提供HTablePool来支持多线程写入hbase,多线程同时从HTablePool中取出HTable并写入是安全

2013-05-07 23:19:00 10297 1

原创 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 7528 4

原创 hadoop核心逻辑shuffle代码分析-map端

首先要推荐一下:http://www.alidata.org/archives/1470阿里的大牛在上面的文章中比较详细的介绍了shuffle过程中mapper和reduce的每个过程,强烈推荐先读一下。 不过,上文没有写明一些实现的细节,比如:spill的过程,mapper生成文件的partition是怎么做的等等,相信有很多人跟我一样在看了上面的文章后还是有很多疑问,我也是带着疑问

2013-03-24 21:01:30 4118 3

原创 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 2212

原创 实时系统HBase读写优化--大量写入无障碍

在使用hbase过程中发现在写入hbase的数据量很大时,经常发生写不进去的情况。而我们基于hbase的应用是对实时性要求很高的,一旦hbase不能读写则会大大影响系统的使用。下面将记录hbase写优化的过程。1.禁止Major Compaction在hbase进行Major Compaction时,该region将合并所有的storefile,因此整个region都不可读,所有对

2013-03-11 18:14:00 19135 6

原创 hadoop 4.1.0 cdh4读文件源码分析

上篇文章分析了hadoop写文件的流程,既然明白了文件是怎么写入的,再来理解读就顺畅一些了。 同样的,本文主要探讨客户端的实现,同样的,我依然推荐读一下http://www.cnblogs.com/duguguiyu/archive/2009/02/22/1396034.html,读文件的大致流程如下:不论是文件读取,还是文件的写入,主控服务器扮演的都是中介的角色。客户端把自己的需

2013-02-16 23:40:32 2571 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 2820 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 5337 2

原创 hbase cookbook 笔记

关于hbasetable 迁移:http://blog.csdn.net/jingling_zy/article/details/7554676需要注意 被拷贝表的region个数等于mapper的个数 如果找到最热的region:hbase cookbook :page 174Hot region—write diagnosisAs the data keeps grow

2013-02-06 18:45:41 1113

原创 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 1183

原创 从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 1621

原创 如何使用mapred export import删除hbase表数据

背景:hbase的删除功能比较弱,只能单行删除,而且必须指定rowkey。遇到问题:今天遇到一个需求,用户导入了大量错误的数据,数据的rowkey开头都是110102,需要删除这些垃圾记录,用hbase shell删除实在不科学。解决方案:用hbase的mapreduce工具进行export和import,在export过程中filter掉不需要的数据。首先

2013-01-11 16:37:14 2645

原创 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 7510 1

原创 从MergeSort看HBase--一

最近在研究HBase,发现很多归并排序的影子,很有意思的是这个在数据结构教材里一笔带过的算法却在分布式计算领域经常出现。再一次证明了我们的教材也许已经很落伍了。。。为什么会用到归并排序纳?我们知道分布式系统中排序是基础,数据很容易在单台机器(或者节点、模块)中做到有序,但分布式环境需要在整个集群中达到有序。因此自然牵涉到把多个有序列合并为一个有序列的过程,这个过程就是mergesort登场的时

2013-01-01 13:39:54 1905

原创 Java文件Queue实现

这是一个新的系列,将会记录在工作之外写的一些小的程序,而且是有一定难度并且实用的小代码,相信会给自己和给读者一些收获。这个系列的原因是有的时候回想自己的工作历程经常想不起曾经实现过哪些有意思的东西,总结提炼过哪些模型,这个系列将会记录这一切。 在前段时间的工作中曾经有个需求是要对一个内存中的Queue做持久化。组内的大牛使用了文件完成了一个FileBasedQueue,很有意思,把代码

2012-12-30 20:26:21 4373

原创 修改HBase表的TTL

工作中需要修改已经使用表的TTL,遇到了一些问题,做下记录首先,进入hbase shell1.disable表是必须的disable 'table'2.输入alter 'table',shell弹出一堆提示Here is some help for this command:Alter column family schema; pass table name and

2012-12-13 18:02:32 19227 1

原创 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 4820

原创 HBase 0.1.0 Flush流程源码分析

这篇文章将会分析和总结Flush流程的实现。Flush是LSM-Tree重要的实现步骤,对应理解hbase非常关键。简单来说,flush就是把内存中的数据flush到磁盘上,那么具体是怎么实现的纳?首先,regionserver在适当的时机调用region.flushcache。步骤如下:lock.readLock().lock(); //

2012-12-04 22:11:11 1306

原创 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 1215

原创 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 1513

原创 HBase 0.1.0 数据存储基本结构详解

首先,还是拿出一张Hbase自带的结构图:HBase采用了LSM-Tree来解决数据存储问题。其中有几个核心数据结构:HRegion:一个独立的数据存储单元。存储从startkey-endkey的所有数据。HRegion中会根据每个columnfamily生成一个HStore对象HStore:存储了hbase中每个columnfamily的数据记录。数据结构上主要包括一个Memst

2012-12-02 18:26:26 1487

原创 HBase 如何Debug region

要想很好的理解HBase的代码,Debug Hbase的源码是最简单的方式,但很可惜的是HBase不能在Windows上运行(除非cygwin),即使用cygwin配置起来也很麻烦。而且即使用cygwin,HBase中最核心最关键的代码region部分也很难debug。不过,本文提供的方法可以轻松在本地创建region对象,然后就可以直接调用方法进行debug啦。首先说下原理:

2012-11-30 11:17:22 2341 1

原创 HBase SplitSize 到底是多少

大家都知道HBase的一个重要特性就是split,split通常情况下是自动执行的,而trigger条件就是region的size到达一定大小。那么到底这个大小是多少纳? 笔者google了一些文章,不少文章说是256M,但也有一些说是1G。那么到底是多少纳? HBase是支持设置Table级别的splitsize的,HTableDescriptor类里读取FileSize的代码如

2012-11-23 22:08:27 2242

原创 HBase 0.1.0版本源码分析--Master启动流程

接触HBase2个月了,公司使用了0.92版本,大概浏览过代码,对于我等菜鸟来说过于复杂,入门甚难,故找来最原始的版本来看看,顺便瞻仰下当年大神的原迹。 原始版本可以在github上找到,在以后的几篇文章中笔者也将仔细的分析HBase中几个比较重要类的逻辑。 Master初始化1.查看是hdfs文件系统,如果是则等待hdfs退出safemode this.fs = File

2012-11-22 23:30:03 2032

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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