马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 168主编 于 2019-6-24 19:32 编辑
Hbase是什么? Hbase是一个架构在Hdfs文件系统上的列式存储,是开源的,分布式,面向列的数据库。适合于非结构化数据存储的数据库。 Hbase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,可以在廉价的PC Server搭建大规模结构化存储集群. image 2,HDFS作为其底层的文件存储 3,MapReduct为Hbase提供高性能的计算能力 4,Zookeeper为HBase提供了稳定的服务和failover的能力 image Hive是什么? hive是一个基于Hadoop的一个数据仓库工具。可以将结构化数据映射为一张数据库表,并且提供sql的查询能力,可以将sql换换为MapReduce任务进行。 下面我们看看Hive的架构图: 1,用户接口,hive主要有三个接口,CLI(CLI启动的时候会同时气筒一个Hive的副本),Client(hive的客户端,连结hive server),web UI(通过浏览器访问) 2,元数据存储,hive将元数据存储在数据库中如:mysql。 3,Driver(解释器、编译器、优化器、执行器):完成词法分析,语法分析,优化,编译,优化以及查询计划的生成,随后由MapReduce使用。 4,Hadoop ,hive的数据存储在Hdfs中。大部分的查询由MapReduce完成。 image Hbase 上面我们分别看了Hbase的特点,hive的特点,那么Hbase和Hive的差别是什么以及各自的使用场景是什么? Hbase和Hive 二者都是以Hdfs为文件存储。 Hbase支持列扩展,可以对单元格修改。采取K-V的设计,因此查询效率比较高,一般用于延迟忍耐低的场景;还有就是经常需要扩展属性,修改属性场景。 Hbase的查询一般通过命令窗口进行,语句比较负责,但是hive的采用标准的sql语法,门槛低,上手简单。当然Hbase也有Phoenix可以去支持 sql这样的语法操作。 下面看看hbase具体的应用场景: 千万并发、PB存储、KV基础存储、动态列、强同步、稀疏表、二级索引、SQL image 对象存储:头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中。 时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求。 推荐画像:用户的画像,是一个比较大的稀疏矩阵。蚂蚁的风控就是构建在HBase之上。 时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中 CubeDB OLAP:Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求。 消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上。 消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上。 Hive 不能支持列扩展,支持追加,好像在新版本中可以支持修改,但是效率比较低。Hive处理的数据的吞吐量高,文件越大,hive的优势就约明显。一半用于 延迟忍耐高的场景。 下面再来看看Hive的具体使用场景: 1,分析网络日志。 2,ETL清洗数据。 3,构建数据仓库。 4,数据挖掘 最后在总结:Hbase和Hive本身都不能存储数据。二者都是对Hdfs上的文件在做了一次组织。从而适应不同的场景。Hbase 在与查询,动态列场景更有优势,但是无法进行数据分析和挖掘。二Hive本身无法在低延迟的场景下使用。Hive可以处理大量数据的ETL清洗。构建统一的标准的数据仓库,从而提供基础数据,共上层数据分析。所以hive更加偏向于数据分析。 |