在之前的博文中提到,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的数据同步的更多相关文章

  1. hadoop生态系统学习之路(十)MR将结果输出到hbase

    之前讲了MR将结果输出到hdfs.hive.db,今天再给大家分享一下,怎样将结果输出到hbase. 首先,提一句,笔者在hadoop集群运行此MR的时候报了一个错误.是一个jar包的缘故,这个错误是 ...

  2. hadoop生态系统学习之路(六)hive的简单使用

    一.hive的基本概念与原理 Hive是基于Hadoop之上的数据仓库,能够存储.查询和分析存储在 Hadoop 中的大规模数据. Hive 定义了简单的类 SQL 查询语言,称为 HQL.它同意熟悉 ...

  3. Hadoop生态系统学习路线

    主要介绍Hadoop家族产品,经常使用的项目包含Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa.新添加 ...

  4. 大数据学习之路之HBASE

    Hadoop之HBASE 一.HBASE简介 HBase是一个开源的.分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力.它可以直接使用本地文件系统,也可以 ...

  5. zigbee学习之路(八):定时器1(中断)

    一.前言 通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制. 二.原理分析 定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作 ...

  6. Object-c学习之路八(NSArray(数组)遍历和排序)

    今天学习了NSArray的遍历和排序,现在在这里做一下总结: 遍历现在实现了四中方法: 排序大概有三中方法:(代码中都有注释) 关于对象的排序还是以Student和Book为例 每个Student持有 ...

  7. 嵌入式Linux驱动学习之路(八)创建最小的根文件系统

    busybox 在配置busybox,在是否选择要静态链接库时,在静态下,busybox中的工具不需要动态链接库,能够直接运行.而用户自己编写的程序如果需要动态链接库,还是依然需要有. 如果是动态链接 ...

  8. IOS7学习之路八(iOS 禁止屏幕旋转的方法)

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { retu ...

  9. IOS学习之路八(GCD与多线程)

    GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制.它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务. GCD中的FIFO队列称为 ...

随机推荐

  1. Java类的定义及其实例化

    如果你不了解类和对象的概念,请猛击这里:Java类和对象的概念 类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public cl ...

  2. log4j配置文件中的additivity属性

    它是 子Logger 是否继承 父Logger 的 输出源(appender)的标志位.具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger ...

  3. Python学习笔记——条件控制

    Python中的条件控制方式基本和C语言类似,主要有如下几种语法: If条件判断 Python的条件语句的语法是if…elseif…else,如下的一个简单的猜数字的示例演示了这一过程: number ...

  4. win7 下注册dll文件失败

    1.win7 下注册dll文件失败,提示模块“xx.dll”已加载,但找不到入口点DllRegisterServer 原因:该dll文件非可注册组件,没有包含DllRegisterServer函数,可 ...

  5. Delphi Modbus RTU CRC16校验码

    function CheckCrc16(const ABuf; ALen: Integer): Boolean;var uwTemp: WORD; i, j: BYTE; P: PByte;begin ...

  6. App Distribution Guide (二)

    Configuring Your Xcode Project for Distribution  You can edit your project settings anytime, but som ...

  7. ubuntu配置 测试环境 记录

    1  更新源 进入 /etc/apt/sources.list sudo vim进入, 更改为如下源 # See http://help.ubuntu.com/community/UpgradeNot ...

  8. python 实现创建文件夹和创建日志文件

    一.实现创建文件夹和日志 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: nulige import os import datetime ...

  9. linux bash 入门

    #!/bin/bash #shell使用的熟练成都反映用户对Unix/Linux使用的熟练程度 #shell 有两种执行命令的方式:交互式和批处理 #常见的shell脚本解释器有bash,sh,csh ...

  10. zabbix通过snmp监控windows主机

    1.开启Windows的snmp功能 2.配置snmp服务 设置snmp服务社区名称及允许的主机,设置完成后重启snmp服务 3.在zabbix server上测试 测试需要使用命令snmpwalk, ...