- 博客(16)
- 资源 (10)
- 收藏
- 关注
原创 Hbase源码分析之org.apache.hadoop.hbase.client包
Scan:设置scan记录的条件,buffer size,cache size等ResultScanner:提供scan的接口,ClientScaner:客户端 ResultScanner的实现,数据分布在多个region之间的,就依次读取。用法如下: HTableInterface tbl = null; tbl = table.getTable("table
2013-04-30 16:27:54 3015
原创 HBase源码分析之org.apache.hadoop.hbase.catalog包
org.apache.hadoop.hbase.catalogCatalogTracker:主要是对-ROOT和-META表的跟踪,验证他们的有效性,可以获得到-ROOT和-META region的连接;通过start和stop方法,开启和关闭了对zookeeper中 root-region-server 节点、unassigned节点中的META 表的region的变化的通知跟踪的服
2013-04-29 19:32:12 2146
原创 Storm Topology的生命周期过程分析
这里从提交一个topology和kill一个topology的过程来对topology的生命周期进行分析1、提交topology,通过StormSubmitter.submitTopology提交一个topology之后,客户端、Nimbus、Supervisor的行为如下,Client:Client通过Nimbus的Thrift接口上传jar到Nimbus的Inbox目录中,
2013-04-27 15:30:47 4689 1
原创 Storm0.8版本 Tuple的发送和接收实现机制分析
最近review了一下Storm的源码,0.8版本和之间版本的变化比较大0.8版本之前的Task,worker中每一个spout/bolt的线程称为一个task。在storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为executor。目前最新的0.8.0版本里面,基本的对应关系是这样的:worker -> 进程,一个w
2013-04-27 13:37:22 2370 1
原创 关于mysql source恢复数据过程中,select操作hang
用mysqldump主数据库到文件中,数据库中表的数据比较大,后在备库上用source命令进行恢复,mysqldump -u root -p dlsp >/DATA/mysql/dump/dump_dlsp.sqlsource 在恢复数据过程中,对要恢复的表进行select操作,该操作就hang了。用show processlist\G查看了一下;*************
2013-04-25 16:48:44 2789
原创 hadoop运维系列笔记之FlumeNG往Hadoop写数据超时
最近在测试环境下,把NameNode节点更换了一台机器,并增加了一些数据节点。在FlumeNG往hadoop集群写数据的过程中,有些节点报以下类似的错误2013-04-24 13:25:50,180 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: PacketResponder 0 for block blk_7250572864
2013-04-24 15:33:30 4526
原创 Flume-ng-1.3.0 spooling source的方式增加了对目录的递归检测的支持
原有的spooling source的方式只支持一级目录的文件变动的检测,修改了一下源码支持对目录的递归检测,可以支持多级目录下的文件变动SpoolingFileLineReader类增加以下下方法 /** * add by yangbutao * * @param files * @param dir * @param filter */ pri
2013-04-22 17:31:19 5630 3
原创 zookeeper在mysql主库选举切换中的应用
为了保证可用性,传统的关系型数据库(mysql)通常采用一主多备的方式,当主宕机后,切换到备机。有多种方式可以做到主备自动失效检测切换,比如传统的HA软件heartbeat,keepalived等等,采取虚拟IP的方式对客户端透明;这里主备自动切换方案没有采取VIP的方式,而是用zookeeper对数据库集群进行管理,可以做到主备失效检测切换,主库的选举,比如考虑到mysql对多核利用
2013-04-18 15:10:52 14035 5
原创 linux IO层以及相关的IO系统调用回顾
Linux下,I/O处理的层次可分为4层:1、系统调用层,应用程序使用系统调用指定读写哪个文件,文件偏移是多少等等2、文件系统层,写文件时将用户态中的buffer拷贝到内核态下,并由cache缓存该部分数据 文件系统最上方时VFS,它是应用层和具体文件系统之间的接口,屏蔽不同文件系统的差异,以一种统一的方式给上层调用。3、块层,管理块设备I/O队列,对I/O请
2013-04-13 15:11:04 3379
原创 ganglia监控的安装
以前安装过ganglia的监控,过程比较复杂,最近在新的集群环境下部署了监控,这里做个笔记。ganglia监控的架构图如下,相关的原理这里不多说了。1、配置yum的源这里利用公司的yum源,增加wxlab136.repo到/etc/yum.repos.d目录下[Server]name=10.1.1.136#baseurl=ftp://10.1.1.136/pub/P
2013-04-13 12:25:46 2768
原创 回顾一下TCP/IP连建立断开,以及常见大量的TIME_WAIT和CLOSE_WAIT状态原因
连接建立和断开过程: CLOSED: 表示初始状态。LISTEN: 这个也是非常容易理解的一个状态,表示服务器端的某个SOCKET处于监听状态,可以接受连接了。SYN_RCVD: 这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你
2013-04-13 09:16:10 3996 1
原创 关于NUMA架构的使用
当前大多数的PC机都是NUMA架构的,numa架构可以参考http://www.fmslib.com/fmsman/doc/numa.htmlNUMA的架构的内存分配有以下四种:1、default,总是分配在进程运行的节点上的内存,这是默认值2、bind,强制把进程绑定到指定的CPU节点,进行内存分配3、interleave,在所有节点上交织分配4、preferred,在指
2013-04-13 08:10:39 2050
原创 MapReduce输出数据到oracle中的支持的一个BUG
前段时间有组员对mapreduce输出关系型数据库进行了验证,发现不支持输出到oracle中,但是对mysql支持的没有问题,用的版本是hadoop 1.0.4。经过调试,发现对oracle的支持在生成查询语句的语法时有个小的问题,语法不正确。需要修改DBOutputFormat中的constructQuery方法 query.append(");");//去掉其中的; ==>quer
2013-04-07 09:18:17 2535
转载 总结一下排序算法
1. 概述排序算法是计算机技术中最基本的算法,许多复杂算法都会用到排序。尽管各种排序算法都已被封装成库函数供程序员使用,但了解排序算法的思想和原理,对于编写高质量的软件,显得非常重要。本文介绍了常见的排序算法,从算法思想,复杂度和使用场景等方面做了总结。2. 几个概念(1)排序稳定:如果两个数相同,对他们进行的排序结果为他们的相对顺序不变。例如A={1,2,1,2,1}这里排序
2013-04-06 14:45:20 3767 1
原创 RabbitMQ和kafka从几个角度简单的对比
业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比,在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。1)在架
2013-04-04 10:17:29 25953
原创 MapReduce中的cpu sys突然升到的抖动问题
最近在测试过程中,发现在做map reduce数据分析的过程中,cpu sys部分会偶然的升到,甚至到达50%,抖动的比较厉害。节点的磁盘的IO吞吐量比较大,每秒达到150M,大部分是tasktracker读取本地节点DFS的数据,默认情况下,读取数据是系统调用每次从硬盘上读取4K大小的数据到内核空间中,后由内核copy到应用程序空间,是什么导致内核部分消耗大部分的时间。经过大量的各方面的
2013-04-03 20:48:39 3293
TCP.IP.Sockets.in.Java.2nd.Edition
2010-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人