- 浏览: 299714 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (165)
- hadoop (47)
- linux (11)
- nutch (7)
- hbase (7)
- solr (4)
- zookeeper (4)
- J2EE (1)
- jquery (3)
- java (17)
- mysql (14)
- perl (2)
- compass (4)
- suse (2)
- memcache (1)
- as (1)
- roller (1)
- web (7)
- MongoDB (8)
- struts2 (3)
- lucene (2)
- 算法 (4)
- 中文分词 (3)
- hive (17)
- noIT (1)
- 中间件 (2)
- maven (2)
- sd (0)
- php (2)
- asdf (0)
- kerberos 安装 (1)
- git (1)
- osgi (1)
- impala (1)
- book (1)
- python 安装 科学计算包 (1)
最新评论
-
dandongsoft:
你写的不好用啊
solr 同义词搜索 -
黎明lm:
meifangzi 写道楼主真厉害 都分析源码了 用了很久. ...
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
meifangzi:
楼主真厉害 都分析源码了
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
zhdkn:
顶一个,最近也在学习设计模式,发现一个问题,如果老是看别人的博 ...
Java观察者模式(Observer)详解及应用 -
lvwenwen:
木南飘香 写道
高并发网站的架构
用hbase做数据库,但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询.hive也即 做数据仓库
1. 基于Hadoop+Hive架构对海量数据进行查询:http://blog.csdn.net/kunshan_shenbin/article/details/7105319
2. HBase 0.90.5 + Hadoop 1.0.0 集成:http://blog.csdn.net/kunshan_shenbin/article/details/7209990
本文的目的是要讲述如何让Hbase和Hive能互相访问,让Hadoop/Hbase/Hive协同工作,合为一体。
本文测试步骤主要参考自:http://running.iteye.com/blog/898399
当然,这边博文也是按照官网的步骤来的:http://wiki.apache.org/hadoop/Hive/HBaseIntegration
1. 拷贝hbase-0.90.5.jar和zookeeper-3.3.2.jar到hive/lib下。
注意:如何hive/lib下已经存在这两个文件的其他版本(例如zookeeper-3.3.1.jar),建议删除后使用hbase下的相关版本。
2. 修改hive/conf下hive-site.xml文件,在底部添加如下内容:
[html] view plaincopy <!-- <property> <name>hive.exec.scratchdir</name> <value>/usr/local/hive/tmp</value> </property> --> <property> <name>hive.querylog.location</name> <value>/usr/local/hive/logs</value> </property> <property> <name>hive.aux.jars.path</name> <value>file:///usr/local/hive/lib/hive-hbase-handler-0.8.0.jar,file:///usr/local/hive/lib/hbase-0.90.5.jar,file:///usr/local/hive/lib/zookeeper-3.3.2.jar</value> </property>
注意:如果hive-site.xml不存在则自行创建,或者把hive-default.xml.template文件改名后使用。
具体请参见:http://blog.csdn.net/kunshan_shenbin/article/details/7210020
3. 拷贝hbase-0.90.5.jar到所有hadoop节点(包括master)的hadoop/lib下。
4. 拷贝hbase/conf下的hbase-site.xml文件到所有hadoop节点(包括master)的hadoop/conf下。
注意,hbase-site.xml文件配置信息参照:http://blog.csdn.net/kunshan_shenbin/article/details/7209990
注意,如果3,4两步跳过的话,运行hive时很可能出现如下错误:
[html] view plaincopy org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connect to ZooKeeper but the connection closes immediately. This could be a sign that the server has too many connections (30 is the default). Consider inspecting your ZK server logs for that error and then make sure you are reusing HBaseConfiguration as often as you can. See HTable's javadoc for more information. at org.apache.hadoop. hbase.zookeeper.ZooKeeperWatcher.
参考:http://blog.sina.com.cn/s/blog_410d18710100vlbq.html
现在可以尝试启动Hive了。
单节点启动:
> bin/hive -hiveconf hbase.master=master:60000
集群启动:
> bin/hive -hiveconf hbase.zookeeper.quorum=slave
如何hive-site.xml文件中没有配置hive.aux.jars.path,则可以按照如下方式启动。
> bin/hive --auxpath /usr/local/hive/lib/hive-hbase-handler-0.8.0.jar, /usr/local/hive/lib/hbase-0.90.5.jar, /usr/local/hive/lib/zookeeper-3.3.2.jar -hiveconf hbase.zookeeper.quorum=slave
接下来可以做一些测试了。
1.创建hbase识别的数据库:
[sql] view plaincopy
CREATE TABLE hbase_table_1(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
TBLPROPERTIES ("hbase.table.name" = "xyz");
hbase.table.name 定义在hbase的table名称
hbase.columns.mapping 定义在hbase的列族
2.使用sql导入数据
a) 新建hive的数据表
[sql] view plaincopy
<span><span></span></span>hive> CREATE TABLE pokes (foo INT, bar STRING);
b) 批量插入数据
[sql] view plaincopy
hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLEpokes;
c) 使用sql导入hbase_table_1
[sql] view plaincopy
hive> INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM pokes WHERE foo=86;
3. 查看数据
[sql] view plaincopy
hive> select * from hbase_table_1;
这时可以登录Hbase去查看数据了.
> /usr/local/hbase/bin/hbase shell
hbase(main):001:0> describe 'xyz'
hbase(main):002:0> scan 'xyz'
hbase(main):003:0> put 'xyz','100','cf1:val','www.360buy.com'
这时在Hive中可以看到刚才在Hbase中插入的数据了。
hive> select * from hbase_table_1
4. hive访问已经存在的hbase
使用CREATE EXTERNAL TABLE
[sql] view plaincopy
CREATE EXTERNAL TABLE hbase_table_2(key int, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf1:val")
TBLPROPERTIES("hbase.table.name" = "some_existing_table");
多列和多列族(Multiple Columns and Families)
1.创建数据库
Java代码
CREATE TABLE hbase_table_2(key int, value1 string, value2 int, value3 int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
"hbase.columns.mapping" = ":key,a:b,a:c,d:e"
);
2.插入数据
Java代码
INSERT OVERWRITE TABLE hbase_table_2 SELECT foo, bar, foo+1, foo+2
FROM pokes WHERE foo=98 OR foo=100;
这个有3个hive的列(value1和value2,value3),2个hbase的列族(a,d)
Hive的2列(value1和value2)对应1个hbase的列族(a,在hbase的列名称b,c),hive的另外1列(value3)对应列(e)位于列族(d)
3.登录hbase查看结构
Java代码
hbase(main):003:0> describe "hbase_table_2" DESCRIPTION ENABLED {NAME => 'hbase_table_2', FAMILIES => [{NAME => 'a', COMPRESSION => 'N true ONE', VERSIONS => '3', TTL => '2147483647', BLOCKSIZE => '65536', IN_M EMORY => 'false', BLOCKCACHE => 'true'}, {NAME => 'd', COMPRESSION => 'NONE', VERSIONS => '3', TTL => '2147483647', BLOCKSIZE => '65536', IN _MEMORY => 'false', BLOCKCACHE => 'true'}]} 1 row(s) in 1.0630 seconds
4.查看hbase的数据
Java代码
hbase(main):004:0> scan 'hbase_table_2' ROW COLUMN+CELL 100 column=a:b, timestamp=1297695262015, value=val_100 100 column=a:c, timestamp=1297695262015, value=101 100 column=d:e, timestamp=1297695262015, value=102 98 column=a:b, timestamp=1297695242675, value=val_98 98 column=a:c, timestamp=1297695242675, value=99 98 column=d:e, timestamp=1297695242675, value=100 2 row(s) in 0.0380 seconds
5.在hive中查看
Java代码
hive> select * from hbase_table_2; OK 100 val_100 101 102 98 val_98 99 100 Time taken: 3.238 seconds
参考资料:
http://running.iteye.com/blog/898399
http://heipark.iteye.com/blog/1150648
http://www.javabloger.com/article/apache-hadoop-hive-hbase-integration.html
发表评论
-
博客地址变更
2013-08-16 10:29 1161all the guys of visiting the bl ... -
hive 复杂数据结构嵌套
2013-03-14 16:03 5005Hive hive 除了支持基本的数据结构 hive 复 ... -
hive topN 实现
2012-12-14 06:51 1976hive的topN实现 hive的topN实现方式有很多种, ... -
Hive与表操作有关的语句
2012-12-03 14:25 1400Hive与表操作有关的语句 1.创建表的语句: Create ... -
hive参数
2012-11-29 10:18 0第一部分:Hive 参数 hive ... -
hive中的LEFT SEMI JOIN
2012-11-28 14:06 1974hive中的LEFT SEMI JOIN LEFT S ... -
hive 自定义udf
2012-10-24 10:42 1331Hive的预定义UDF函数列表如下 abs(x) - ret ... -
hive Sort By/Order By/Cluster By/Distribute By
2012-10-22 16:51 1066hive Sort By/Order By/Cluster B ... -
hive的权限控制
2012-10-09 17:48 1620hive的权限控制 hiveserver 不支持 并发的访 ... -
hive 基本数据类型
2012-08-30 18:53 0同事整理的,大部分原文摘过来,有少量改动。 1. 基本数据类 ... -
hive cli 操作表分区
2012-08-10 14:04 1224hive表分区 必须在表定义时创建partition a、 ... -
Hive 数据倾斜总结
2012-08-03 14:19 1070Hive 数据倾斜总结 转载:http://www.tbda ... -
hbase 监控
2012-07-17 19:01 0转自:http://koven2049.iteye.com/b ... -
hadoop metrics 各参数解释
2012-07-17 18:59 1479hadoop metrics 各参数解释 研究使用hadoo ... -
Hbase几种数据入库(load)方式比较
2012-07-17 14:52 13521. 预先生成HFile入库 这个地址有详细的说明http:/ ... -
hbase 使用经验
2012-06-20 19:09 1311hbase 使用经验。 1、单条rowkey下虽然能支持百 ... -
hive中 array,map
2012-04-11 23:03 0关于map的操作说明: drop table table2; ... -
hive array数组
2012-04-11 22:58 0hive中的ARRAY类型array是hive中的数组类型 ... -
hive partitions 操作
2012-04-11 11:00 0必须在表定义时创建partition a、单分区建表语句:c ... -
hive 表分区使用
2012-04-09 14:59 0hive表分区 必须在表定义时创建partition ...
相关推荐
1、内容概要:Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+Elasticsearch+Redash等大数据集群及组件搭建指南(详细搭建步骤+实践过程问题总结)。 2、适合人群:大数据运维、大数据相关技术及组件初学者。 3、...
HADOOP+HBASE+HIVE整合工程和文档
jdk1.8.0_131、apache-zookeeper-3.8.0、hadoop-3.3.2、hbase-2.4.12 mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 ...
hadoop2.2+hbase0.96+hive0.12安装整合详细高可靠文档及经验总结
配置,测试,导入数据详细操作,CREATE TABLE hive_hbase_table(key int, value string,name string) hadoop jar /usr/lib/hbase/hbase-0.90.4-cdh3u3.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY, catgyname...
Hadoop Hive与Hbase整合配置
hive与hbase整合经验谈
大数据工具篇之Hive与HBase整合完整教程
hive和hbase整合的时候,如果出现不兼容的情况需要手动编译:hive-hbase-hander-1.2.2.jar把这个jar替换掉hive/lib里的那个jar包
Hive与hbase的结构,Hive与hbase整合后的结构图 , Hive与hbase整合的原理
此文档是本人在工作中用到的知识总结出来的整合过程,本人是菜鸟,希望得到大神们的建议。
HBase2.1.3整合Hive3.1.2,Hive官方的hive-hbase-handler-3.1.1.jar包不好用,自己编译后的,确认好用
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
hive和hbase的整合所需要的编译后的jar包。 注意:这里的hbase版本为:1.2.1 hive的版本为:1.2.1
Hadoop-2.2.0+Hbase-0.96.2+Hive-0.13.1分布式整合,Hadoop-2.X使用HA方式
mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载
HBase是建立在HDFS上的面上列的数据库。...hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。