hadoop生态系统学习之路(八)hbase与hive的数据同步以及hive与impala的数据同步
在之前的博文中提到,hive的表数据是能够同步到impala中去的。
一般impala是提供实时查询操作的,像比較耗时的入库操作我们能够使用hive。然后再将数据同步到impala中。另外,我们也能够在hive中创建一张表同一时候映射hbase中的表。实现数据同步。
以下。笔者依次进行介绍。
一、impala与hive的数据同步
首先,我们在hive命令行运行show databases;能够看到有以下几个数据库:
然后,我们在impala相同运行show databases;能够看到:
眼下的数据库都是一样的。
以下,我们在hive里面运行create database qyk_test;创建一个数据库,例如以下:
然后,我们使用qyk_test这个数据库创建一张表,运行create table user_info(id bigint, account string, name string, age int) row format delimited fields terminated by ‘\t’;例如以下:
此时。我们已经在hive这边创建好了,然后直接在impala这边运行show databases;能够看到:
连qyk_test这个数据库都没有。
接下来。我们在impala运行INVALIDATE METADATA;然后再查询能够看到:
数据库和表都会同步过来。
好了,笔者来做个总结:
假设在hive里面做了新增、删除数据库、表或者数据等更新操作,须要运行在impala里面运行INVALIDATE METADATA;命令才干将hive的数据同步impala。
假设直接在impala里面新增、删除数据库、表或者数据。会自己主动同步到hive,无需运行不论什么命令。
二、hive与hbase的数据同步
首先,我们在hbase中创建一张表create ‘user_sysc’, {NAME => ‘info’},然后,我们在hive中运行
CREATE EXTERNAL TABLE user_sysc (key int, value string) ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ( 'serialization.format'='\t', 'hbase.columns.mapping'=':key,info:value', 'field.delim'='\t')
TBLPROPERTIES ('hbase.table.name'='user_sysc')
创建一张外部表指向hbase中的表,然后,我们在hive运行insert into table user_sysc select id,name from user_info;入一步份数据到user_sysc能够看到:
然后。我们在hbase里面运行scan ‘user_sysc’能够看到:
接下来,我们在hbase里面运行deleteall ‘user_sysc’, ‘11’删掉一条数据。例如以下:
然后。我在hive里面查询看看。例如以下:
说明自己主动同步过来了。因此,仅仅要创建hive表时。与hbase中的表做了映射。表名和字段名能够不一致,之后不管在hbase中新增删除数据还是在hive中。都会自己主动同步。
假设在hive里面是创建的外部表须要在hbase中先创建。内部表则会在hbase中自己主动创建指定的表名。
由于hive不支持删除等操作。而hbase里面比較方便,所以我们能够採用这样的方式。
最新文章
- DBA数据库:MySQL简述
- MQTT V3.1----publish解读
- 在Android上用AChartEngine轻松绘制图表
- 准确理解SO_REUSEADDR
- 【云计算】Docker集中化web界面管理平台shipyard
- objectarx 卸载加载arx模块
- 简单的C语言小学四则运算设计
- java类加载器学习2——自定义类加载器和父类委托机制带来的问题
- Mysql的转义字符
- 设计模式 -->; (5)适配器模式
- 1005:Number Sequence(hdu,数学规律题)
- STM32进入HardFault_Handler处理办法
- Docker 部署Django项目
- 2019.01.02 bzoj3513: [MUTC2013]idiots(fft)
- ajax中的contentType使用
- Mysql 锁技术要点【转载】
- OGG_GoldenGate数据表定义方式DEFGEN(案例)
- RhinoMock学习-Stub方法
- 谈谈 Java 线程状态相关的几个方法
- 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存