Hive与HBase区别

HiveHBase区别

 

Hive是为简化编写MapReduce程序而生的,使用MapReduce做过数据分析的人都知道,很多分析程序除业务逻辑不同外,程序流程基本一样。在这种情况下,就需要Hive这样的用户编程接口。Hive本身不存储和计算数据,它完全依赖於HDFSMapReduceHive中的表纯逻辑表,就是些表的定义等,也就是表的元数据。使用SQL实现Hive是因为SQL大家都熟悉,转换成本低,类似作用的Pig就不是SQL

 

HBase为查询而生的,它通过组织起节点内所有机器的内存,提供一个超大的内存Hash表,它需要组织自己的数据结构,包括磁盘和内存中的,而Hive是不做这个的,表在HBase中是物理表,而不是逻辑表,搜索引擎使用它来存储索引,以满足查询的实时性需求。

 

简单来说hive用来批量处理数据,HBase用来快速索引数据。

 

HBase是一个分布式的基于列存储的非关系型数据库HBase的查询效率很高,主要由于查询和展示结果。

 

hive是分布式的关系型数据库。主要用来并行分布式 处理 大量数据。hive中的所有查询除了"select * from table;"都是需要通过Map\Reduce的方式来执行的。由于要走Map\Reduce,即使一个只有11列的表,如果不是通过select * from table;方式来查询的,可能也需要89秒。但hive比较擅长处理大量数据。当要处理的数据很多,并且Hadoop集群有足够的规模,这时就能体现出它的优势。

通过hive的存储接口,hiveHbase可以整合使用。

 

Hadoop中的MapReduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的式并行处理上T级别的数据集

 

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)""Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值