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里面比較方便,所以我们能够採用这样的方式。
hadoop生态系统学习之路(八)hbase与hive的数据同步以及hive与impala的数据同步的更多相关文章
- hadoop生态系统学习之路(十)MR将结果输出到hbase
之前讲了MR将结果输出到hdfs.hive.db,今天再给大家分享一下,怎样将结果输出到hbase. 首先,提一句,笔者在hadoop集群运行此MR的时候报了一个错误.是一个jar包的缘故,这个错误是 ...
- hadoop生态系统学习之路(六)hive的简单使用
一.hive的基本概念与原理 Hive是基于Hadoop之上的数据仓库,能够存储.查询和分析存储在 Hadoop 中的大规模数据. Hive 定义了简单的类 SQL 查询语言,称为 HQL.它同意熟悉 ...
- Hadoop生态系统学习路线
主要介绍Hadoop家族产品,经常使用的项目包含Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa.新添加 ...
- 大数据学习之路之HBASE
Hadoop之HBASE 一.HBASE简介 HBase是一个开源的.分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力.它可以直接使用本地文件系统,也可以 ...
- zigbee学习之路(八):定时器1(中断)
一.前言 通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制. 二.原理分析 定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作 ...
- Object-c学习之路八(NSArray(数组)遍历和排序)
今天学习了NSArray的遍历和排序,现在在这里做一下总结: 遍历现在实现了四中方法: 排序大概有三中方法:(代码中都有注释) 关于对象的排序还是以Student和Book为例 每个Student持有 ...
- 嵌入式Linux驱动学习之路(八)创建最小的根文件系统
busybox 在配置busybox,在是否选择要静态链接库时,在静态下,busybox中的工具不需要动态链接库,能够直接运行.而用户自己编写的程序如果需要动态链接库,还是依然需要有. 如果是动态链接 ...
- IOS7学习之路八(iOS 禁止屏幕旋转的方法)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { retu ...
- IOS学习之路八(GCD与多线程)
GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制.它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务. GCD中的FIFO队列称为 ...
随机推荐
- ORA-17129=SQL 字符串不是DML 语句
ORA-17129=SQL 字符串不是DML 语句 oracle这个错误的意思是 select 不可以算DML 数据操纵语言(Data Manipulation Language, DML)是SQL语 ...
- (转)Unity3D研究院之游戏架构脚本该如何来写(三十九)
这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏 ...
- (转)Unity3D协同程序(Coroutine)
一.什么是协同程序 协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行.换句话说,开启协同程序就是开启一个线程. 二.协同程序的开启与终止 在Unity3D中,使用MonoBeha ...
- SQL表操作习题4 14~25题 缺20题
- 每天一个liunx命令2之rz和sz命令
1安装命令工具包 yum install lrzsz 2sz命令发送文件到本地(send): sz filename 3rz命令本地上传文件到服务器(receive): rz 执行该命令后 ...
- 无需重新编译php加入ftp扩展的解决方法
无需重新编译php加入ftp扩展的解决方法 本文为大家介绍无需重新编译php加入ftp扩展的方法,有需要的朋友可以参考下 首先,进入源码目录cd php-5.2.13/ext/ftp #运行p ...
- MVC中的Controller中返回一个JsonResult在弹出一个下载框?
public JsonResult ReturnTest() { return Json(new {myMsg ="hello world"}, "text/html; ...
- select 下拉框的选中项的change事件
HTML文件 <span style="float: left;">类 型: <select id="type" class=& ...
- Python转码问题的解决方法
FROM: http://www.jb51.net/article/16104.htm 在Python中,可以对String调用decode和encode方法来实现转码. 比如,若要将某个St ...
- 初识Nginx及编译安装Nginx
初识Nginx及编译安装Nginx 环境说明: 系统版本 CentOS 6.9 x86_64 软件版本 nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...