`

让你真正明白什么是hive

    博客分类:
  • Hive
阅读更多

导读:
对于一个事物的认识,存在几种情况
1.没有接触,不知道这个事物是什么,所以不会产生任何问题。
2.接触了,但是不知道他是什么,反正我每天都在用。
3.有一定的了解,不够透彻。
那么hive,
1.我们对它了解多少?
2.它到底是什么?
3.hive和hadoop是什么关系?
扩展:
hbase和hive是什么关系?



Hive最初是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的。那么,到底什么是Hive,我们先看看Hive官网Wiki是如何介绍Hive的(https://cwiki.apache.org/confluence/display/Hive/Home):

The Apache Hive data warehouse software facilitates querying and managing large datasets residing in distributed storage. Built on top of Apache HadoopTM, it provides:
  (1)、Tools to enable easy data extract/transform/load (ETL)
  (2)、A mechanism to impose structure on a variety of data formats
  (3)、Access to files stored either directly in Apache HDFSTM or in other data storage systems such as Apache HBaseTM
  (4)、Query execution via MapReduce




上面英文的大致意思是:


Apache Hive数据仓库软件提供对存储在分布式中的大型数据集的查询和管理,它本身是建立在Apache Hadoop之上,主要提供以下功能:
(1)它提供了一系列的工具,可用来对数据进行提取/转化/加载(ETL);
(2)是一种可以存储、查询和分析存储在HDFS(或者HBase)中的大规模数据的机制;
(3)查询是通过MapReduce来完成的(并不是所有的查询都需要MapReduce来完成,比如select * from XXX就不需要;
(4)在Hive0.11对类似select a,b from XXX的查询通过配置也可以不通过MapReduce来完成


上面的意思很明白了.这里再给他提炼一下:
1.hive是一个数据仓库
2.hive基于hadoop。
总结为一句话:hive是基于hadoop的数据仓库。

那么上面”基于“如何讲,看下面


Hive是一种建立在Hadoop文件系统上的数据仓库架构,并对存储在HDFS中的数据进行分析和管理;
(也就是说对存储在HDFS中的数据进行分析和管理,我们不想使用手工,我们建立一个工具把,那么这个工具就可以是hive)


到此,我们已经明白hive是什么,想更深一步的了解,可查看下面内容。





那么,我们如何来分析和管理那些数据呢?
  Hive定义了一种类似SQL的查询语言,被称为HQL,对于熟悉SQL的用户可以直接利用Hive来查询数据。同时,这个语言也允许熟悉 MapReduce 开发者们开发自定义的mappers和reducers来处理内建的mappers和reducers无法完成的复杂的分析工作。Hive可以允许用户编写自己定义的函数UDF,来在查询中使用。Hive中有3种UDF:User Defined Functions(UDF)、User Defined Aggregation Functions(UDAF)、User Defined Table Generating Functions(UDTF)。

  今天,Hive已经是一个成功的Apache项目,很多组织把它用作一个通用的、可伸缩的数据处理平台。
  当然,Hive和传统的关系型数据库有很大的区别,Hive将外部的任务解析成一个MapReduce可执行计划,而启动MapReduce是一个高延迟的一件事,每次提交任务和执行任务都需要消耗很多时间,这也就决定Hive只能处理一些高延迟的应用(如果你想处理低延迟的应用,你可以去考虑一下Hbase)。同时,由于设计的目标不一样,Hive目前还不支持事务;不能对表数据进行修改(不能更新、删除、插入;只能通过文件追加数据、重新导入数据);不能对列建立索引(但是Hive支持索引的建立,但是不能提高Hive的查询速度。如果你想提高Hive的查询速度,请学习Hive的分区、桶的应用)。

 

同时补充一下hive与hbase的联系与区别:
共同点:
1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储

区别:

2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
3.想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。
4.Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。
5.Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。
6.hive借用hadoop的MapReduce来完成一些hive中的命令的执行
7.hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
8.hbase是列存储。
9.hdfs作为底层存储,hdfs是存放文件的系统,而Hbase负责组织文件。
10.hive需要用到hdfs存储文件,需要用到MapReduce计算框架。

 

分享到:
评论

相关推荐

    HIVE安装及详解

    HIVE是什么?HIVE是一种数据仓库工具,主要用于处理和分析大规模数据。它将结构化数据文件转换为表格形式,以便更容易地执行查询和分析操作。 为什么使用HIVE?HIVE可以处理大规模数据,并且可以与Hadoop集成,实现...

    hive客户端安装_hive客户端安装_hive_

    在安装Hive客户端之前,确保你已经安装了Hadoop并且集群处于正常运行状态。Hadoop是Hive的基础,提供了分布式存储和计算能力。你需要配置Hadoop的环境变量,并确保Hadoop服务如HDFS和YARN正在运行。 二、下载Hive ...

    Hive驱动1.1.0.zip

    要使用DataGrip连接到Hive 1.1.0,你需要确保你有正确的驱动程序JAR文件。在"压缩包子文件的文件名称列表"中提到的"Hive驱动1.1.0"可能是指包含这些JAR文件的压缩包。通常,这些JAR文件会包含以下组件: 1. **hive-...

    Hive_JDBC.zip_hive java_hive jdbc_hive jdbc pom_java hive_maven连

    首先,让我们了解Hive JDBC的基本概念。JDBC是Java中用于数据库访问的标准API,它定义了一组接口和类,使得开发者可以使用统一的方式与各种数据库系统通信。Hive JDBC提供了对Hive的JDBC支持,允许Java应用执行...

    hive

    Hive 是一个基于 Hadoop 的数据仓库工具,它允许用户使用 SQL 类似的查询语言(称为 HiveQL)来处理和分析存储在 Hadoop 分布式文件系统(HDFS)中的大数据集。Hive 提供了一个数据层,使得非编程背景的用户也能方便...

    Hive3.1.2编译源码

    使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...

    Ambari下Hive3.0升级到Hive4.0

    1. **版本兼容性检查**:首先,确保你的 Ambari 版本与 Hive 4.0 兼容。通常,Ambari 的新版本会支持更高级的 Hadoop 和 Hive 组件。检查 Ambari 官方文档以确认兼容性。 2. **备份现有环境**:在进行任何重大更新...

    hive-jdbc hive jdbc驱动

    hive-jdbc

    连接hive依赖的jar包_hive连接方式

    这让你能够在熟悉的IDE环境中操作Hive,提升工作效率。 7. **注意事项** - 确保Hive服务器已启动并允许远程连接。 - 检查防火墙设置,确保允许DataGrip所在机器访问Hive服务器的端口。 - 驱动版本应与Hive服务...

    hive相关jar包

    在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)查询和管理存储在Hadoop分布式文件系统(HDFS)中的大量数据。Hive提供了数据整合、元数据管理、查询和分析...

    hive-site.xml

    hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+...

    hive所有jar文件

    Hive和HBase是两种大数据处理工具,它们在大数据生态系统中各自扮演着重要角色。Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL-like语法(HQL,Hive Query Language)对大规模数据集进行分析。而HBase是...

    hive 驱动包 hive 链接 datagrip的驱动包

    当你需要在DataGrip中连接到Hive数据库时,就需要特定的驱动包来实现这个功能。本文将详细介绍如何使用Hive驱动包连接DataGrip以及涉及的相关知识点。 首先,"hive-denpendencies"这个名字暗示这是一个包含Hive运行...

    hive3.1.2+mysql驱动.zip

    为了配置Hive 3.1.2与MySQL的连接,你需要做以下几步: 1. 安装并启动MySQL服务,创建专门的数据库和用户用于Hive元数据。 2. 将"Hive 3.1.2+mysql驱动.zip"中的MySQL驱动JAR文件(通常为`mysql-connector-java.jar`...

    Hive表生成工具,Hive表生成工具Hive表生成工具

    Hive表生成工具,Hive表生成工具Hive表生成工具

    DBeaver链接hive驱动包下载: hive-jdbc-uber-2.6.5.0-292.jar

    1. 下载驱动:首先,你需要从官方源或可靠的第三方网站下载"hive-jdbc-uber-2.6.5.0-292.jar"驱动包,确保版本与你的Hive服务器兼容。 2. 添加驱动:在DBeaver中,选择“工具”-> "数据库" -> "驱动管理器",点击右...

    apache-hive-2.3.9-bin.tar大数据HIVE.zip

    首先,让我们深入了解一下Hive的核心概念和功能: 1. **数据模型**:Hive 支持两种主要的数据存储结构——表(Table)和分区(Partition)。表是数据的基本单位,可以看作是关系数据库中的表格。分区则是对大表进行...

    hive-3.1.1安装包

    Hive是一个基于Hadoop的数据仓库工具,它本身并不存储数据,部署在Hadoop集群上,数据是存储在HDFS上的. Hive所建的表在HDFS上对应的是一个文件夹,表的内容对应的是一个文件。它不仅可以存储大量的数据而且可以对...

    HIVE相关的jar包

    在实际开发中,如果你的项目依赖于特定版本的Hive,你需要将对应的Hive jar包添加到你的类路径中。这通常在构建工具如Maven或Gradle的配置文件中完成。在运行Hive命令或启动Hive服务时,系统会自动加载这些jar包,...

    SpringBoot整合hive-jdbc示例

    通过以上步骤,你可以在SpringBoot项目中成功整合Hive-JDBC,实现对Hive数据仓库的访问和操作。这个简单的示例展示了基本的查询功能,实际应用中可以根据需求扩展更多的操作,例如插入、更新、删除等。

Global site tag (gtag.js) - Google Analytics