Impala之加载HBase数据
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数据相关推荐
- 使用ECharts加载大数据量数据
使用ECharts加载大数据量数据 言归正传,本次研究目的是通过echarts加载大数据量数据,测试数据点为24w左右,最终调试结果,加载一条曲线在2.5s左右,同时加载两条曲线为5s以为,8条曲线为 ...
- autoware加载地图数据与使用rosbag包建图(三)
autoware加载地图数据(三) 介绍如何为autoware加载地图数据 启动autoware $ cd ~/autoware.ai $ source install/setup.bash $ ro ...
- Naigos PNP图无法加载最新数据
Naigos PNP图无法加载最新数据 前几天IDC断电,设备全部重启,导致nagios pnp图无法正常加载,经过排查发下如下几点状况: 1,查看log日志,并没有报错. 2,npcd没有正常运行, ...
- ExtJs TreePanel 不能加载ashx数据的解决办法
今天学习Extjs TreePanel 时在加载动态数据时经常加载不进来,因为我是使用MVC2获取动态数据的,单独调试MVC的返回数据时OK的,网上有很多解决方案,其中最简单的是: loader: n ...
- 首次使用Cesium加载3D数据不成功
接此: https://blog.csdn.net/bcbobo21cn/article/details/110454547 参阅相关教程:Cesium加载3D数据是通过3D Tiles进行: 3D ...
- (仿头条APP项目)6.点击过的新闻列表文字变灰和下拉刷新与滚动加载新闻数据
文章目录 一.点击过的新闻列表文字变灰 效果图 实现思路 导入ormlite数据库类依赖 利用ormlite创建数据库和表 创建数据库类MyDbHelper 创建数据库中的新闻实体类NewInfo 页 ...
- Android之ListViewJson加载网络数据
使用到的主要内容: 1.Json 解析网络数据 2.异步任务加载图片和数据 3.ListView 的内存空间优化(ConvertView)和运行时间优化(ViewHolder) 4.ListView ...
- Geospark-SQL加载SHP数据
title: (六)Geospark SQL加载SHP数据(JAVA版) date: 2021-05-08 09:29:06 tags: GeoSpark GeoSpark SQL默认是无法读取Shp ...
- 【XAudio2】7.如何加载音频数据文件
7.如何加载音频数据文件 本主题描述的步骤来填充所需的结构在XAudio2播放音频数据.以下步骤加载"fmt"和"data"块的一个音频文件,并使用它们来填充W ...
最新文章
- 数据库设计规范之对象设计使用规范
- 说出你和「云原生」的故事,获得年度云原生顶级盛会通行证
- sqlplus几个存储过程执行变量值窜掉了_基于大数据的冷连轧过程控制优化技术研究...
- 算法与数据结构(python):树与二叉树
- 用python庆祝生日_python, 实现朋友家人年历生日自动提醒
- poj2778DNA Sequence (AC自动机+矩阵快速幂)
- python开发视频大全_2019年python开发编程21天快速入门视频教程+书籍大全和面试大礼包...
- 2017.10.10 取石子游戏 失败总结
- 图解全排列问题_排列组合的各种知识点以及解题小技巧
- linux ftp 警告暗号话,ssh,FTP到远程服务器时,显示自定义的警告信息
- Scrapy爬取小说简单逻辑
- 防火墙软件 - IPCop
- 最新王者荣耀发卡网源码,手机电脑自适应
- linux主引导修复工具,Boot-Repair/引导修复工具
- java解密pdf文档,用于加密/解密pdf文件的Java API
- 如何建立异地容灾备份体系
- vue中使用svg图片
- 关于【统一权限系统】概况
- 那些年啊,那些事——一个程序员的奋斗史 ——123
- \centering与\begin{center}区别