- 博客(492)
- 收藏
- 关注
原创 HBase 1.1.3 中如何开发LoadBalance插件
定制LoadBalancer插件需要两个步骤:1、继承org.apache.hadoop.hbase.master.LoadBalancer Interface,实现自己的LoadBalancer Class。2、在hbase-site.xml中增加配置项,使得定制的LoadBalancer生效hbase.master.loadbalancer.class{your custom
2016-05-05 14:55:32 1141
转载 Hbase LSM树
LSM树是HBase里非常有创意的一种数据结构,它和传统的B+树不太一样,下面先说说B+树。1 B+树相信大家对B+树已经非常的熟悉,比如Oracle的普通索引就是采用B+树的方式,下面是一个B+树的例子:根节点和枝节点很简单,分别记录每个叶子节点的最小值,并用一个指针指向叶子节点。叶子节点里每个键值都指向真正的数据块(如Oracle里的Ro
2016-05-04 15:50:04 443
原创 对hbaseadmin.balancer()的一些理解
今天测试用hbaseadmin.split手动对region进行拆分,拆分完之后,并没有和我想的那样region均衡分布到3个regionserver上去。感觉很莫名,说好的balancer呢,怎么不起作用,于是我手工执行了一下hbaseadmin.balancer(),还是没效果。尼玛!把源码翻开了看终于发现了原因:banancer是针对整个集群的region分布,而不是针对某个
2016-04-29 13:03:06 569
转载 OutputFormats
Hadoop常常被用作大型数据处理生态系统中的一部分。它的优势在于能够批量地处理大量数据,并将结果以最好的方式与其他系统相集成。从高层次角度来看,整个过程就是Hadoop接收输入文件、使用自定义转换(Map-Reduce步骤)获得内容流,以及将输出文件的结果写回磁盘。上个月InfoQ展示了怎样在第一个步骤中,使用InputFormat类来更好地对接收输入文件进行控制。而在本文中,我们将同大家一起探
2016-04-21 19:50:13 343
转载 java 枚举类型
用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语
2016-04-21 16:49:11 276
原创 hive中不同数据类型存储在Hbase中的格式解析
1. Hive中操作./bin/beeline!connect jdbc:hive2://localhost:10000rootrootdeveCREATE TABLE hbase_table_hyy1(key int, c1_tinyint tinyint,c2_smallint smallint,c3_int int,c4_bigint bigint,c5_float floa
2016-04-21 13:45:02 1567
转载 Java对象的序列化和反序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是
2016-04-19 22:54:24 249
原创 单例模式与线程安全
单例模式是一种常用的软件设计模式,常被用于一个类在系统中最多只允许存在一个实例的场合,如窗口管理器、打印缓冲池、文件系统等。在单例模式的核心结构中,只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。在Java中,单例模式如此定义:“一个类有且
2016-04-19 21:25:20 1160
原创 线程安全的单例模式
1、饿汉式单例public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton() { } public static Singleton getInstance() { return INSTANCE; }}2、借助内
2016-04-19 21:19:23 271
原创 zookeeper监听<一>
createpublic String create(String path, byte[] data, List acl, CreateMode createMode) throws KeeperException,
2016-04-19 11:10:43 409
原创 加快MySQL逻辑恢复速度的方法和参数
日常工作中经常会有需要从mysqldump导出的备份文件恢复数据库的情况,相比物理备份恢复这种方式在恢复时间上往往显得力不从心。本文就总结了几个对于逻辑备份恢复有加速作用的参数和操作注意:我们的大前提是,恢复的目标数据库在恢复完成前,没有对外部提供服务1. 参数调整log-bin=OFF恢复时开启二进制日志显然是无意义的,增加了不必要的IO。因此
2016-04-15 23:13:09 1207
转载 CountDownLatch详解
正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:目录CountDownLatch是什么?C
2016-04-15 18:42:56 424
翻译 HBase Region分裂
1、RegionServer决定本地的region分裂,并准备分裂工作。第一步是,在zookeeper的/hbase/region-in-reansition/region-name下创建一个znode,并设为SPLITTING状态。2、Master通过父region-in-transition znode的watcher监测到刚刚创建的znode。3、RegionServer在H
2016-04-15 15:54:20 556
转载 Java中Set的contains()方法
新手对Set中contains()方法的疑惑[java] view plain copyimport java.util.HashSet; class Dog{ String color; public Dog(String s){ color = s; }
2016-04-15 10:27:14 1499
转载 HBase Split 过程
在管理集群时,最容易导致hbase节点发生故障的恐怕就是hbase region split和compact的了,日志有split时间太长;文件找不到;split的时候response too slow等等,所以先看看hbase region split源码,希望对以后能有帮助 HBase region split源码分析一、流程概述1.HBaseAdmin 发起
2016-04-12 23:33:44 2961
转载 Raft一致性算法
Why Not PaxosPaxos算法是莱斯利·兰伯特(LeslieLamport,就是 LaTeX 中的”La”,此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法。由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后1998年重新发表到ACM Transactions on Computer Systems上(The Part-TimeParlia
2016-04-10 22:56:50 341
转载 Java synchronized详解
第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们使用了一个简化版本的Account类,
2016-04-06 00:17:12 409 1
原创 AtomicInteger
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。来看AtomicInteger提供的接口。//获取当前的值public final int get()//取当前的值,并设置
2016-04-06 00:16:04 289
原创 ThreadLocal 使用
一、概述ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程
2016-04-05 22:53:34 397
原创 JAVA多线程实现
JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的
2016-04-05 22:22:03 302
转载 HTablePool为何弃用?
我们先看HConnection的getTable方法描述:getTableHTableInterface getTable(String tableName) throws IOExceptionRetrieve an HTableInterface implementation for access to a table.
2016-04-04 18:14:08 566
原创 HBASE API
http://www.boyunjian.com/javadoc/org.apache.servicemix.bundles/org.apache.servicemix.bundles.hbase/0.95.0_1/_/org/apache/hadoop/hbase/KeyValue.html
2016-04-03 14:15:31 353
转载 ResultScanner类
ResultScanner类扫描操作不会通过一次RPC请求返回所有匹配的行,而是以行为单位进行返回。很明显,行的数目很大,可能有上千条甚至更多,同时在一次请求中发送大量数据,会占用大量的系统资源并消耗很长时间。ResultScanner把扫描操作转换为类似的get操作,它将每一行数据封装成一个Result实例,并将所有的Result实例放入一个迭代器中。ResultScanner的
2016-04-03 14:03:45 4708
原创 eclipse uml 安装
进入http://www.eclipse.org/ ,选择PROJECTS菜单,搜索框中搜索UML,有一个Eclipse UML Generators项目,点击后选择LEARN MORE,然后选择Downloads菜单下面有不同版本的链接,可以在eclipse中直接使用“Install New Sofrware”安装。
2016-04-03 13:02:36 881
原创 Hbase shell <一>
创建表Here is some help for this command:Creates a table. Pass a table name, and a set of column familyspecifications (at least one), and, optionally, table configuration.Column specification can be
2016-04-02 13:27:13 1511 1
转载 KeyValue and HFile create
HBase put数据时会先将数据写入内存,其内存结构是一个ConcurrentSkipListMap,其Comparator是KVComparator。keyvalue对象结构KVComparator的KeyValue对象比较过程1.使用KeyComparator比较rowkey,结果是rowkey字节序从小到大2.如果rowkey一样,则按column
2016-04-02 12:30:10 615
原创 ZK部署
Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将分别进行介绍.单机模式点击这里下载zookeeper的安装包之后, 解压到合适目录. 进入zookeeper目录下的conf子目录, 创建zoo.cfg:tickTime=2000 dataDir=/Users/apple/zookeeper/data dataLogDi
2016-04-01 23:52:05 427
原创 HASH 算法大全
package com.conan;/** * Hash算法大全 * 推荐使用FNV1算法 * * @algorithm None * @author Goodzzp 2006-11-20 * @lastEdit Goodzzp 2006-11-20 * @editDetail Create */public class HashAlgorithms { /**
2016-04-01 13:27:23 333
原创 Java中finally的执行时机
finally是在catch执行之后return之前执行的。那么,如果在finally中改变了catch中要返回的对象,那么,返回值改变了吗?看代码:上面代码输出是3,说明finally中的改变对catch中的返回值产生了影响。再看下面代码:奇怪的是,上面的代码输出的竟然是2。原因还是稍微深奥的。解释下:这里面,涉及到一个栈帧的问
2016-03-28 15:54:55 382
原创 java多线程中的异常处理
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throw exception部分)进行了约束。但是线程依然有可能抛出unchecked exception,当此类异常跑抛出时,线程就会终结,而对
2016-03-28 13:59:44 326
原创 ZooKeeper API使用示例
1.使用什么API可以创建ZK(ZooKeeper)连接?2.如何关闭ZK(ZooKeeper)连接?3.如何创建节点?4.如何读取数据?5.如何删除指定节点?6.如何收到来自Server的Watcher通知后的处理?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务框架,包含一组简单的原语集合。通过这些原语言的组合使用,能够帮助我们解决更高层次的分布式问题
2016-03-28 11:08:32 413
原创 Oracle数据库动态注册和参数local_listener的使用
从Oracle8i版本开始,在oracle数据库当中,应用如果没有特殊需求的话,数据库监听不需要做出配置,oracle把这种方法称为动态注册。所谓动态注册,oracle通过PMON进程根据参数instance_name和service_names中的内容,把oracle数据库的信息注册到默认的1521端口的监听器上。不管服务器端有几个监听程序,oracle默认都是注册到1521端口的监听器,也就是
2016-03-25 18:16:24 4657
原创 JAVA远程操作Zookeeper示例
zookeeper可以单独安装,如果在hbase安装完成后,hbase-env.sh中没有设置export HBASE_MANAGES_ZK=true,会随hbase启动zookeeper。import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache
2016-03-25 15:26:27 1013
转载 Java集合框架List,Map,Set等全面介绍
java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +--java.util.LinkedList [C] +--java.util.Vector [C] +--java.util.Stack [C]+--java.util.Set [I] +--ja
2016-03-24 20:44:56 320
原创 java中的List
1、List接口继承了Collection接口。List中的元素是按顺序存放的,可以有重复元素。ArrayList类:实现数组的动态操作,线程不安全,执行效率比Vector高Vector类:实现动态数组线程安全向量类Stack类:表示后进先出的对象栈,是Vector类的子类,2、构造方法Arraylist类的构造方法: public ArrayList();//构造一个初
2016-03-24 20:09:16 284
转载 HashSet,TreeSet和LinkedHashSet的区别
Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象。HashSetHashSet有以下特点 不能保证元素的排列顺序,顺序有可能发生变化 不是同步的 集合元
2016-03-23 18:45:37 246
原创 Open_tables Opened_tables table_open_cache
今天开发说应用链接数据库比较慢,定位后发现是table_open_cache太小了引起的问题。如果你发现Opened_tables比较大并且一直再增大,很可能是table_open_cache设置太小了,导致每次链接数据库都要去打开表,这也会造成链接数据库比较慢。Open_tables : The number of tables that are open.Opened_table
2016-03-23 11:08:01 1575
转载 使用HBase EndPoint(coprocessor)进行计算
如果要统对hbase中的数据,进行某种统计,比如统计某个字段最大值,统计满足某种条件的记录数,统计各种记录特点,并按照记录特点分类(类似于sql的group by)~常规的做法就是把hbase中整个表的数据scan出来,或者稍微环保一点,加一个filter,进行一些初步的过滤(对于rowcounter来说,就加了FirstKeyOnlyFilter),但是这么做来说还是会有很大的副作用,比
2016-03-22 23:18:20 664
原创 MongoDB MapReduce
命令语法db.runCommand( { mapreduce : 字符串,集合名, map : 函数,见下文 reduce : 函数,见下文 [, query : 文档,发往map函数前先给过渡文档] [, sort : 文档,发往map函数前先给文档排序] [, limit : 整数,发往map函数的文档数量上限] [, out : 字符串,统计结果保存
2016-03-22 22:44:06 306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人