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 block e2.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呢?后续我会通过实际测试来探究这个疑问。
基于HBase构建千亿级文本数据相似度计算与快速去重系统 随着大数据时代的到来,数据信息在给我们生活带来便利的同时,同样也给我们带来了一系列的考验与挑战。本文主要介绍了基于 Apache HBase 与 Google SimHash 等多种算法共同实现的一套支持百亿级文本数据相似度计算与快速去重系统的设计与实现。该方案在公司业务层面彻底解决了多主题海量文本数据所面临的存储与计算慢的问题。 一. 面临的问题 1. 如何选择文本的相似度计算或去重算法? 常见的有余弦夹角算法、欧式距离、Jaccard 相似度、最长公共子串、编辑距离等。这些算法对于待比较的文本数据不多时还比较好用,但在海量数据背景下,如果每天产生的数据以千万计算,我们如何对于这些海
通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据 下文将重点说明通过Sqoop实现Mysql与HDFS互导数据,Mysql与Hbase,Oracle与Hbase的互导最后给出命令。 一、Mysql与HDFS互导数据 宿主机器操作系统为Win7,Mysql安装在宿主机上,宿主机地址为192.168.66.96 3台虚拟机操作系统为Ubuntu-12.04.1-32位 三台虚拟机已成功安装hadoop,并实现免密钥互访,配hosts为: 192.168.66.91 masternode 192.168.66.92 slavenode1 192.168.66.93 slavenode2 /etc/profile已配置好必备环境变量HADOO
Apache NiFi之Kafka流数据到HBase 在大数据平台的业务场景中,处理实时kafka数据流数据,以成为必要的能力;此篇将尝试通过Apache NiFi来接入Kafka数据然后处理后存储之HBase Ⅰ).配置ConsumeKafka_0_10 测试使用了kafka0.
HBase TB级数据规模不停机迁移最佳实践 有关HBase集群如何做不停服的数据迁移一直都是云HBase被问的比较多的一个问题,目前有许多开源的工具或者HBase本身集成的方案在性能、稳定性、使用体验上都不是很好,因此阿里云提供了BDS迁移服务,可以帮助云上客户实现TB级数据规模不停机迁移
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载
相关文章
- 技术实操丨HBase 2.X版本的元数据修复及一种数据迁移方式
- 大数据-NoSQL数据库:HBase【基于Zookeeper/HDFS的分布式、高并发、可扩展的NoSQL数据库;支持“十亿行”ד百万列”海量数据的实时随机读写;仅支持单表查询;不擅长数据分析】
- 大数据-Flume(一):日志收集系统【将应用产生的日志数据发送到Kafka/HDFS/HBase】【Source(上游)--Channel(缓冲区)-->Sink(下游)】【基于CentOS6】
- 大数据-ETL工具:Sqoop【关系型数据库(MySQL,Oracle...) <==(业务)数据==> Hive/HBase/HDFS】【Hadoop与关系数据库之间传送数据的工具】
- Hbase集群master.HMasterCommandLine: Master exiting
- 启动Hadoop HA Hbase zookeeper spark
- HBASE的集群搭建
- hbase中预分区表中数据的查询(二)
- 大数据入门第十四天——Hbase详解(二)基本概念与命令、javaAPI
- 大数据入门第十四天——Hbase详解(一)入门与安装配置
- HBase - 数据写入流程解析
- HBase 学习一(基础入门).
- HBase 数据读写流程
- hbase大规模数据写入的优化历程
- hive中与hbase外部表join时内存溢出(hive处理mapjoin的优化器机制)
- Hbase节点管理
- HBase写数据
- Java 向Hbase表插入数据报(org.apache.hadoop.hbase.client.HTablePool$PooledHTable cannot be cast to org.apac)
- hbase phoenix char may not be null
- ApsaraDB HBase产品支持公网内网混访
- HBase学习笔记——基于HBase的日志系统的性能优化
- Hbase的javaAPI
- 大数据HBase(十一):Apache Phoenix的视图操作
- 大数据HBase(二):HBase集群安装操作
- 大数据DataX(七):HBase导入到MySQL
- 大数据DataX(六):MySQL导入到HBase
- HBase 专题技术收录
- HBase API