zoukankan      html  css  js  c++  java
  • 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 ‘ ’;例如以下:
    这里写图片描写叙述
    此时。我们已经在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'='	', 'hbase.columns.mapping'=':key,info:value', 'field.delim'='	')
    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里面比較方便,所以我们能够採用这样的方式。

  • 相关阅读:
    Windows CE Notification API的使用方法
    探讨如何成为技术团队管理者
    Android应用---基于NDK的samples例程hello-jni学习NDK开发
    在eclipse中配置android ndk的自动编译环境builders
    用javah 导出类的头文件, 常见的错误及正确的使用方法
    Android下NDK开发环境搭建
    Android系统修改硬件设备访问权限
    Android调试工具之ADB
    关于前端小白的一点小建议
    Vue.js简单实践
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7272848.html
Copyright © 2011-2022 走看看