- 博客(240)
- 资源 (6)
- 收藏
- 关注
转载 HBase连接池 -- HTablePool被Deprecated以及可能原因是什么
说明:最近两天在调研HBase的连接池,有了一些收获,特此记录下来。本文先将官方文档(http://hbase.apache.org/book.html)9.3.1.1节翻译,方便大家阅读,然后查阅了关键类HConnectionManager的Developer API(http://hbase.apache.org/devapidocs/index.html) 做了一些总结。
2016-04-22 11:10:31 1900
转载 Storm常见模式------TimeCacheMap
Storm常见模式------TimeCacheMapStorm中使用一种叫做TimeCacheMap的数据结构,用于在内存中保存近期活跃的对象,它的实现非常地高效,而且可以自动删除过期不再活跃的对象。TimeCacheMap使用多个桶buckets来缩小锁的粒度,以此换取高并发读写性能。下面我们来看看TimeCacheMap内部是如何实现的。1. 实现原理桶链表:
2016-01-22 11:13:51 1029
转载 Storm源码分析汇总
Storm FeaturesStorm 简介Storm Topology的并发度Storm - Guaranteeing message processingStorm - Transactional-topologiesTwitter Storm – DRPCStorm 多语言支持 Storm StarterStorm st
2015-04-30 11:35:25 1739
原创 Zero Copy 简介
最近在看Kafka的设计原理,kafka在数据传输时采用了zero copy技术:使用Zero copy方式在内核层直接将文件内容传送给网络Socket,避免应用层数据拷贝,减小IO开销。关于Zero copy,更多请点击Efficient data transfer through zero copy下面是一篇关于zero copy的文章,通俗易懂.http://blog
2015-03-19 09:26:36 4171 1
原创 HBase StoreFile Compaction
Store File的合并策略比较复杂,涉及多个参数,合并策略的好坏,直接影响HBase的读写性能. 发现这篇博文:http://blog.csdn.net/azhao_dn/article/details/8867036 对Compaction描述的言简意赅:hbase为了防止小文件(被刷到磁盘的menstore)过多,以保证保证查询效率,hbase需要在必要的时候将这些小的stor
2015-01-26 13:55:29 1268 1
原创 线上Spark处理Bzip2引出Hadoop Bzip2线程安全问题
我们的Hadoop生产环境有两个版本,其中一个是1.0.3,为了支持日志压缩和split,我们添加了hadoop-1.2中关于Bzip2压缩的feature. 一切运行良好。为了满足公司对迭代计算的需求(复杂HiveSQL,广告推荐算法,机器学习 etc), 我们构建了自己的Spark集群,最初是Standalone Mode,版本spark-0.9.1,支持Shark。上线后,问题接踵而
2015-01-14 10:17:02 1900
转载 我读过最好的Epoll模型讲解
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要
2015-01-12 16:26:40 26107 3
原创 一次JobTracker拥堵问题排查过程
Hadoop版本 1.0.3问题描述:随着每日MR作业数目渐增,用户反映提交作业时经常阻塞,也就是JobTracker发生了拥堵。这种情况开始频繁出现,我们调大JobTracker端的RPC Handler线程个数,并定时对JobTracker的栈信息进行分析,如果RPC Handler线程全部被BLOCKED住了,就Dump出栈信息,并及时发出报警。原因及解决办法:经过分析几次抓
2015-01-12 15:44:49 1041
原创 Hadoop0.21内存泄漏问题:数据块映射管理的一个bug
我们的HDFS生产环境是Hadoop-0.21,机器规模200台,block在7KW左右. 集群每运行几个月,NameNode就会频繁FGC,最后不得不restart NameNode. 因此怀疑NameNode存在内存泄漏问题,我们dump出了NameNode进程在重启前后的对象统计信息。07-10重启前:num #instances #byt
2015-01-09 10:49:02 1389
原创 关于HashCode
有许多人学了很长时间的Java,但一直不明白hashCode方法的作用, 首先,想要明白hashCode的作用,你必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否
2015-01-07 13:29:13 621
原创 HBase内存结构之跳表数据结构浅析
最近学习HBase源码时发现HRegion在sotre管理上用到了跳表数据结构ConcurrentSkipListMap:ConcurrentSkipListMap有几个ConcurrentHashMap不能比拟优点:1、ConcurrentSkipListMap的key是有序的。2、ConcurrentSkipListMap支持更高的并发。
2015-01-07 12:46:47 3330 1
原创 多线程开发之Object.wait() notify() notifyall()
参考文献:object.wait()和object.notify()和object.notifyall()正文wait、notify和notifyAll方法是Object类的final native方法。所以这些方法不能被子类重写,Object类是所有类的超类,因此在程序中有以下三种形式调用wait等方法。wait();//方式1:this.wait();//方式
2015-01-07 10:40:09 852
转载 HBase中MVCC的实现机制及应用情况
本文转载自:http://www.cnblogs.com/panfeng412/p/mvcc-implementation-mechanism-in-hbase.htmlMVCC(Multi-Version Concurrent Control),即多版本并发控制协议,广泛使用于数据库系统。本文将介绍HBase中对于MVCC的实现及应用情况。MVCC基本原理在介绍MVCC概念之
2015-01-07 09:45:51 873
转载 MapReduce:详解Shuffle(copy,sort,merge)过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里
2014-12-29 11:51:47 1300
原创 HBase源码解析(二) HMaster主要类成员解析
本文基于HBase-0.94.1分析HMaster的主要类成员.HMaster是HBase主/从集群架构中的中央节点。通常一个HBase集群存在多个HMaster节点,其中一个为Active Master,其余为Backup Master.HMaster的主要类成员如下:1.ZooKeeper侦听这些类都继承自ZookeeperListener. /**************
2014-12-08 17:52:11 2178
原创 HBase源码解析(一) HMaster启动流程
本文基于HBase-0.94.1分析HMaster的启动流程。通常,我们是通过命令行启动HMaster:1.HMaster命令行启动概述 HMaster的启动流程可以概括为: 将用户所要执行的"hbase-daemon.sh start master" 操作封装成一个HMasterCommandLine对象(一个tool实例),交给org.apache.hadoop.util.To
2014-12-08 11:25:46 3067 2
转载 对HBase bloom Filter的一些讨论
在工作中大家对hbase的bloom filter是否能作用于scan展开讨论。在没讨论前,我还真没想过这个问题,想当然的以为bloom filter肯定可以为scan剔除掉不需要的hfile。但Google了下才发现事实不是如此!首先,学习了以下2篇文章:hbase对bf的理解和使用http://zjushch.iteye.com/blog/1530143
2014-12-02 02:21:55 1652
转载 深入理解HBase Memstore
MemStore是HBase非常重要的组成部分,深入理解MemStore的运行机制、工作原理、相关配置,对HBase集群管理以及性能调优有非常重要的帮助。HBase Memstore首先通过简单介绍HBase的读写过程来理解一下MemStore到底是什么,在何处发挥作用,如何使用到以及为什么要用MemStore。图一:Memstore Usage in HBase
2014-12-02 01:54:02 819
原创 HDFS write流程与代码分析(Hadoop 2.0)
1 ReplyWrite操作是HDFS最基本的操作之一,一般是先create一个文件然后write内容。这篇文章主要讲用户调用FileSystem APT向HDFS写入数据时,HDFS是怎么工作的。1,client发起create请求。通过DistributedFileSystem.create()方法创建文件,其实就是通过DistributedFileSystem内部wrap
2014-11-24 16:49:39 2522
转载 Shutdown Hook
最近了解了一下Java中ShutdownHook的特性,网上有几篇讲述得很全面的文章,做些记录如下:1、ShutdownHook在某些情况下不会运行ShutdownHook从不不保证一定会运行。当JVM由于内部原因崩溃,或接收到操作系统发送的SIGKILL命令等,关闭钩子来不及运行JVM进程就已经退出。2、ShutdownHook可能在运行过程中被中止操作系统在关闭过程中,发送SI
2014-11-05 15:32:24 2252
转载 HBase写数据过程
hbase写数据过程博客分类: hbasehbase大数据写数据过程compactsplit 博文说明:1、研究版本hbase0.94.12;2、贴出的源代码可能会有删减,只保留关键的代码 从client和server两个方面探讨hbase的写数据过程。一、client端 1、写数据API 写数据主要是HTable的单条写和批量写两个A
2014-08-27 20:35:15 872
转载 Maven系列3--Maven命令行选项
可以免费转载,转载时请注明出处 http://pengqb.iteye.com 。Maven 命令行选项说明:1、使用-选项时,和后面的参数之间可以不要空格。而使用--选项时,和后面的参数之间必须有空格。如下面的例子: $ mvn help:describe -Dcmd=compiler:compile $ mvn install --define maven.test.
2014-08-15 10:36:54 641
转载 Maven系列2--pom.xml 配置详解
http://pengqb.iteye.com 。-->http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://mav
2014-08-15 10:31:16 652
原创 Maven系列1--settings.xml 配置详解
http://pengqb.iteye.com 。-->http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://mav
2014-08-15 10:30:48 925
转载 HiveSQL解析过程详解
Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有
2014-06-17 11:16:49 3837 2
转载 对Linux inode的一些理解
http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html
2014-05-29 11:01:12 832
转载 maven scope含义的说明
依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:compile (编译范围)compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。provided (已提供范围)provided 依赖只有在当JDK 或者一个容器已提
2014-05-12 17:15:00 740
转载 HDFS源码学习(1)——NameNode主要数据结构
FSNameSystemFSNameSystem是HDFS文件系统实际执行的核心,提供各种增删改查文件操作接口。其内部维护多个数据结构之间的关系:fsname->block列表的映射所有有效blocks集合block与其所属的datanodes之间的映射(该映射是通过block reports动态构建的,维护在namenode的内存中。每个datanode在启动时向namenode
2014-04-28 11:18:03 2610
原创 linux系统中oom killer策略
最近经常出现datanode被内核oom-killer干掉的情况,下面追查下原因:(todo...)什么是Overcommit和OOM? overcommit的策略 当oom-killer发生时,linux会选择杀死哪些进程在Unix中,当一个用户进程使用malloc()函数申请内存时,假如返回值是NULL,则这个进程知道当前没有可用内存空间,就会做相应的处理工作。许多进程
2014-03-22 21:44:45 2418
转载 6个Java项目UML反向工程工具
本文介绍6款开源的工具,可以将Java项目反向工程到UML的类图。1.Eclipse MDT模型开发工具(MDT)提供了一些示范性工具,在元模型的基础上的发展模式。它支持创建UML图,从代码的逆向工程到UML图等等。2.ArgoUMLArgoUML是一个领先的开源UML模型工具,它支持UML 1.4的所有标准,可以运行于任何Java平台上。3.ModelGoonMo
2014-03-21 10:36:48 1502
转载 Hadoop RPC概述
Hadoop作为一个存储与服务的基础性平台,同时它的内部有采用了master/slave架构,那么其内部通信和与客户端的交互就是必不可少的了。Hadoop在实现时抛弃了JDK自带的一个RPC实现——RMI,而自己基于IPC模型实现了一个高效的轻量级RPC。整体结构 在IPC包中,最重要的3个类是ServerC,lient和RPC,它们具有层次化的结构。 1.RPC
2014-03-20 22:53:29 816
原创 Hadoop RPC详解-RMI
Hadoop RPC 远程过程调用是Hadoop中的核心概念。在深入研究RPC之前,先看看远程调用的鼻祖Java RMI.1.什么是RMIJava远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用
2014-03-20 21:51:45 2129
转载 一致性 hash 算法( consistent hashing )
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object
2014-02-15 21:21:44 599
转载 Linux free命令详解
解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516 1 2 3 4
2014-01-26 15:19:38 645
转载 Hadoop Snappy安装终极教程
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://shitouer.cn/2013/01/hadoop-hbase-snappy-setup-final-tutorial/ 因为产品需要,这两天研究了一下Hadoop Snappy。先不说什么各个压缩算法之间的性能对比,单是这个安装过程,就很痛苦。网上有很多博友写H
2014-01-23 10:39:50 3063 4
转载 Hadoop Snappy压缩算法简介
本篇文章做了小部分更改,仅介绍了Snappy,去掉了安装过程,不过不必叹气,更加详细的Hadoop Snappy及HBase Snappy的安装步骤已经另起了一篇文章专门来介绍:Hadoop HBase 配置 安装 Snappy 终极教程 通过这篇文章,相信你一定会几乎毫无困难的成功安装Snappy。Compression就是在用CPU换IO吞吐量/磁盘空间,如果没有什么特殊原因推荐针
2014-01-23 10:38:00 9868
转载 hadoop对于压缩文件的支持及算法优缺点
hadoop对于压缩格式的是透明识别,我们的MapReduce任务的执行是透明的,hadoop能够自动为我们 将压缩的文件解压,而不用我们去关心。 如果我们压缩的文件有相应压缩格式的扩展名(比如lzo,gz,bzip2等),hadoop就会根据扩展名去选择解码器解压。压缩格式工具算法文件扩展名多文件可分割性DEFLATE无D
2014-01-23 10:27:01 1274
原创 Spark源码解析——Shuffle
Background在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点,与Hadoop MapR
2014-01-06 23:04:37 2425 1
转载 Spark源码解析——Storage模块
Background前段时间琐事颇多,一直没有时间整理自己的博客,Spark源码分析写到一半也搁置了。之前介绍了deploy和scheduler两大模块,这次介绍Spark中的另一大模块 - storage模块。在写Spark程序的时候我们常常和RDD ( Resilient Distributed Dataset ) 打交道,通过RDD为我们提供的各种transformation和a
2014-01-06 22:42:45 1450
转载 Spark源码分析——deploy模块
Background在前文Spark源码分析之-scheduler模块中提到了Spark在资源管理和调度上采用了HadoopYARN的方式:外层的资源管理器和应用内的任务调度器;并且分析了Spark应用内的任务调度模块。本文就Spark的外层资源管理器-deploy模块进行分析,探究Spark是如何协调应用之间的资源调度和管理的。Spark最初是交由Mesos进行资源管理,为了使得
2014-01-06 21:25:43 1371
wingide4.1及破解文件
2013-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人