Hbase介绍以及Hive优势
2020-08-07 本文已影响0人
毛毛虫同学
一,Hbase介绍
HBase 是典型的 NoSQL 数据库,通常被描述成稀疏的、分布式的、持久化的,由行键、列键和时间戳进行索引的多维有序映射数据库,主要用来存储非结构化和半结构化的数据。因为 HBase 基于 Hadoop 的 HDFS 完成分布式存储,以及 MapReduce 完成分布式并行计算,所以它的一些特点与 Hadoop 相同,依靠横向扩展,通过不断增加性价比高的商业服务器来增加计算和存储能力。
优点:
容量巨大
列存储
稀疏性(为空的字段不占存储空间)
扩展性强(分布式)
缺点:
单一RowKey固有的局限性决定了它不可能有效地支持多条件查询
不直接支持 SQL 的语句查询
Hbase在实际场景中的应用
- 交通方面:
船舶GPS信息,全长江的船舶GPS信息,每天有1千万左右的数据存储。 - 金融方面:
消费信息,贷款信息,信用卡还款信息等 - 电商:
淘宝的交易信息等,物流信息,浏览信息等 - 移动:
通话信息等,都是基于HBase的存储。
二,Hive优势
1.Hive 能做什么
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 相对于mapreduce 离线计算需要写很多java代码去实现数据提取,hive可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用开发程序,更适合数据仓库的统计分析。
2.Hive用hadoop示例
步骤1:测试文档 test.csv
步骤2: 将数据导入HDFS中
#在hdfs中创建/hive-hbase/test目录
hdfs dfs -mkdir -p /hive-hbase/test
#将course.csv文件上传至/hive-hbase/course目录下
hdfs dfs -put /root/DataFile/test.csv /hive-hbase/test
步骤3: 创建外部Hive表
create external table if not exists default.testcourse(key string,cname string,score int)
row format delimited fields terminated by ',' stored as textfile location '/hive-hbase/test';
步骤3: 创建内部表与hbase结合
create table default.hbase_testcourse(key string,cname string,score int) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping"="cf:cname,cf:score") tblproperties("hbase.table.name"="hbase_testcourse");
insert overwrite table hbase_testcourse select key,cname,score from testcourse;
image.png