Hive和Hadoop关系

news2024/10/7 18:29:07

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。

关于Hive的描述可以归结为这么几点来理解:

  1. Hive是工具。
  2. Hive可以用来构建数据仓库。
  3. Hive具有类似SQL的操作语句HQL。
  4. Hive是用来开发SQL类型脚本,用于开发MapReduce操作的平台。

Hive最初由Facebook开源,用于解决海量结构化日志的数据统计分析,是建立在Hadoop集群的HDFS上的数据仓库基础框架,其本质是将类SQL语句转换为MapReduce任务运行。可以通过类SQL语句快速实现简单的MapReduce统计计算,十分适合数据仓库的统计分析。

所有Hive处理的数据都存储在HDFS中,Hive在加载数据过程中不会对数据进行任何修改,只是将数据移动或复制到HDFS中Hive设定的目录下。所以Hive不支持对数据的改写和添加,所有数据都是在加载时确定的。

因此,Hive总的说来具有以下特点:

(1)Hive是一个构建在Hadoop上的数据仓库框架。

(2)Hive设计的目的是让精通SQL技能、但Java编程技能相对较弱的数据分析师能够快速进行大数据分析项目开发与应用。

Hive的能力在于直接分析通过ETL清洗过后的半结构化数据,其步骤如图1-3所示。

 

图1-3  非结构化数据分析步骤

Hive 构建在 Hadoop 之上,二者关系示意图如图1-4所示。

它们关系解释如下:

  1. Hive对外提供CLI、Web Interface(Web接口)、JDBC、ODBC等访问接口,Hadoop提供后台存储和计算服务。
  2. HQL中对查询语句的解释、优化、生成查询计划是由Hive Diver完成的。
  3. 所有的数据都是存储在Hadoop的HDFS中。
  4. 查询计划被转化为 MapReduce 任务,在 Hadoop 中执行(但要注意有些查询也可能没有MapReduce 任务,如:select * from table)。
  5. Hadoop和Hive都是用UTF-8编码的。

 

图1-4  Hive与Hadoop关系

总之,Hive是Hadoop的延申。Hive是一个提供了查询功能的数据仓库核心组件,Hadoop底层的HDFS为Hive提供了数据存储,MapReduce为Hive提供了分布式运算。HDFS上存储着海量的数据,我们要对这些数据进行计算和分析,则需要使用Java编写MapReduce(MR)程序来实现,但Java编程门槛较高,且一个MapReduce程序写起来要几十上百行。而Hive可以直接通过SQL操作Hadoop,SQL简单易写、可读性强,Hive将用户提交的SQL解析成MapReduce任务供Hadoop直接运行。Hive某种程度来说也不进行数据计算,只是个解释器,只负责将用户需要对数据处理的逻辑,通过SQL编程提交后解释成MapReduce程序,然后将这个MR程序提交给YARN进行调度执行。所以,实际进行分布式运算的是MapReduce程序。

本文节选自《Hive入门与大数据分析实战》,内容发布获得作者和出版社授权。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/600804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue组件库 vue marquee vue跑马灯 vue走马灯 ​vue-marquee-text-component​中文

vue2运行安装 npm install vue-marquee-text-component1.2.0 Name说明DescriptionConfigduration持续时间动画持续时间{类型:数字,默认值:15}Animation Duration{ type: Number, default: 15 }repeatrepeat重复插槽的…

chatgpt赋能python:Python内置函数:如何查找和使用?

Python内置函数:如何查找和使用? 作为一名有10年Python编程经验的工程师,我想与大家分享一下Python内置函数的使用技巧。Python内置函数是指已经定义好的函数,无需另外安装也无需导入就可以直接在Python中使用的函数。这篇文章将…

chatgpt赋能python:Python编程教程:如何用Python写抢购程序

Python编程教程:如何用Python写抢购程序 随着网购的流行和限量商品的推出,抢购已经成为了一个非常热门的话题。有些人甚至会通过软件或程序来提高他们成功抢到商品的机会。在本篇文章中,我们将介绍如何用Python编写一个简单易用的抢购程序&a…

客户频繁变更需求,项目经理该如何应对?

王博刚当上项目经理,接手了一个中型软件项目。公司高层多次提醒他要尊重客户需求,并充分满足客户的期望。 一开始项目进展顺利,但后来客户频繁变更需求给团队带来了很多额外工作。王博动员大家加班保证项目进度,让客户非常满意。…

【面上对象三大特性之多态】

目录 1.什么是多态2.多态的条件 3.向上转型3.1向上转型的三种写法3.2 优缺点 4.向下转型(用得少)5.避免在构造方法中调用重写的方法6.重写6.1什么是重写6.2 重写和重载的区别 1.什么是多态 多态的概念:通俗来说,就是多种形态&…

PARSeq论文翻译

《Scene Text Recognition with Permuted Autoregressive Sequence Models》论文翻译 文章目录 《Scene Text Recognition with Permuted Autoregressive Sequence Models》论文翻译Abstract1、Introduction2、Related Work3、Permuted Autoregressive Sequence Models3.1、Mod…

MySQL数据库优化看这一篇就够了(最全干货篇)

文章目录 一、MySQL 主备切换以及读写分离二、SQL优化1、如何定位低效率的SQL语句-慢查询日志?EXPLAIN 执行计划怎么分析?2、sql语句优化常用的方法有哪些?3、如何优化索引?优化CRUD操作?优化分页?4、通过s…

C语言进阶之数据的存储

数据的存储 1. 数据类型介绍1.1 类型的基本归类 2.整型在内存中的存储2.1原码、反码、补码大小端介绍2.3练习 3. 浮点型在内存中的存储3.1浮点数存储规则 1. 数据类型介绍 在C语言初阶之数据类型这篇博客中,我们提到了关于数据内存的大小和基本用法 链接&#xff1…

大模型浪潮下的平台、框架、AI编译器和芯片架构 | 智源大会AI系统论坛

6月9日,2023北京智源大会,将邀请这一领域的探索者、实践者、以及关心智能科学的每个人,共同拉开未来舞台的帷幕,与会知名嘉宾包括,2019年图灵奖得主Yann LeCun、图灵奖得主Geoffrey Hinton、图灵奖得主Joseph Sifakis、…

童心不泯,因AI飞驰,祝大朋友小朋友六一儿童节快乐!

AIGC 大模型,让所想,即所见。 在青少年想象力培养上, 生成式人工智能技术的蓬勃发展, 让人类想象力和创造力提升, 迎来了全新的发展阶段。 百度通过大模型与深度学习框架融合发展,打造了自主创新的AI底座&a…

JavaWeb16(sessionCookie)

目录 1.会话跟踪&HTTP无状态协议. 1.1会话跟踪. 1.2HTTP无状态协议. 2.Cookie. 2.1何为Cookie. 2.2Cookie的有效期. 2.3案例讲解. 2.3.1用cookie做登陆状态验证. 2.3.2验证cookie是将数据保存到客户端及有效期. 2.3.2用cookie做注销. 2.3.3用cookie实现自动登陆…

Java程序设计入门教程--日期格式化类SimpleDateFormat

在程序设计中,经常用到特定的日期格式,此时就可以使用 java.text 包中的 SimpleDateFormat 类来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。 目标格式 使用SimpleDateFormat类时&#xff0c…

【shiro】shiro整合JWT——4.JWT Token刷新/续签

前言 之前在写shiro整合JWT的时候,在ShiroRealm中有写到token的刷新;但后来看了很多别人的项目demo和博客发现之前的写法不太合适。这里参考之前看过的各个项目与博客,延续这之前shiro整合JWT内容的做了一波缝合怪。 主要对之前的ShiroRealm…

绝地求生 压q python版

仅做学习交流,非盈利,侵联删(狗头保命) 一、概述 1.1 效果 总的来说,这种方式是通过图像识别来完成的,不侵入游戏,不读取内存,安全不被检测。 1.2 前置知识 游戏中有各种不同的q械&#xf…

深入浅出:FFmpeg 音频解码与处理全解析

深入浅出:FFmpeg 音频解码与处理全解析 一、FFmpeg 简介1.1 FFmpeg 的历史与发展1.2 FFmpeg 的主要组成部分 二、音频编解码基础 (Basics of Audio Encoding and Decoding)2.1 音频编解码的原理 (Principle of Audio Encoding and Decoding)2.1.1 采样 (Sampling)2.…

chatgpt赋能python:Python函数调用局部变量-深入了解

Python函数调用局部变量-深入了解 函数调用局部变量是Python中的一个重要概念,特别是在大型项目中,其中多个函数共享相同变量时。在本文中,我们将深入探讨Python函数调用局部变量,并为您介绍一些实用技巧。 什么是Python函数调用…

chatgpt赋能Python-python函数计算器

简介 Python是一种高级编程语言,它在数据科学和机器学习等领域非常流行。但是,很多人可能不知道它也可以用来编写简单的函数计算器。 在本文中,我们将介绍一些基本的Python函数,并教你如何使用它们来编写一个简单但强大的函数计…

C 语言里面的 extern “C“ ,并没有那么简单!

前言 本文详细解析extern "C"的底层原理与实际应用。在你工作过的系统里,不知能否看到类似下面的代码。 这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们的代码都是这样写的,从来没有因此碰到过什么麻烦啊…

CTEX中使用winEdt排版编辑插入图片.eps应用排版举例

CTEX中使用winEdt排版编辑插入图片.eps应用排版举例 在使用WinEdt进行排版编辑的时候,可以对文档格式排版等灵活快速排版,并实现pdf的文档的生成。本文将举例说明在WinEdt中,插入图片的方法的排版举例应用。 一、具体方法步骤 1.根据已有图片…

配置OCI上数据库服务的EM Database Express

本文参考了以下文档: DBCS: How To Setup EM Express in Bare Metal and Virtual Machine DB Systems(OCI) (Doc ID 2453454.1)Oracle Database 12c: EM Database ExpressAccess the Database Home Page in EM Database Express 第1步:数据库中设端口 …