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 ...
随机推荐
- 主成分分析(PCA)
相对与网上很多人分享的有关PCA的经历,我第一次接触PCA却不是从人脸表情识别开始的,但我所在的实验室方向之一是人脸的研究,最后也会回到这个方向上来吧. PCA(principal component ...
- [Algorithm] Find first missing positive integer
Given an array of integers, find the first missing positive integer in linear time and constant spac ...
- [Javascirpt] Immediately-Invoked function!!! IMPORTANT
var parkRides = [["Birch Bumpers", 40], ["Pines Plunge", 55], ["Cedar Coast ...
- iptables日志与limit参数
在处理工作问题的时候需要查看防火墙的日志,由于默认日志都是在系统日志里/var/log/messages里面.需要对rsyslog做设置. 首先编辑配置文件/etc/rsyslog.conf如下: # ...
- 理解进程调度时机跟踪分析进程调度与进程切换的过程(Linux)
----------------------------------------------------------------------------------- 理解进程调度时机跟踪分析进程调度 ...
- ZH奶酪:Yii PHP sum SQL查询语句
例子: $sql = 'SELECT SUM(o.price) as `sum` FROM `order` o WHERE o.customer_id ='.$profile->id; $ret ...
- iOS 设置UILabel 的内边距
iOS 设置UILabel 的内边距 - (void)drawTextInRect:(CGRect)rect { UIEdgeInsets insets = {, , , }; [super draw ...
- STL 源代码剖析 算法 stl_algo.h -- partial_sort / partial_sort_copy
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie partial_sort / partial_sort_copy ------------- ...
- Linux系统重装与还原
当初第一次装ubuntu系统时,对文件系统的构成还不太了解,所以在分区的时候给home的分区特别小,导致后期软件都装不进去.说磁盘已满.所以想对系统又一次分区. 上网找了资料,都说用GParted这个 ...
- ASP.NET 性能监控和优化入门
关键要点: 只有与应用指标相关联,基础设施指标才能最大发挥作用. 高效性能优化的关键在于性能数据. 一些APM工具为ASP.NET提供了开箱即用的支持,这样入门使用ASP.NET仅需最小限度的初始设置 ...