`
lc_koven
  • 浏览: 353632 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表

2012,新的起点

    算下来在javaeye上己经有3年多的历史了,这也是伴随着我毕业后从0起步的it经历。回过头看看这些文章,大多都是零碎的记录,或许还是废话,于我,很重要,于读者,并不清楚。     javaeye的模式不错,在国内还是营造了一个良好的技术氛围,虽然还不能说是做到极致,并且经常宕机,和国外网站也有较大差距,但是访问速度很好地兼容了天朝的带宽特色。人生在于折腾,春节在linode上搭了个人站点,虽然fan墙(这都是敏感词)很重要,但更重要的是我想从新年起,系统地记录我的人生,职业人生,以及游戏人生。今年就要满29岁,大学特别是研究生浪费了不少时光,导致我的愚钝。回头看看,走了很多弯路,但我仍 ...
这一篇与技术无关,整理了一下2011败在自己身上的户外用品,为2012年的行走做次铺垫。 2011败的物品清单: 衣物类 冲锋裤一条 抓绒衣一件 神衣一件 冲锋衣一件(春夏秋用) 登山袜六双 登山鞋两双 辅助衣物类 80L背包一个 40L背包一个 户外腰包一个 雪套一对 魔术头巾三个 户外手套一双 户外帽子一顶 求生装备类 医药包一个 救生绳一根 强光手电一个 普通手电一个 头灯一个 望远镜一个 户外GPS一个 指南针一个 瑞士军刀一把 军用打火机一个 露营装备类 地垫一张 防潮垫一张 帐篷一顶 冬季睡袋一个 夏季睡袋一个 充气枕头一个 马灯(帐篷灯)一个 其它 专用杂物袋一个 保温水壶一个 ...

lease引发的血案

今天线上出现了一个故障惊出一身冷汗,经过查明原来是lease引发的问题。不过查问题的过程让我们耽误了很多修复故障的时间,很是不爽。 起因:datanode和regionserver以及master同时挂掉 现象:datanode重启后,regionserver重启不久,多台regionserver相继即挂掉,log显示: org.apache.hadoop.hbase.regionserver.wal.HLog: Could not append. Requesting close of hlog java.io.IOException: Reflection at org.apache. ...
    zookeeper作为分布式集群广泛使用的应用程序协调服务集群。它的特点就不说了,很多人分析过。前段时间微博上说到zk有一些问题,其实只是某些场合下zk使用需要小心,这里列举一下: zk不适合做大数据量的存储,简单来说就是不适合做公用存储。原因很简单,每个数据要同步到所有server才返回,既慢,而且消耗带宽,client还容易阻塞。所以这种应用对zk来说太“重”了。 watch机制是paxos所没有的,是zk为了应用而自己加上的。这个功能有许多陷阱,最根本的原因就是zk的watch事件是单向传递的,并不保证通知一定能到达客户端,因此网络不稳定或者client挂掉都会导致丢失watch事 ...
todd的ppt是本次hadoop world大会上的亮点。之前知道他让hdfs随机读性能提升了2-3倍。具体他们做了哪些改进呢?这里详细记录一下原理。(都是ppt上翻译过来再加上理解的) IO cache上的改进: 1 增加了预读,避免大量随机seek,对m ...
    上一篇介绍了bookkeeper的安装与测试。这一篇介绍一下bookkeeper的结构与原理。 这是官网给出的bookkeeper结构:     bookie就是bookkeeper中的节点,ledger则是log file。由于bookkeeper允许数据复制以保障数据的安全,因此会有一组bo ...
    随着zookeeper 3.4.0 release,bookkeeper被从zk中分离成为了一个独立的项目。这是一个轻量级的项目,代码并不复杂,可以想见未来很可能被广泛用在各种应用系统中,以提供基于日志的高可靠共享消息存储。     bookkeeper是一个基于zookeeper实现的分布式共享消息存储服务,它提供高可靠性、高并发性,以及很高的读写性能。     向bookkeeper写数据时,先写log,然后再写内存,内存中的数据则定期flush到磁盘上。     这篇blog提供一个简单的入门手册,下篇blog进行一些简单的分析。 安装(以trunk为例): 下载https:// ...
    今天一个线上集群出现莫名奇妙不能写入数据的bug,log中不断打印如下信息: 引用2011-11-09 07:35:45,911 INFO org.apache.hadoop.hbase.regionserver.HRegion: Blocking updates for 'IPC Server handler 32 on 60020' on region xxx,333-2395000000032117,1320773734010.9a7ae39b5a42ccfa1fa6118aa8f79195.: memstore size 128.0m is >= than blocking ...
本文仅供记录一下程序心得:     很多人会有这样一个需求:将一个hdfs集群上的数据写入另一个hdfs集群所在的hbase数据库。通常情况下两个hdfs集群的版本差距并不大,这样的程序会很容易写。但有时会跨大版本。比如作者所在的厂子,数据都在基于hadoop0.19.2版本修改的hdfs集群上,要将这样的数据导入版本为0.20.2+的hdfs集群,就不能使用同一个hadoop jar包来完成了。如何实现呢?     最简单的办法就是把src集群的数据导到本地,然后起另一个进程将本地数据传到des集群上去。     不过这有几个问题: 效率降低 占用本地磁盘空间 不能应付实时导数据需求 ...
    Delete类的接口有两个方法:deleteColumns和deleteColumn,它们的区别从method注释里可以看到: deleteColumns:Delete all versions of the specified column with a timestamp less than or equal to the specified timestamp. deleteColumn:Delete the latest version of the specified column.     实现上,前者只是传给server一个时间标签,表示这行数据的最后删 ...
    splitlog是保证在重启或rs挂掉后,恢复hlog的重要手段。master需要将hlog写到各个region目录下的recovered.edits目录中,然后由各台rs自行replay这个目录来恢复数据。这个过程中,master会启动一个读线程和多个写线程,一边读到内存中,一边将内存队列中的数据写到各个目录中去。     当master将.logs下的数据写到recovered.edits后,会把.logs目录下的文件mv到.oldlogs中。如果splitlog期间master挂掉,下次启动时会重复以上过程。但是杯具的是,master并不会等待recovered.edits写完以后 ...
    执行以下case可以见到root或meta被加载两次: 1 kill掉root和meta表所在的rs 2 start该台rs 3 立即再次kill掉这台rs 4 立即再次start该台rs     原因:     当ROOT表和META表所在的server如果挂掉了,不管是重启这台rs还是等待它自然超时,master都会触发ServerShutdownHandler。此时如果这台server再次挂掉,master将再次触发ServerShutdownHandler。而ServerShutdownHandler中会加载所有的region,其中root和meta可能被加载两次(其它reg ...
    hbase的稳定性是近期社区的重要关注点,毕竟稳定的系统才能被推广开来,这里有几次稳定性故障和大家分享。     第一次生产故障的现象及原因     现象: 1 hbase发现无法写入 2 通过hbck检测发现.META.表中出现空洞,具体log是:;Chain of regions in table ... is broken; edges does not contain ... 3 此时读写失败     修复方法:直接使用check_meta.rb重新生成.META.表并修补空洞,但是会引起数据丢失。因为引起该空洞的原因是某个region的parent和daughter都被删 ...
    首先要清楚reginserver中内存是如何使用的。     reginserver中内存总体分成三部分:blocksize专供读使用的内存,memstore供读写使用的内存,其它内存。     其中前两者的大小在配置中分别通过hfile.block.cache.size以及hbase.regionserver.global.memstore.upperLimit来控制,两者的大小之和被hbase硬编码为不可以大于等于0.8。所以如果发生了oom,那么一定是这里的其它内存使用过多造成的。     其它内存包括哪些呢?最主要的部分是接收临时数据、flush时产生的snapshot,以 ...
    hbase提供了导出表的方案,将指定的表导出到HDFS或本地,这样方便了备份或数据转移。     最快的方式是通过mapreduce来完成这件事,需要在hbase的conf中添加mapred-site.xml: <property> <name>mapred.job.tracker</name> <value>192.168.0.1:9001</value> </property> <property> <name>hadoop.tmp.dir</name> ...
Global site tag (gtag.js) - Google Analytics