`

hbase+hive结合使用

 
阅读更多

 

 

1 hbase到hive的使用:

 

相当于从hive上创建一个外表,快捷引用到hbase表,这么做能利用上hive的sql查询能力,方便查询hbase数据。

 

a) hbase准备表和数据:

 

create "test","base","cf","data"
put "test","key1","base:name","baseName1"
put "test","key2","base:name","baseName2"
put "test","key3","base:name","baseName3"
put "test","key1","base:age","baseAge1"
put "test","key2","base:age","baseAge2"
put "test","key3","base:age","baseAge3"

put "test","key1","data:name","dataName1"
put "test","key2","data:name","dataName2"
put "test","key3","data:name","dataName3"
put "test","key1","data:age","dataAge1"
put "test","key2","data:age","dataAge2"
put "test","key3","data:age","dataAge3"

put "test","key1","cf:name","cfName1"
put "test","key2","cf:name","cfName2"
put "test","key3","cf:name","cfName3"
put "test","key1","cf:age","cfAge1"
put "test","key2","cf:age","cfAge2"
put "test","key3","cf:age","cfAge3"

 

 

准备的表逻辑结构:



 

b) 创建hbase映射的hive表:

 

 语法如下:

create external table  hbase_hive_1(key String, value String)   指定hive表和列
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties   指定hive到hbase应用的类
("hbase.columns.mapping"="info:des,info:area")  指定hbase的列,  其中hbase的key即使不写也会被hive识别到,如果写写法为 ("hbase.columns.mapping"=":key,info:des,info:area")   
tblproperties("hbase.table.name"="f_stu")   指定hbase的表

 

   这就是hive的外表,快捷链接,hive和hbase映射涉及到的hive/lib/hive-hbase-handler-0.14.0.jar这个包

 

hbase-hive仅仅是一个映射,如果hbase数据变更,那么hive这个映射的数据也会变更, 这个做过测试。

 

这样,就能依靠hbase来 新增/修改单条记录, 然后利用hive这个外表来实现hbase数据统计(完美结合)

 

 对上述hbase表增加hive外表写法:

create external table  hbase_hive_3(key String, basename String, baseage String, dataname string, dataage string)     
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties   
("hbase.columns.mapping"="base:name,base:age,data:name,data:age")  
tblproperties("hbase.table.name"="test") 

 

hive查询结果:
hive (default)> select * from hbase_hive_3 ;       
OK
hbase_hive_3.key        hbase_hive_3.basename   hbase_hive_3.baseage    hbase_hive_3.dataname hbase_hive_3.dataage
key1    baseName111     baseAge1        dataName1       dataAge1
key2    baseName2       baseAge2        dataName2       dataAge2
key3    baseName3       baseAge3        dataName3       dataAge3

 

 

2 hbase到hive的使用:

 

 

a)  stu数据; 以\t间隔

1	zhangsan
2	lisi
3	wangwu

 

b) hive 准备原表数据:

hive>create table stu(id string,name string) row format delimited fields terminated by '\t';
hive>load data local inpath '/opt/stu' into table stu;

 

c) hbase 创建空表,用于装载hive原表数据:

 

hbase>create 'stu', 'base'

 

d) hive创建hbase目标表的映射表:
hive>create external table stu_hbase(key string, name string) 
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
with serdeproperties ("hbase.columns.mapping" = ":key,base:name") 
tblproperties ("hbase.table.name" = "stu");
 
e) 将hive原表数据拷贝一份到 hive-hbase映射表:
hive>insert overwrite table stu_hbase select * from stu;   此时关联hbase的表hbase_table就有数据了。
 
f) 检测hbase 表数据:
hbase(main):009:0> scan 'stu'
ROW                      COLUMN+CELL
 1                       column=base:name, timestamp=1456725485282, value=zhangsan
 2                       column=base:name, timestamp=1456725485282, value=lisi
 3                       column=base:name, timestamp=1456725485282, value=wangwu

此时stu里面有数据了。
 
 感觉所谓的hive到hbase,还是在hive中创建了一个hbase的外表,只不过此时hbase表没有数据,然后将hive中创建的这个habse外表数据装载hive原来表的数据而已。
 
3 总结:
      目前,在工作中,只遇到过 以hbase表为基础,创建hive外表关联的场景,目的是给数据库的人员查询使用。
  • 大小: 5.6 KB
分享到:
评论
1 楼 star12396 2017-11-17  
楼主,那hbase结合hive使用,这种架构稳定不?机器的内存,cpu和硬盘配置是否要很高?另外,如果hbase表的字段内有很多特殊字符,这样在hive基于hbase上建表的时候,需要制定分割符不?

相关推荐

    HADOOP+HBASE+HIVE整合工程和文档

    对于开发者来说,理解和掌握Hadoop、HBase、Hive的整合使用,是提升大数据处理能力的关键。通过阅读相关的文档,如官方手册、技术博客、社区讨论等,可以深入学习这些组件的原理和实践技巧,从而更好地运用在实际...

    19:Flume+HBase+Hive集成大数据项目离线分析.rar

    4. **Flume 和 HBase 集成**: 将 Flume 与 HBase 结合使用,可以实现实时或近实时的数据流入数据仓库。Flume 可以配置为将收集的数据直接写入 HBase 表,这样数据一旦生成就会立即存储,适合于需要快速响应的应用...

    hadoop2.2+hbase0.96+hive0.12 安装文档

    综合以上信息,用户在进行hadoop2.2+hbase0.96+hive0.12的集成安装时,应该详细检查各个组件的版本兼容性,确保系统权限设置正确,按照实践指南执行相关配置步骤,并正确设置和使用MySQL数据库作为元数据存储。...

    HDFS+MapReduce+Hive+HBase十分钟快速入门.zip_hbase_hdfs_hive_mapReduce

    在大数据处理领域,Hadoop生态系统中的HDFS(Hadoop Distributed File System)、MapReduce、Hive和HBase是四个至关重要的组件。...在实际应用中,这些技术通常结合使用,以解决大数据环境下的存储、计算和分析问题。

    HBase与hive整合 和 hive与hdfs结合的效率对比1

    Hive与HBase的结合主要依赖于HBaseStorageHandler,它作为两者之间的桥梁,允许Hive访问和操作HBase中的数据。Hive通过HBaseStorageHandler获取HBase表的相关信息,如表名、列簇和列,以及InputFormat和OutputFormat...

    hbase_hive_thrift_php

    将这些组件结合在一起,我们可以构建一个系统,其中PHP作为前端开发语言,通过Thrift接口与后端的HBase和Hive进行通信。用户可以通过PHP编写的应用程序来查询或操作存储在HBase中的大数据,或者通过Hive进行复杂的...

    hbase与hive数据同步共4页.pdf.zip

    1. **使用Hadoop MapReduce**: 可以编写MapReduce作业来实现HBase和Hive之间的数据复制。Map阶段处理HBase中的数据,Reduce阶段将处理后的数据写入Hive。这种方式灵活性高,但开发成本相对较高。 2. **HBase ...

    Hadoop、HBase、Hive、Pig、Zookeeper资料整理

    - **一个hivehbasehdoop+eclipse的实例.doc**:这个文档可能提供了一个综合实例,演示了如何结合使用Hadoop、HBase和Hive,以及如何在Eclipse中进行开发。 - **Hadoop-0.20.0-HDFS+MapReduce+Hive+HBase十分钟快速...

    分布式数据库课程设计+基于Hbase的滴滴出行数据分析+Hive+Hadoop+Mysql+Sqoop+可视化

    使用 Sqoop 将 Hive 中处理后的数据导出到 MySQL 数据库,这样可以将大数据分析的结果与传统的业务系统结合,方便进行报表展示和业务决策。 4. 数据可视化展示 最后,通过 Python 编程实现对 MySQL 中数据的可视化...

    源码主要用于学习:1. Spring Boot+Hadoop+Hive+Hbase实现数据基本操作,Hive数据源使.zip

    - 使用Spring Boot配置数据源连接到Hadoop、Hive和Hbase。 - 编写Hive查询语句,通过Spring Boot的JDBC或Hive JDBC驱动执行,实现数据的CRUD操作。 - 设计和实现Hbase的数据模型,以便高效地存储和检索数据。 - 使用...

    hadoop、hbase、hive等相关面试问题

    - 两者可以通过Hive-on-HBase的方式结合使用,即利用Hive的SQL接口来查询HBase中的数据,增强了HBase的查询灵活性。 #### 2. HBase数据结构 **知识点解析:** HBase的数据模型主要由行键(Row Key)、列族(Column...

    1-6+HBase+在风控系统应用和高可用实践.pdf

    它能快速地导入海量数据,并与Hive、Spark等大数据分析工具紧密结合,实现风控分析和在线服务。 HBase的架构设计包括binlog同步、schema管理、SQL查询支持和索引功能,以及数据导出至数据仓库等功能。通过接口封装...

    伪分布式的Hadoop+Hive+HBase搭建记录[收集].pdf

    Hive是建立在Hadoop之上的数据仓库工具,它允许用户使用SQL(HQL,Hive SQL)语言进行数据查询、分析和管理。Hive将SQL语句转化为MapReduce任务执行,提供了对大型数据集的高效分析能力。尽管Hive的查询速度相比传统...

    浅谈Hive vs. HBase

    - **学习曲线**:虽然 HBase 提供了类似 SQL 的操作语言,但对于初次使用的用户来说仍有一定的学习门槛。 - **依赖性**:为了运行 HBase,需要配置 ZooKeeper,这是一个针对大型分布式系统的协调服务。 **2.5 应用...

    3-1+HBase+在车联网中的实践与应用.pdf

    同时,为了实现数据分层,G7采用了温数据(近线查询)、冷数据(离线查询)和热数据(在线查询)的策略,通过实时同步到公有云的HBase处理热数据,私有云的HDFS处理冷数据,而温数据则由HBase和Hive共同管理,利用...

    Hadoop+数据存储+Hive+教程

    通过 Hive,用户可以使用 SQL 查询语言来操作 HBase 表,大大降低了使用门槛。 - **Pig**:Pig 是另一个高级数据分析工具,它提供了一种类似于 SQL 的语言(Pig Latin),可以用来处理存储在 HBase 中的数据。 - **...

    基于Hadoop的美团外卖数据分析.zip

    《基于Hadoop的美团外卖数据分析》 在大数据时代,企业对数据的挖掘和分析变得尤为重要...总的来说,Hadoop在美团外卖数据分析中的应用,是大数据与实际业务结合的成功案例,展示了大数据技术在现代商业中的巨大价值。

Global site tag (gtag.js) - Google Analytics