- 浏览: 483988 次
- 性别:
- 来自: 南阳
文章分类
最新评论
-
yuanhongb:
这么说来,感觉CGI和现在的JSP或ASP技术有点像啊
cgi -
draem0507:
放假了还这么勤啊
JXL操作Excel -
chenjun1634:
学习中!!
PHP/Java Bridge -
Jelen_123:
好文章,给了我好大帮助!多谢!
hadoop安装配置 ubuntu9.10 hadoop0.20.2 -
lancezhcj:
一直用job
Oracle存储过程定时执行2种方法(转)
hive hbase整合,要求比较多,1.hive的得是0.6.0(当前最新的版本)
2.hive本身要求hadoop的最高版本是hadoop-0.20.2
3.要求hbase的版本是0.20.3,其他版本需要重新编译hive_hbase-handler
但是新版的hbase(0.90)变动特别大,根本无法从编译。这点比较恶心,hbase目前升级比较快,当前是0.90(从0.20.6直接跳到0.89),至于为什么这样跳跃,参考官方的解释http://wiki.apache.org/hadoop/Hbase/HBaseVersions
1)启动Hbase,
要求hbase-0.20.3,zookeeper-3.2.2
如果使用的不是hbase-0.20.3需要重新编译hive_hbase-handler.jar
2)单节点HBase的连接
./bin/hive -hiveconf hbase.master=master:60000
3)集群HBase的连接
1.启动zookeeper
2.启动hbase
3.启动hive,添加zookeeper的支持
//所有的zookeeper节点
二、插入数据
启动
hive
1.创建hbase识别的数据库
hbase.table.name 定义在hbase的table名称
hbase.columns.mapping 定义在hbase的列族
2.使用sql导入数据
i.预先准备数据
a)新建hive的数据表
b)批量插入数据
这个文件位于hive的安装目录下,examples/files/kv1.txt
注意,默认的启动会报错的
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.ExecDriver
启动的时候要添加
3查看数据
会显示刚刚插入的数据
86 val_86
hbase
1.登录hbase
2.查看表结构
3.查看加载的数据
1 row(s) in 0.0540 seconds
可以看到,在hive中添加的数据86,已经在hbase中了
4.添加数据
Hive
参看hive中的数据
刚刚在hbase中插入的数据,已经在hive里了
hive访问已经存在的hbase
使用CREATE EXTERNAL TABLE
三、多列和多列族(Multiple Columns and Families)
1.创建数据库
2.插入数据
这个有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查看结构
4.查看hbase的数据
5.在hive中查看
2.hive本身要求hadoop的最高版本是hadoop-0.20.2
3.要求hbase的版本是0.20.3,其他版本需要重新编译hive_hbase-handler
但是新版的hbase(0.90)变动特别大,根本无法从编译。这点比较恶心,hbase目前升级比较快,当前是0.90(从0.20.6直接跳到0.89),至于为什么这样跳跃,参考官方的解释http://wiki.apache.org/hadoop/Hbase/HBaseVersions
1)启动Hbase,
要求hbase-0.20.3,zookeeper-3.2.2
如果使用的不是hbase-0.20.3需要重新编译hive_hbase-handler.jar
2)单节点HBase的连接
./bin/hive -hiveconf hbase.master=master:60000
3)集群HBase的连接
1.启动zookeeper
2.启动hbase
3.启动hive,添加zookeeper的支持
- ./bin/hive -hiveconf hbase.zookeeper.quorum= master,slave-A,slave-B
//所有的zookeeper节点
二、插入数据
启动
- ./bin/hive --auxpath /data/soft/hive/lib/hive_hbase-handler.jar,/data/soft/hive/lib/hbase-0.20.3.jar,/data/soft/hive/lib/zookeeper-3.2.2.jar -hiveconf hbase.zookeeper.quorum=slave-001,slave-002,slave-003
- ./bin/hive --auxpath /data/soft/hive/lib/hive_hbase-handler.jar,/data/soft/hive/lib/hbase-0.20.3.jar,/data/soft/hive/lib/zookeeper-3.2.2.jar -hiveconf hbase.zookeeper.quorum=slave-001,slave-002,slave-003
hive
1.创建hbase识别的数据库
- 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");
- 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导入数据
i.预先准备数据
a)新建hive的数据表
- CREATE TABLE pokes (foo INT, bar STRING);
b)批量插入数据
- hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;
这个文件位于hive的安装目录下,examples/files/kv1.txt
- ii.使用sql导入hbase_table_1
- INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM pokes WHERE foo=86;
注意,默认的启动会报错的
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.ExecDriver
启动的时候要添加
- -auxpath /data/soft/hive/lib/hive_hbase-handler.jar,/data/soft/hive/lib/hbase-0.20.3.jar,/data/soft/hive/lib/zookeeper-3.2.2.jar
- -auxpath /data/soft/hive/lib/hive_hbase-handler.jar,/data/soft/hive/lib/hbase-0.20.3.jar,/data/soft/hive/lib/zookeeper-3.2.2.jar
3查看数据
- hive> select * from hbase_table_1;
会显示刚刚插入的数据
86 val_86
hbase
1.登录hbase
- [root@master hbase]# ./bin/hbase shell
2.查看表结构
- hbase(main):001:0> describe 'xyz'
- DESCRIPTION ENABLED
- {NAME => 'xyz', FAMILIES => [{NAME => 'cf1', COMPRESSION => 'NONE', VE true
- RSIONS => '3', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY =>
- 'false', BLOCKCACHE => 'true'}]}
- 1 row(s) in 0.7460 seconds
- hbase(main):001:0> describe 'xyz'
- DESCRIPTION ENABLED
- {NAME => 'xyz', FAMILIES => [{NAME => 'cf1', COMPRESSION => 'NONE', VE true
- RSIONS => '3', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY =>
- 'false', BLOCKCACHE => 'true'}]}
- 1 row(s) in 0.7460 seconds
3.查看加载的数据
- hbase(main):002:0> scan 'xyz'
- ROW COLUMN+CELL
- 86 column=cf1:val, timestamp=1297690405634, value=val_86
- hbase(main):002:0> scan 'xyz'
- ROW COLUMN+CELL
- 86 column=cf1:val, timestamp=1297690405634, value=val_86
1 row(s) in 0.0540 seconds
可以看到,在hive中添加的数据86,已经在hbase中了
4.添加数据
- ' hbase(main):008:0> put 'xyz','100','cf1:val','www.360buy.com'
- 0 row(s) in 0.0630 seconds
Hive
参看hive中的数据
- hive> select * from hbase_table_1;
- OK
- 100 www.360buy.com
- 86 val_86
- Time taken: 8.661 seconds
刚刚在hbase中插入的数据,已经在hive里了
hive访问已经存在的hbase
使用CREATE EXTERNAL TABLE
- 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");
- 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.创建数据库
- 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"
- );
- 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.插入数据
- INSERT OVERWRITE TABLE hbase_table_2 SELECT foo, bar, foo+1, foo+2
- FROM pokes WHERE foo=98 OR foo=100;
- 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查看结构
- 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
- 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的数据
- 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
- 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中查看
发表评论
-
mysql 定时任务
2015-11-03 09:57 772定时任务 查看event是否开启: show variabl ... -
mysql定时器
2015-08-04 14:01 6005.1以后可以使用 ALTER EVENT `tes ... -
oracle安装成功后,更改字符集
2015-07-23 11:53 636看了网上的文章,乱码有以下几种可能 1. 操作系统的字符集 ... -
运用navicat for mysql实现定时备份
2015-06-05 15:02 1085使用navicat for mysql实现定时备份 首 ... -
Oracle10g数据文件太大,导致C盘空间不够用的解决方法
2015-03-19 15:22 929由于在安装的时候将Oracle安装到了C盘,表空间也创建到了C ... -
mysql 获取第一个汉字首字母
2015-03-18 17:48 647select dmlb, dmz, dmsm1, CHAR ... -
mysql字符串函数(转载)
2014-11-13 12:05 566对于针对字符串位置的操作,第一个位置被标记为1。 AS ... -
MySQL中tinytext、text、mediumtext和longtext详解
2014-11-07 11:37 859、数字类型 类型 范围 说明 ... -
数据库中计算两地图坐标点之间的距离
2014-09-11 14:29 982CREATE OR REPLACE FUNCTION DI ... -
Oracle 取随机数
2014-05-26 11:58 4781、从表中随机取记录 select * from ... -
ORACLE 将BLOB类型转成SQL语句插入
2014-05-06 16:35 1229比如有张表结构如下: create table TestBl ... -
Oracle10g通过DBLink访问MySQL示例
2014-04-22 14:35 6601, 首先在Oracle所在计算机安装MySQL的Client ... -
Oracle执行计划详解
2014-04-22 09:32 650Oracle执行计划详解 ----- 简介: 本文全面 ... -
完全卸载oracle11g步骤
2014-03-06 18:04 575完全卸载oracle11g步骤: ... -
ODI(Oracle Data Integrator)初探
2014-02-10 17:35 0ODI(Oracle Data Integrator ... -
ORACLE10G RMAN 命令
2013-12-02 13:48 1085RMAN 命令 连接到目标数据库(不用恢复目录数据库) ... -
oracle之rman入门指南
2013-12-02 13:43 739这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经 ... -
RMAN参考使用手册(转)
2013-12-02 13:40 969RMAN的概念与体系结构 Oracle 9i RMAN的配置 ... -
数据泵文件
2013-12-02 13:34 812expdp介绍 EXPDP命令行选项 1. ATTACH 该选 ... -
oracle表分区详解
2013-09-22 10:05 690此文从以下几个方面来整理关于分区表的概念及操作: ...
相关推荐
在HIVE中创建HBASE的外表,是实现HIVE和HBASE整合的关键步骤。外表是一种虚拟表,它不存储实际数据,而是指向HBASE中的实际数据。通过创建外表,HIVE可以直接访问HBASE中的数据,并且可以使用类SQL和各种函数来操作...
【Hive与HBase整合详解】 Hive和HBase是两个大数据处理的重要组件。Hive提供了基于SQL的查询语言(HQL)来处理大规模的数据,适合于离线批处理;而HBase则是一个NoSQL数据库,它基于Google的Bigtable设计,提供高...
将Hive与HBase整合,主要是为了结合两者的优点,实现批量处理和实时查询的无缝对接。整合的关键在于Hive的外部表功能,通过创建指向HBase表的外部表,我们可以用Hive的HQL查询HBase中的数据。 整合步骤如下: 1. *...
### 大数据工具篇之Hive与HBase整合完整教程 #### 一、引言 在大数据处理领域,Hive 和 HBase 是两种非常重要的工具。Hive 是一种数据仓库工具,可以用来进行数据提取、转换和加载(ETL),同时提供了一种 SQL ...
Hive与HBase整合后可以实现多样的使用场景,包括但不限于数据的批量迁移、实时更新、周期性加载以及复杂的数据分析操作。 整合Hive与HBase后,可以在Hive中进行数据的插入、查询、连接(JOIN)、分组(GROUPBY)...
1. **Hive与HBase的集成背景**:介绍为什么需要将Hive与HBase整合,通常是因为需要结合Hive的数据处理能力与HBase的实时查询和高并发性能。 2. **Hive-HBase连接器**:文件"hive-hbase-handler-1.2.1.jar"是Hive...
### Hive整合HBase知识点解析 #### 一、HBase简介及特性 HBase是一个构建在Hadoop分布式文件系统(HDFS)之上的分布式、可扩展的列式存储系统。它被设计用来处理海量数据,提供了高可靠性和高性能的数据访问能力。...
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
hive和hbase整合的时候,如果出现不兼容的情况需要手动编译:hive-hbase-hander-1.2.2.jar把这个jar替换掉hive/lib里的那个jar包
本文将详细介绍Hadoop、HBase和Hive的版本整合兼容性,以及如何确保它们在不同版本间顺畅协作。 首先,Hadoop作为基础平台,其版本选择会直接影响到HBase和Hive的运行。Hadoop的主要组件包括HDFS(分布式文件系统)...
在Java开发中,为了将这些组件整合在一起,你需要相关的jar包,例如包含Hive和HBase的API。这些API允许你在Scala程序中直接操作Hive和HBase,简化了数据处理的流程。例如,`scalatestOne`可能是一个Scala测试项目,...
本文将介绍Hadoop、HBase、Hive以及ZooKeeper的版本整合兼容性,以及如何根据版本找到兼容性信息。 首先,Hadoop是一个开源的分布式存储和计算框架,它由HDFS和MapReduce两部分组成。HDFS用于存储大数据,而...
hive和hbase的整合所需要的编译后的jar包。 注意:这里的hbase版本为:1.2.1 hive的版本为:1.2.1
《HBase与Hive整合及效率对比分析》 在大数据处理领域,HBase和Hive分别扮演着不同的角色。HBase是一款基于Hadoop的分布式数据库,适用于实时查询和大规模数据存储,而Hive则是一个数据仓库工具,侧重于离线批处理...
6. Hive与HBase整合需要做哪些准备工作? **详细解答:** **1. MySQL的使用:** - 不需要在每个客户端安装MySQL,只需在服务器端安装即可。 - MySQL用于存储Hive的元数据,提高性能和可靠性。 **2. 客户端与...
"HIVE和HBASE区别" HIVE和HBASE是两种基于Hadoop的不同技术,分别是数据仓库和Key/Value系统。它们之间有很多区别,包括设计理念、应用场景、查询语言等方面。 HIVE HIVE是一个构建在Hadoop基础设施之上的数据...
HBase2.1.3整合Hive3.1.2,Hive官方的hive-hbase-handler-3.1.1.jar包不好用,自己编译后的,确认好用
6. **监控与优化**:整合工程中需要监控Hadoop、HBase和Hive的性能,通过Ambari等工具进行资源调度、故障排查和性能调优。 在实际应用中,还会遇到如数据安全、容错机制、备份恢复、性能优化等挑战。对于开发者来说...