`
刘小小尘
  • 浏览: 67541 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
分析版本为hbase 0.94 附上趋势团队画的图: rpc角色表: HBase通信信道 HBase的通信接口 客户端 服务端 HBase Client Master Server HMasterInterface HBase Client Region Server HRegionInterface Region Server Master Server HMasterRegionInterface 客户端发起请求: htable.get(Get) public Result get(final Get get) ...
Hbase插入数据的过程大致是: 客户端提交请求给region server(这中间会有作一些缓存) region server接收到请求,判断其实put请求,将其put到memstore 每次memstore的操作,都会检查memstore是否操作一个阈值,如果超过,就开始执行flush(),这个flush其实就是从内存中的KeyValue对持久化到HStore(也就是HFile)上面 好了,下面看一下一条数据是怎么从client端到达server端,并且最终转换成HFile的吧~ Client端(HTable): 执行Put方法 Put方法进一步调用doPut(put)方法 在d ...
先澄清一些本文中术语的涵意 客户端 – 指的是HBase client API.提供了从用户程序连接到HBase后台服务器即Master server及Region server的功能 服务端 – 即指的是HBase的Master server 及 Region server 用户端 – 指用户程序.即对HBase client API的调用方. 本篇的主要目的是说明RPC的客户端实现.解决客户端RPC的最后两个问题 1) 传输,并发及会话控制 2) 其它的保障,如出错,重试等. 首先是RPC传输,并发.及会话 前一篇基础,已经说明HBase client可以得到HMasterI ...
HBase采用了和Hadoop相同的RPC机制,作为它的主要通信手段.这是一个轻量的,不同于Java标准的RMI的一种方式.所以它的实现必须克服一些问题.如: 1) 如何分配RPC角色和通信信道,使得RPC通信可以实现. 2) 通信接口或协议的内容 3) 如何传输对象(Object),即序列化. 4) 传输,并发及会话控制 5) 其它的保障,如出错,重试等. 对于第一个问题,首先要确定RPC通信的角色.请参看下表. HBase通信信道 HBase的通信接口 客户端 服务端 HBase Client Master Server HMasterInterface ...
1. DDL Operations 创建表: hive> CREATE TABLE pokes (foo INT, bar STRING); 创建表并创建索引字段ds hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING); 显示所有表: hive> SHOW TABLES; 按正条件(正则表达式)显示表, hive> SHOW TABLES '.*s'; 表添加一列 : hive> ALTER TABLE pokes ADD COLUMNS (new_col ...
开场白: Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类 (Hive Storage Handlers), 大致意思如图所示: 口水: 对 hive_hbase-handler.jar 这个东东还有点兴趣,有空来磋磨一下。 一、2个注意事项: 1、需要的软件有 Hadoop、Hive、Hbase、Zookeeper,Hive与HBase的整合对Hive的版本有要求,所以不要下载.0.6.0以前的老版本,Hive.0.6.0的版本才支持与HBase对接,因此在Hive的lib目录下可 ...
对于互联网公司来说提炼挖掘生产中用户产生的大量日志是个有价值的工作,在这些看似垃圾东西中蕴含着大量的商业机会和用户的需求,如果可以简单的实现当然皆大欢喜,但是面对庞大的输出日志需要去提炼的时候只好束手无则无视他的存在,就拿我们最熟悉的Log4J来说,如果是上TB的海量文本类型输出的格式根本无法查询,更谈不上数据挖掘。 当然我们也知道存放在数据库里面当然是不错的选择,对抗海量的日志数据存储与查询坚持做下去的话最后换来的是高昂的代价,Hive借助MapReduce的计算+HDFS的海量存储的功能,对与海量的日志存储、查询,数据挖掘Hive也是个不错的选择,在功能上和总体成本上高于刚刚所说的前两者 ...
hive 是什么 在接触一个新的事物首先要回到的问题是:这是什么? 这里引用 Hive wiki 上的介绍: Hive is a data warehouse infrastructure built on top of Hadoop. It provides tools to enable easy data ETL, a mechanism to put structures on the data, and the capability to querying and analysis of large data sets stored in Hadoop files. Hive ...
布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中。在垃圾邮件过滤的黑白名单方法、爬虫(Crawler)的网址判重模块中等等经常被用到。哈希表也能用 ...
1.list转set Java代码 Set set = new HashSet(new ArrayList()); 2.set转list Java代码 List list = new ArrayList(new HashSet()); 3.数组转为list Java代码 List stooges = Arrays.asList("Larry", "Moe", "Curly"); 此时stooges中有有三个元素。注意:此时的lis ...
1、通过mapreduce的方式存入hbase,只有map,其实reduce阶段也是一样的 代码如下: import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.hbase.HBas ...
1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。 有关预分区,详情参见:Table Creation: Pre-Creating Regions,下面是一个例子: 1 2 3 4 5 6 7 8 9 10 11 ...
概括起来说,对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式:访问串行化,对象共享化。而ThreadLocal采用了“以空间换时间”的方式:访问并行化,对象独享化。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal,顾名思义,它不是一个线程,而是线程的一个本地化对象。当工作于多线程中的对象使用Thread ...
以下是多线程分页算法的具体实现,需要的可以试一下 /** * 多线程运行时的分页算法 */ @Test public void testThreadForPage(){ int allPage = 18; //总页数 int allThread = 5; //总共要启动的线程数 int everyPage = (int)(allPage/allThread); //每个线程要处理的页数 int everyPageAdd = (int)(allPage%allThread); //前几个线程要增加一页 int startPage = 0,endP ...
本博客是hbase使用filter快速高效查询的方法,我会慢慢补齐 几大Filters 1、Comparision Filters 1.1 RowFilter 1.2 FamilyFilter 1.3 QualifierFilter 1.4 ValueFilter 1.5 DependentColumnFilter 2、Dedicated Filters 2.1 SingleColumnValueFilter 2.2 SingleColumnValueExcludeFilter 2.3 PrefixFilter 2.4 PageFilter 2.5 K ...
Global site tag (gtag.js) - Google Analytics