HIVE HBASE 整合
一直想将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 整合的更多相关文章
- hive与hbase整合过程
实现目标 Hive可以实时查询Hbase中的数据. hive中的表插入数据会同步更新到hbase对应的表中. 可以将hbase中不同的表中的列通过 left 或 inner join 方式映射到hiv ...
- Hive(五):hive与hbase整合
配置 hive 与 hbase 整合的目的是利用 HQL 语法实现对 hbase 数据库的增删改查操作,基本原理就是利用两者本身对外的API接口互相进行通信,两者通信主要是依靠hive_hbase-h ...
- 《OD大数据实战》HBase整合MapReduce和Hive
一.HBase整合MapReduce环境搭建 1. 搭建步骤1)在etc/hadoop目录中创建hbase-site.xml的软连接.在真正的集群环境中的时候,hadoop运行mapreduce会通过 ...
- Hadoop Hive与Hbase整合+thrift
Hadoop Hive与Hbase整合+thrift 1. 简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句 ...
- 大数据工具篇之Hive与HBase整合完整教程
大数据工具篇之Hive与HBase整合完整教程 一.引言 最近的一次培训,用户特意提到Hadoop环境下HDFS中存储的文件如何才能导入到HBase,关于这部分基于HBase Java API的写入方 ...
- Hive与Hbase整合
Hive与Hbase整合 1.文档 Hive HBase Integration 2.拷贝jar文件 2.1.把Hbase的lib目录下面的jar文件全部拷贝到Hive的lib目录下面 cd /hom ...
- Hive篇---Hive与Hbase整合
一.前述 Hive会经常和Hbase结合使用,把Hbase作为Hive的存储路径,所以Hive整合Hbase尤其重要. 二.具体步骤 hive和hbase同步https://cwiki.apache ...
- HBase(六)HBase整合Hive,数据的备份与MR操作HBase
一.数据的备份与恢复 1. 备份 停止 HBase 服务后,使用 distcp 命令运行 MapReduce 任务进行备份,将数据备份到另一个地方,可以是同一个集群,也可以是专用的备份集群. 即,把数 ...
- hive存储处理器(StorageHandlers)以及hive与hbase整合
此篇文章基于hive官方英文文档翻译,有些不好理解的地方加入了我个人的理解,官方的英文地址为: 1.https://cwiki.apache.org/confluence/display/Hive/S ...
随机推荐
- mybatis异常 :元素内容必须由格式正确的字符数据或标记组成。
今天同事写一个查询接口的时候,出错:元素内容必须由格式正确的字符数据或标记组成. 错误原因:mybatis查询的时候,需要用到运算符 小于号:< 和 大于号: >,在mybatis配置文 ...
- navigator.geolocation在IOS10系统中无法定位问题
在使用地图需要定位的朋友都可能遇到这个问题,参考的文章说的是用百度地图,我用的是腾讯地图,但是其中的原理差不多.所以谢谢这些提供资源的大神们. if (navigator.geolocation) { ...
- Java基础(十四):泛型
一.Java 泛型: Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就 ...
- 内容匹配广告投放技术4:网盟CTR预估(百度文库课程)
原文:http://wbj0110.iteye.com/blog/2043065 该文是百度文库课程<计算广告学之内容匹配广告&展示广告原理.技术和实践>的课程笔记,感谢百度! 课 ...
- C++ RegCreateKeyEx成功了,但是注册表并没有这一项
C++ - RegCreateKeyEx success but without result Could anybody tell me what's wrong is with this code ...
- COM中的几个基本概念
类厂 组件结构示例 DllGetClassObject COM库与类厂的交互
- lua接收图片并进行md5处理
需要luacurl(http://luacurl.luaforge.net/)和MD5两个库函数 curl = require("luacurl") require("m ...
- cpu访址能力和内存
这里有两个概念:cpu访址能力和提供的内存.举例来说,有个灯泡,可以照亮100立方米的空间,只有照亮的空间才可以工作.假如现在的空间只有50立方米,只要增加空间,可工作的空间就增加了.如果当前已经是1 ...
- Silverlight 之 断点调试
silverlight程序经常会遇到无法调试的情况,下面来总结解决方案. 一.问题描述 在Silverlight开发过程中,经常时不时的会碰到Silverlight无法调试的问题.如下几种情况: 1. ...
- hdu-悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
http://acm.hdu.edu.cn/showproblem.php?pid=2191 Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你 ...