一直想将hbase 与hive整合在一起,因为公司项目工期一期紧似一期,故一直推后。还不知道推到什么时候呢。

今天尝试编译hive,看着官方文档。感觉非常easy:

1、svn co http://svn.apache.org/repos/asf/hive/trunk hive  先下载源码吧。我下载最新代码0.14

2、cd hive ;  mvn  package -Phadoop-2,dist, 编译后须要一大堆測试信息,故去掉測试过程

mvn  package -Phadoop-2,dist -Dtar -DskipTests,

刚開始编译到common的时候报错。 进入common模块单独编译,要增加hadoop2,而且要有hadoop2的相关文件。

下载一大堆文件后,显示编译成功。

注意编译hadoop本地包的时候须要增加-Pnative

3、在hbase中创建表:

public static void createTable(HBaseAdmin admin) {
try {
TableName tn = TableName.valueOf(TABLENAME);
HTableDescriptor tableDescripter = new HTableDescriptor(tn);
HColumnDescriptor column = new HColumnDescriptor("x");
// column.setTimeToLive(600000);
// column.setCompressionType(Compression.Algorithm.LZO);
tableDescripter.addFamily(column);
byte[][] regions = new byte[][]{
Bytes.toBytes("1"),
Bytes.toBytes("2"),
Bytes.toBytes("3"),
Bytes.toBytes("4"),
Bytes.toBytes("5"),
Bytes.toBytes("6"),
Bytes.toBytes("7"),
Bytes.toBytes("8"),
Bytes.toBytes("9"),
Bytes.toBytes("0")
};
admin.createTable(tableDescripter,regions);
} catch (IOException ex) {
Logger.getLogger(HbaseConfig.class.getName()).log(Level.SEVERE, null, ex);
}
}

4、在hbase 中插入数据:

HbaseUtil util = new HbaseUtil();
try (HTable table = new HTable(HbaseConfig.getConfig(), HbaseConfig.TABLENAME)) {
for (int i = 0; i < 10; i++) {
String dmpid = generateDmpid();
String channel = "5030";
String value = "dmpid" + dmpid;
Put p = new Put(Bytes.toBytes(reverse(dmpid)));
p.add(Bytes.toBytes("x"), Bytes.toBytes(channel), Bytes.toBytes(value));
if (value != null && !"".equals(value) && !"null".equals(value)) {
p.add(Bytes.toBytes("x"), Bytes.toBytes("5020"), Bytes.toBytes(value));
//channel uid
}
table.put(p);
table.flushCommits();
}
}

5、在hive中创建关联表

使用下面命令启动hive:

hive --hiveconf hbase.zookeeper.quorum=host107,host108,host109

启动完毕在hive控制台运行以下命令

CREATE EXTERNAL TABLE emaruser(key string, google string,tanx string,tencent string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,x:5010,x:5020,x:5030")
TBLPROPERTIES("hbase.table.name" = "emar_user_relation");

6、在hive中查询成功

hive> select * from emaruser;
OK
0054308844100908791141 NULL dmpid1411978090014488034500 NULL
0101677395300318791141 NULL dmpid1411978130035937761010 dmpid1411978130035937761010
0529909431699808791141 NULL dmpid1411978089961349099250 NULL
0816959407102198791141 NULL dmpid1411978912017049596180 dmpid1411978912017049596180
2144264024543118791141 dmpid1411978113454204624412 dmpid1411978113454204624412 NULL
2309952861202198791141 NULL dmpid1411978912021682599032 dmpid1411978912021682599032
3106277691400318791141 NULL dmpid1411978130041967726013 dmpid1411978130041967726013
3109618614400318791141 NULL dmpid1411978130044168169013 dmpid1411978130044168169013
3207091484943118791141 dmpid1411978113494841907023 dmpid1411978113494841907023 NULL
3265583421200318791141 NULL dmpid1411978130021243855623 dmpid1411978130021243855623
3449017552200908791141 NULL dmpid1411978090022557109443 NULL
3645762585202198791141 NULL dmpid1411978912025852675463 dmpid1411978912025852675463
3660257098743118791141 dmpid1411978113478907520663 dmpid1411978113478907520663 NULL
3701620688943118791141 dmpid1411978113498860261073 dmpid1411978113498860261073 NULL
380639403302198791141 NULL dmpid141197891203304936083 dmpid141197891203304936083

大功告成。

by the way

使用两个节点的client,hbase入库达到35000条/秒。

集群6台server。

HIVE HBASE 整合的更多相关文章

  1. hive与hbase整合过程

    实现目标 Hive可以实时查询Hbase中的数据. hive中的表插入数据会同步更新到hbase对应的表中. 可以将hbase中不同的表中的列通过 left 或 inner join 方式映射到hiv ...

  2. Hive(五):hive与hbase整合

    配置 hive 与 hbase 整合的目的是利用 HQL 语法实现对 hbase 数据库的增删改查操作,基本原理就是利用两者本身对外的API接口互相进行通信,两者通信主要是依靠hive_hbase-h ...

  3. 《OD大数据实战》HBase整合MapReduce和Hive

    一.HBase整合MapReduce环境搭建 1. 搭建步骤1)在etc/hadoop目录中创建hbase-site.xml的软连接.在真正的集群环境中的时候,hadoop运行mapreduce会通过 ...

  4. Hadoop Hive与Hbase整合+thrift

    Hadoop Hive与Hbase整合+thrift 1.  简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句 ...

  5. 大数据工具篇之Hive与HBase整合完整教程

    大数据工具篇之Hive与HBase整合完整教程 一.引言 最近的一次培训,用户特意提到Hadoop环境下HDFS中存储的文件如何才能导入到HBase,关于这部分基于HBase Java API的写入方 ...

  6. Hive与Hbase整合

    Hive与Hbase整合 1.文档 Hive HBase Integration 2.拷贝jar文件 2.1.把Hbase的lib目录下面的jar文件全部拷贝到Hive的lib目录下面 cd /hom ...

  7. Hive篇---Hive与Hbase整合

     一.前述 Hive会经常和Hbase结合使用,把Hbase作为Hive的存储路径,所以Hive整合Hbase尤其重要. 二.具体步骤 hive和hbase同步https://cwiki.apache ...

  8. HBase(六)HBase整合Hive,数据的备份与MR操作HBase

    一.数据的备份与恢复 1. 备份 停止 HBase 服务后,使用 distcp 命令运行 MapReduce 任务进行备份,将数据备份到另一个地方,可以是同一个集群,也可以是专用的备份集群. 即,把数 ...

  9. hive存储处理器(StorageHandlers)以及hive与hbase整合

    此篇文章基于hive官方英文文档翻译,有些不好理解的地方加入了我个人的理解,官方的英文地址为: 1.https://cwiki.apache.org/confluence/display/Hive/S ...

随机推荐

  1. 错误: 找不到或无法加载主类 Files\red5-server ,原因与解决办法

    因为你把 red5放到了 Program Files 下,而Program Files 中间有个空格,启动路径不允许有空格,换个没空格的路径就OK啦

  2. Android之WifiManager

    移动设备离不开网络,android平台中在包android.net.wifi下提供了一些类专门用于管理设备的Wifi功能.该包下主要存在如下几个类: 1.  ScanResult:主要用来描述通过Wi ...

  3. android 地址控件概述

    最近,公司做项目,需要一个地址控件,本来是想androidcopy开源的android的地址控件,但是了,找来找去.都没有找到一个真正满足我的需求的,普通的地址控件只是精确到市县区三级,但是我们的需求 ...

  4. Android -- ShortCut

    添加 添加快捷方式是向桌面应用(launcher)发送相关action的广播: public static final String ACTION_ADD_SHORTCUT = "com.a ...

  5. apache 伪静态 .htaccess

    虽然网上有很多教程,但是我在这里进行简单对我用到的总结一下. 加载Rewrite模块: 在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/ ...

  6. ab测试工具参数详解

    -n 测试会话中所执行的请求个数,默认仅执行一个请求 -c 一次产生的请求个数,即同一时间发出多少个请求,默认为一次一个 -t 测试所进行的最大秒数,默认为无时间限制....其内部隐含值是[-n 50 ...

  7. YII插件

    dropDownList: Yii中可以采用CHtml类来实现,也可以用CActiveForm来实现.一.用CHtml来实现.VIEW中实现: <?php echo CHtml::dropDow ...

  8. C#.NET常见问题(FAQ)-方法参数带ref是什么意思

    写两个相同的方法,但是参数一个带ref,一个不带,从测试结果可以发现,a变量在ModifyValueByref之后发生了改变,而ModifyValueByvalue没效果     更多教学视频和资料下 ...

  9. Android动态设置字体颜色

    步骤: 1.在values目录下的strings.xml文件中加入颜色:比方 <color name="ccc">#ccc</color> 2.假设你直接这 ...

  10. STL - 容器 - vector简单应用

    VectorTest.cpp #include <vector> #include <iostream> #include <string> #include &l ...