Hive(一)介绍

在Hadoop生态系统中,HDFS用于存储数据,Yarn用于资源管理,MapReduce用于数据处理,而Hive是构建在Hadoop之上的数据仓库,包括以下方面:

使用HQL作为查询接口,注意是Sql,并不完全遵循sql语言

使用HDFS存储;

使用MapReduce或其它计算框架计算;

执行程序运行在Yarn上。

Hive的本质是:将Hive SQL转化成MapReduce程序,其灵活性和扩展性比较好,自定义存储格式等;适合离线数据处理。

Hive是由Facobook开发的,贡献给Apache的一套进行数据仓库管理的工具,使用类SQL语言来对分布式文件系统中的PB级别的数据来进行读写、管理以及分析
Hive是基于Hadoop来使用的,底层的默认计算引擎是MapReduce。Hive利用类SQL(HQL,Hive Query Language)语言来操作数据,但是底层是将SQL转化为MapReduce来执行(效率低下),Hive更适合于处理离线分析场景
Hive的支持的计算引擎:MapReduce、Tez、Spark。底层默认使用的是MapReduce,但是效率最高的是Spark
在Hive中,库名、表名、字段名、字段类型、分区、分桶等信息属于元数据,是存储在数据库中,默认支持的是Derby。但是Derby本身是一个单连接的数据库(只允许一个客户端),所以会将Hive的元数据库替换为MySQL。注意:Hive的元数据是存储在数据库的,Hive的数据是放在HDFS上!hdfs提供了多副本机制,hive中存放的大多都是历史数据,hive一般不会自动建立索引

 Hive和MySQL都是常见的数据存储和管理系统,但它们有一些主要的区别。

  1.数据库类型
  Hive是一种基于Hadoop的数据仓库系统,而MySQL是一种传统的关系型数据库管理系统。

  2.语言
  Hive使用HiveQL(类似于SQL),而MySQL使用SQL。

  3.存储方式
  Hive通常用于存储和管理大量非结构化数据,而MySQL通常用于存储和管理结构化数据。

  4.性能
  MySQL通常比Hive更快,但Hive可以处理更大的数据集。

  以下是一些HiveQL和MySQL SQL的简单示例:

  5.数据格式
  Hive支持多种数据格式,包括文本文件、序列文件、RC文件、ORC文件等;而MySQL通常使用标准的关系型数据库表格来存储数据。

  6.数据处理方式
  Hive适用于大数据批处理,通常需要一些时间来处理和分析大量数据。MySQL通常适用于在线事务处理(OLTP),需要快速处理和检索少量数据。

  7.数据规模
  Hive通常用于处理PB级别的数据,而MySQL通常用于处理TB或更小规模的数据。

hive 优点

(1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。

(2)避免了去写MapReduce,减少开发人员的学习成本。

(3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。(只用于做离线数据)

(4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。

(5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

hive缺点

1)Hive的HQL表达能力有限

(1)迭代式算法无法表达 (无法实现循环)

(2)数据挖掘方面不擅长,由于MapReduce数据处理流程的限制,效率更高的算法却无法实现。

2)Hive的效率比较低(因为hive 把sql翻译成MapReduce程序,没有直接写MapReduce程序好)

(1)Hive自动生成的MapReduce作业,通常情况下不够智能化

(2)Hive调优比较困难,粒度较粗(hive只能对sql进行调优,无法对hive本身进行调优)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值