一直想将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. 使用C#创建及调用WCF完整实例 (Windows服务宿主)

    关于WCF的概念.原理.优缺点等,在这里就不多说了,网上很多,可以自行搜索,比我解释的要专业的多. 这里直接说使用Windows 服务(Windows Service)作为宿主如何实现,其它方式不在此 ...

  2. 关于ListView中getView被重复调用的问题

    我用ListView显示数据时,自定义了一个适配器(extends ArrayAdapter),然后重写了getView方法,现在出现一个问题,就是这个getView()方法被重复调用了,比如我的_d ...

  3. BNU Concentric Rings

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=16030 Concentric Rings   There are several different ...

  4. java 判断字符串是否相等 (转)

    http://blog.csdn.net/chtnj/article/details/7909720 判断字符串相等我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题 ...

  5. 在命令行上 使用 mutt, fetchmail, maildrop, msmtp 收发邮件

    基于shell 现在已经有了 Mail.app, Thunderbird, Outlook 这些图形化工具能很方便的处理邮件,为啥还需要 mutt 这种命令行文本方式的邮件工具呢?mutt 的一个优势 ...

  6. Android拍照+方形剪裁——附代码与效果图

    本文链接    http://blog.csdn.net/xiaodongrush/article/details/29173567 參考链接    http://stackoverflow.com/ ...

  7. hdoj-1251-统计难题【map】

    统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submiss ...

  8. url请求返回结果测试工具(CURL)

    官网:http://curl.haxx.se/download.html 具体用法用时百度 或  到时再补充

  9. 关于free使用注意

    1,free的指针应该是通过 malloc calloc realloc 申请过内存的. 2,free的带有指针元素的结构体时要注意释放结构体的元素指针. 3,对于指向同一块内存的两个或多个指针,如果 ...

  10. Android 线性布局(LinearLayout)相关官方文档 - 指南部分

    Android 线性布局(LinearLayout)相关官方文档 - 指南部分 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用 ...