Impala如何加载HBase数据?本文将为大家进行详细介绍Impala加载HBase数据的步骤。

第一步:HBase创建表(或选择已有表)

HBase shell命令行执行命令:

create 'impala_hbase_test_table', {NAME => 'f', VERSION => 3, COMPRESSION => 'SNAPPY'}

如图所示:

第二步:HBase表存入数据

利用Java API往HBase写入数据,示例代码如下:

                   int j = 0;for (int i = 0; i < 10000; i++) {Random random = new Random();Hashtable<String, String> pColumns = new Hashtable<String, String>();pColumns.put("dn", "dn" + random.nextInt(100));pColumns.put("fn", "fn" + random.nextInt(100));try {HBaseUtil.postBasic("impala_hbase_test_table",this.getName() + j++, "f", pColumns, null);} catch (Exception e2) {// TODO Auto-generated catch blocke2.printStackTrace();}}

其中HBaseUtil的postBasic()方法为HBase Java API入库操作,写入的表为impala_hbase_test_table,rowkey为线程名加递增数,列簇为f,写入的列为dn、fn,值分别为列名加随机数。

第三步:Hive创建Database,并使用

在Hive Shell命令行,执行Database创建及使用命令,如下图所示:

第四步:将HBase数据加载到Hive

在Hive Shell命令行执行如下命令:

CREATE EXTERNAL TABLE impala_hbase(
rk string,
un tinyint,
dn string,
fn string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key, f:un, f:dn, f:fn")
TBLPROPERTIES("hbase.table.name" = "impala_hbase_test_table");

如下图所示:


        其中,在WITH SERDEPROPERTIES选项中指定Hive外部表字段到HBase列的映射,其中“:key”对应于HBase中的rowkey,其余的就是列簇f中的列名。最后在TBLPROPERTIES中指定了HBase中要进行映射的表名。

第五步:Impala与Hive进行元数据同步

在Impala Shell命令行,执行操作INVALIDATE METADATA;

如下图所示:

第六步:Impala切换到与Hive相同的DataBase,进行数据验证

相关命令如下图所示:

1、Impala切换DataBase

2、Impala验证数据

3、Hive验证数据

最终,10000条数据在Hive与Impala中均能被查询到,证明Impala加载HBase数据成功!

但是,这里有个问题,我们发现,即便是仅有1万条数据,Impala的count也比Hive的count耗时小的多,前者为1.28s,后者为81.055s,那么是不是意味着Impala性能远远好于Hive呢?后续我会通过实际测试来探究这个疑问。

Impala之加载HBase数据相关推荐

  1. 使用ECharts加载大数据量数据

    使用ECharts加载大数据量数据 言归正传,本次研究目的是通过echarts加载大数据量数据,测试数据点为24w左右,最终调试结果,加载一条曲线在2.5s左右,同时加载两条曲线为5s以为,8条曲线为 ...

  2. autoware加载地图数据与使用rosbag包建图(三)

    autoware加载地图数据(三) 介绍如何为autoware加载地图数据 启动autoware $ cd ~/autoware.ai $ source install/setup.bash $ ro ...

  3. Naigos PNP图无法加载最新数据

    Naigos PNP图无法加载最新数据 前几天IDC断电,设备全部重启,导致nagios pnp图无法正常加载,经过排查发下如下几点状况: 1,查看log日志,并没有报错. 2,npcd没有正常运行, ...

  4. ExtJs TreePanel 不能加载ashx数据的解决办法

    今天学习Extjs TreePanel 时在加载动态数据时经常加载不进来,因为我是使用MVC2获取动态数据的,单独调试MVC的返回数据时OK的,网上有很多解决方案,其中最简单的是: loader: n ...

  5. 首次使用Cesium加载3D数据不成功

    接此: https://blog.csdn.net/bcbobo21cn/article/details/110454547 参阅相关教程:Cesium加载3D数据是通过3D Tiles进行: 3D ...

  6. (仿头条APP项目)6.点击过的新闻列表文字变灰和下拉刷新与滚动加载新闻数据

    文章目录 一.点击过的新闻列表文字变灰 效果图 实现思路 导入ormlite数据库类依赖 利用ormlite创建数据库和表 创建数据库类MyDbHelper 创建数据库中的新闻实体类NewInfo 页 ...

  7. Android之ListViewJson加载网络数据

    使用到的主要内容: 1.Json 解析网络数据 2.异步任务加载图片和数据 3.ListView 的内存空间优化(ConvertView)和运行时间优化(ViewHolder) 4.ListView ...

  8. Geospark-SQL加载SHP数据

    title: (六)Geospark SQL加载SHP数据(JAVA版) date: 2021-05-08 09:29:06 tags: GeoSpark GeoSpark SQL默认是无法读取Shp ...

  9. 【XAudio2】7.如何加载音频数据文件

    7.如何加载音频数据文件 本主题描述的步骤来填充所需的结构在XAudio2播放音频数据.以下步骤加载"fmt"和"data"块的一个音频文件,并使用它们来填充W ...

最新文章

  1. 数据库设计规范之对象设计使用规范
  2. 说出你和「云原生」的故事,获得年度云原生顶级盛会通行证
  3. sqlplus几个存储过程执行变量值窜掉了_基于大数据的冷连轧过程控制优化技术研究...
  4. 算法与数据结构(python):树与二叉树
  5. 用python庆祝生日_python, 实现朋友家人年历生日自动提醒
  6. poj2778DNA Sequence (AC自动机+矩阵快速幂)
  7. python开发视频大全_2019年python开发编程21天快速入门视频教程+书籍大全和面试大礼包...
  8. 2017.10.10 取石子游戏 失败总结
  9. 图解全排列问题_排列组合的各种知识点以及解题小技巧
  10. linux ftp 警告暗号话,ssh,FTP到远程服务器时,显示自定义的警告信息
  11. Scrapy爬取小说简单逻辑
  12. 防火墙软件 - IPCop
  13. 最新王者荣耀发卡网源码,手机电脑自适应
  14. linux主引导修复工具,Boot-Repair/引导修复工具
  15. java解密pdf文档,用于加密/解密pdf文件的Java API
  16. 如何建立异地容灾备份体系
  17. vue中使用svg图片
  18. 关于【统一权限系统】概况
  19. 那些年啊,那些事——一个程序员的奋斗史 ——123
  20. \centering与\begin{center}区别

热门文章

  1. windows平台下subversion服务器端配置
  2. 用计算机如何修改wif密码,wifi修改密码,教您电脑怎么修改wifi密码
  3. KVM中断虚拟化(一)
  4. Go Web编程--深入学习解析HTTP请求
  5. 可以伪装mysql子节点框架是啥_kingbus 架构设计之如何伪装成 MySQL Master 角色
  6. clickhouse 同步 mysql数据
  7. Data-Hack SQL注入检测
  8. Express--socket.io使用session验证
  9. 中国地区Win10免费升级活动正式结束
  10. Percona-tookit学习笔记(一)