自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

芒果先生Mango的专栏

专注分布式计算领域相关技术

  • 博客(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 1818

转载 Storm常见模式------TimeCacheMap

Storm常见模式------TimeCacheMapStorm中使用一种叫做TimeCacheMap的数据结构,用于在内存中保存近期活跃的对象,它的实现非常地高效,而且可以自动删除过期不再活跃的对象。TimeCacheMap使用多个桶buckets来缩小锁的粒度,以此换取高并发读写性能。下面我们来看看TimeCacheMap内部是如何实现的。1. 实现原理桶链表:

2016-01-22 11:13:51 969

转载 Storm源码分析汇总

Storm FeaturesStorm 简介Storm Topology的并发度Storm - Guaranteeing message processingStorm - Transactional-topologiesTwitter Storm – DRPCStorm 多语言支持 Storm StarterStorm st

2015-04-30 11:35:25 1653

原创 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 4071 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 1209 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 1846

转载 我读过最好的Epoll模型讲解

首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。    不管是文件,还是套接字,还是管道,我们都可以把他们看作流。    之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要

2015-01-12 16:26:40 25950 3

原创 一次JobTracker拥堵问题排查过程

Hadoop版本 1.0.3问题描述:随着每日MR作业数目渐增,用户反映提交作业时经常阻塞,也就是JobTracker发生了拥堵。这种情况开始频繁出现,我们调大JobTracker端的RPC Handler线程个数,并定时对JobTracker的栈信息进行分析,如果RPC Handler线程全部被BLOCKED住了,就Dump出栈信息,并及时发出报警。原因及解决办法:经过分析几次抓

2015-01-12 15:44:49 998

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

原创 关于HashCode

有许多人学了很长时间的Java,但一直不明白hashCode方法的作用, 首先,想要明白hashCode的作用,你必须要先知道Java中的集合。   总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否

2015-01-07 13:29:13 601

原创 HBase内存结构之跳表数据结构浅析

最近学习HBase源码时发现HRegion在sotre管理上用到了跳表数据结构ConcurrentSkipListMap:ConcurrentSkipListMap有几个ConcurrentHashMap不能比拟优点:1、ConcurrentSkipListMap的key是有序的。2、ConcurrentSkipListMap支持更高的并发。

2015-01-07 12:46:47 3266 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 829

转载 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 844

转载 MapReduce:详解Shuffle(copy,sort,merge)过程

Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里

2014-12-29 11:51:47 1275

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

原创 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 2954 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 1617

转载 深入理解HBase Memstore

MemStore是HBase非常重要的组成部分,深入理解MemStore的运行机制、工作原理、相关配置,对HBase集群管理以及性能调优有非常重要的帮助。HBase Memstore首先通过简单介绍HBase的读写过程来理解一下MemStore到底是什么,在何处发挥作用,如何使用到以及为什么要用MemStore。图一:Memstore Usage in HBase

2014-12-02 01:54:02 802

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

转载 Shutdown Hook

最近了解了一下Java中ShutdownHook的特性,网上有几篇讲述得很全面的文章,做些记录如下:1、ShutdownHook在某些情况下不会运行ShutdownHook从不不保证一定会运行。当JVM由于内部原因崩溃,或接收到操作系统发送的SIGKILL命令等,关闭钩子来不及运行JVM进程就已经退出。2、ShutdownHook可能在运行过程中被中止操作系统在关闭过程中,发送SI

2014-11-05 15:32:24 2170

转载 HBase写数据过程

hbase写数据过程博客分类: hbasehbase大数据写数据过程compactsplit 博文说明:1、研究版本hbase0.94.12;2、贴出的源代码可能会有删减,只保留关键的代码 从client和server两个方面探讨hbase的写数据过程。一、client端 1、写数据API    写数据主要是HTable的单条写和批量写两个A

2014-08-27 20:35:15 844

转载 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 625

转载 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 627

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

转载 HiveSQL解析过程详解

Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有

2014-06-17 11:16:49 3695 2

转载 对Linux inode的一些理解

http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html

2014-05-29 11:01:12 820

转载 maven scope含义的说明

依赖范围控制哪些依赖在哪些classpath 中可用,哪些依赖包含在一个应用中。让我们详细看一下每一种范围:compile (编译范围)compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。provided (已提供范围)provided 依赖只有在当JDK 或者一个容器已提

2014-05-12 17:15:00 726

转载 HDFS源码学习(1)——NameNode主要数据结构

FSNameSystemFSNameSystem是HDFS文件系统实际执行的核心,提供各种增删改查文件操作接口。其内部维护多个数据结构之间的关系:fsname->block列表的映射所有有效blocks集合block与其所属的datanodes之间的映射(该映射是通过block reports动态构建的,维护在namenode的内存中。每个datanode在启动时向namenode

2014-04-28 11:18:03 2532

原创 linux系统中oom killer策略

最近经常出现datanode被内核oom-killer干掉的情况,下面追查下原因:(todo...)什么是Overcommit和OOM? overcommit的策略 当oom-killer发生时,linux会选择杀死哪些进程在Unix中,当一个用户进程使用malloc()函数申请内存时,假如返回值是NULL,则这个进程知道当前没有可用内存空间,就会做相应的处理工作。许多进程

2014-03-22 21:44:45 2378

转载 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 1452

转载 Hadoop RPC概述

Hadoop作为一个存储与服务的基础性平台,同时它的内部有采用了master/slave架构,那么其内部通信和与客户端的交互就是必不可少的了。Hadoop在实现时抛弃了JDK自带的一个RPC实现——RMI,而自己基于IPC模型实现了一个高效的轻量级RPC。整体结构    在IPC包中,最重要的3个类是ServerC,lient和RPC,它们具有层次化的结构。   1.RPC

2014-03-20 22:53:29 794

原创 Hadoop RPC详解-RMI

Hadoop RPC 远程过程调用是Hadoop中的核心概念。在深入研究RPC之前,先看看远程调用的鼻祖Java RMI.1.什么是RMIJava远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用

2014-03-20 21:51:45 2110

转载 一致性 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 582

转载 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 633

转载 Hadoop Snappy安装终极教程

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://shitouer.cn/2013/01/hadoop-hbase-snappy-setup-final-tutorial/ 因为产品需要,这两天研究了一下Hadoop Snappy。先不说什么各个压缩算法之间的性能对比,单是这个安装过程,就很痛苦。网上有很多博友写H

2014-01-23 10:39:50 3030 4

转载 Hadoop Snappy压缩算法简介

本篇文章做了小部分更改,仅介绍了Snappy,去掉了安装过程,不过不必叹气,更加详细的Hadoop Snappy及HBase Snappy的安装步骤已经另起了一篇文章专门来介绍:Hadoop HBase 配置 安装 Snappy 终极教程 通过这篇文章,相信你一定会几乎毫无困难的成功安装Snappy。Compression就是在用CPU换IO吞吐量/磁盘空间,如果没有什么特殊原因推荐针

2014-01-23 10:38:00 9722

转载 hadoop对于压缩文件的支持及算法优缺点

hadoop对于压缩格式的是透明识别,我们的MapReduce任务的执行是透明的,hadoop能够自动为我们 将压缩的文件解压,而不用我们去关心。  如果我们压缩的文件有相应压缩格式的扩展名(比如lzo,gz,bzip2等),hadoop就会根据扩展名去选择解码器解压。压缩格式工具算法文件扩展名多文件可分割性DEFLATE无D

2014-01-23 10:27:01 1247

原创 Spark源码解析——Shuffle

Background在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点,与Hadoop MapR

2014-01-06 23:04:37 2387 1

转载 Spark源码解析——Storage模块

Background前段时间琐事颇多,一直没有时间整理自己的博客,Spark源码分析写到一半也搁置了。之前介绍了deploy和scheduler两大模块,这次介绍Spark中的另一大模块 - storage模块。在写Spark程序的时候我们常常和RDD ( Resilient Distributed Dataset ) 打交道,通过RDD为我们提供的各种transformation和a

2014-01-06 22:42:45 1401

转载 Spark源码分析——deploy模块

Background在前文Spark源码分析之-scheduler模块中提到了Spark在资源管理和调度上采用了HadoopYARN的方式:外层的资源管理器和应用内的任务调度器;并且分析了Spark应用内的任务调度模块。本文就Spark的外层资源管理器-deploy模块进行分析,探究Spark是如何协调应用之间的资源调度和管理的。Spark最初是交由Mesos进行资源管理,为了使得

2014-01-06 21:25:43 1314

Eclipse编译Hive

eclipse下编译Hive,这个文档是网上下的,还可以

2013-08-10

Myeclipse配置GWT

文档里详细描述了如何在Myeclipse10中配置GWT,希望对大家有帮助

2013-07-25

wingide4.1及破解文件

1、先到http://wingware.com/downloads/wingide下载最新版本的IDE. 2、安装之前,先修改时间到一个月前。 3、安装 4、安装之后然后获取试用版的License。然后关闭WingIDE。 5、将破解文件abstract.pyo 放置破解文件abstract.pyo于安装目录\bin\2.5\src\process,比如C:\ProgramFiles\Wing IDE 4.1\bin\2.5\src\process。 6、修改时间为当前时间,重启WING ide就已经破解

2013-06-23

hbase权威指南.pdf

hbase 权威指南,涵盖hbase-0.94版本的内容,内容还是比较全面的,很强大

2013-01-22

hadoop1.0.3_api.chm

hadoop1.0.3的API帮助文档,学习hadoop Api的好帮手

2013-01-22

jdk1.6 source 包

jdk1.6.0.13的源码包,在Eclipse中和jdk的jar包关联后可以方便的查看jdk类的源码

2013-01-22

空空如也

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

TA关注的人

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