- 浏览: 358419 次
- 性别:
- 来自: 上海
最新评论
-
希恩杰:
采样器的目的是啥?使数据均匀分布到所有分区?使key的数量均匀 ...
Hadoop深入学习:Hadoop全排序中的Sampler采样器 -
lawlietwf:
三篇文章中有两篇链接地址一样,po主看下
Hadoop中的快速排序算法 -
坏小四:
...
《Hbase权威指南》深入学习hbase:表,列族,列标识,版本和cell -
fbwfbi:
发现使用pika-0.9.13的版本依然出错:Tracebac ...
RabbitMQ:使用python发布/订阅消息 -
hehu158:
centos6.5 chmod +x qq2012.tra.g ...
CentOS 6.4安装qq2012
文章列表
在初等的基本排序算法中,插入排序、归并排序和快速排序是常用的排序算法,实现简单,但很高效,它在空间复杂度和时间复杂度之前取得了最佳的平衡,这也是在现实工作中最常用的原因。
下面是一些 ...
在上一节《深入学习《Programing Hive》:Hive的数据模型(表)》中,已经学习过表的定义,接下来接着学习Hive的DDL操作。
复制表结构:
CREATE TABLE IF NOT EXISTS students2 LIKE students;
查看表结构:
DESCRIBE TABLE students;
删除表:
DROP TABLE students ...
Hive的数据类型
Hive的基本数据类型有:TINYINT,SAMLLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,TIMESTAMP(V0.8.0+)和BINARY(V0.8.0+)。
Hive的集合类型有:STRUCT,MAP和ARRAY。
Hive主要有四种数据模型(即表):(内部)表、外部表、分区表和桶表。
表的元数据保存传统的数据库的表中,当前hive只支持Derby和MySQL数据库。
内部表:
Hive中的表和传 ...
Hive是一个基于Hadoop分布式系统上的数据仓库,最早是由Facebook公司开发的,Hive极大的推进了Hadoop ecosystem在数据仓库方面上的发展。
Facebook的分析人员中很多工程师比较擅长而SQL而不善于开发MapReduce程序,为此开发出Hive,并对比较熟悉SQL的工程师提供了一套新的SQL-like方言——Hive QL。
Hive SQL方言特别和MySQL方言很像,并提供了Hive QL的编程接口。Hive QL语句最终被Hive解析器引擎解析为MarReduce程序,作为job提交给Job Tracker运行 ...
在Java中,被定义在另一类中的类被称为内部类,另一个相对于内部类的类叫做外部类。内部类允许编程人员将相关的类组织起来,控制内部类对其他外部类的可见性。
内部类可以分为普通内部类和静态内部类两种,示例图如下:
普通内部类代码示例如下:
public CommonInnerClass{
private static int iNumber;
private String str;
pub ...
BloomFilter算法是在1970年提出的算法,具有很好的空间和时间效率,内部是依赖一些列hash算法和数组的。被用来检测一个元素是不是集合中的一个成员,允许有一定的出错率:如果某个数据被判断不在集合中,那么该数 ...
之前我们已经学习过HTable表的定义及基本操作了,本节我们将要学习HBase的高级功能之一过滤器HBase Filter。
HBase 过滤器(Filter)是HBase提供的一个强大的高效查询的功能,可以和Scan或Get操作配合使用。用户可以在客户端通过方法:
setFilter(filter)
配置(如RowFilter),然后将过滤器应用在Region servers端,将符合过滤条件的数据返回给客户端。
Filter过滤器在客户端产生, ...
在本节里,开始学习HBase的性能调优的思想及相关的参数设置。
JVM垃圾收集器调优
HBase是一个的Hadoop的数据库,给用户提供实时的读写请求。在生产环境中,Region Servers都会配置比较大的JVM堆,Javer们都知道,大多数的垃圾收集器(CMS除外)在收集垃圾时都会暂停其他所有的工作线程(即发生“Stop The World”),由于堆特别大(《Hbase权威指南》中指出,Region Servers的堆不要大于12G),那么即使使用了多线程的并行垃圾收集器,也会造成“长”时间的GC时间。在实时系统中暂停客户端线程一段比较(相 ...
单例模式是一个简单的创建者类型的模式,必须保证在系统中最多只能有一个唯一的对象实例,有如下特点:
1、单例类必须保证最多只有一个实例;
2、必须由单例类自己创建唯一的实例;
3、单例类必须给其他所有对象提供其唯一的实例。
根据创建时间,单例模式又可以分为饥汉式和饱汉式两种,下面通过JAVA代码来分析二者的优缺点。
饥汉式单例模式:
/**
* HungerySingletonPatternTest
* 饥汉式 ...
在HBase中,要定义一个用户表(HTable),只需要以下几个步骤:
Configuration conf = HBaseConfiguration.create();[/b][i]//通过HBase配置工厂生成一个Configuration配置实例
HBaseAdmin admin = new HBaseAdmin(conf);
...
HBase是面向列的分布式的数据库,和传统的关系型数据库有很大的不同:物理模型和逻辑模型。这里我们要首先讲一下HBase数据库相关的区别于关系型数据库的几个基本概念:
表:HBase将数据组织到自己的HTable表中,这个表是根据列族(colomn family)在物理上保存数据的,每个列族都有自己的文件夹和storefiles,不像关系型数据库那样将一个表保存成一个文件,表明也是文件系统路径的一部分。
行:HBase中的行是逻辑上的行,物理上模型上行是按列族(colomn family)分别存取的。HBase有Rowkey的概念,rowkw ...
在Hotspot JVM中,大致有以下四种垃圾收集算法:
标记-清除(Mark-Sweep)算法:它是最基础的算法,分为2个阶段“标记”和“清除”:首先标记出所有需要回收的对象,在标记完后统一回收掉所有被标的对象。之所以说它是最基础的收集算法,是因为后续的搜集算法都是基于这种思路并改进其缺点而来的。
标记-清除算法主要有两个缺点:1、标记和清除的效率都不高;2、会产生许多内存速碎片,内存碎片会导致在运行时保分配较大的对象时,由于无法找到连续的内存而不得不提前触发一次垃圾收集操作。
“标记-清除(Mark-Sweep)”算法示意图
...
JAVA虚拟机规范中试图通过“JAVA内存模型”来屏蔽掉各种硬件和各种操作系统队内存访问的差异,让JAVA程序在各种系统平台下都能有一致的并发效果,“一次书写,处处运行”。
JAVA内存模型的主要目标:定义 ...
虚拟机——本文专门针对HotSpot JVM——的主要组成部分:
程序计数器:每一个线程都有一个是独立的私有程序计数器,它保存有该线程要执行的下一条指令的内存地址。
JAVA 虚拟机栈: JVM Stack也是线 ...
在《分区查找》这一章中我们已经学习了Region Lookups的详细内容;那么,对于一个给定的rowkey,客户端是如何去查询这个rowkey的信息的——可能有匹配信息也可能没有,是每次都去做如《分区查找》这边文章中说的那样,每次都去做三次查询吗?如果答案为否,那么客户端是如今和处理的?
实际上,hbase的查询流程是这样的:
1、客户端会首先查询客户端缓存,如果其中缓存有的-ROOT-和.META.的信息,则可以由这些缓存定位到保存有给点rowkey区间的HRegion Server的地址,然后直接执行第4步,否则直接执行第2步;
2、客户端到Zookeep ...