Hive基础教程

文章目录

  • Apache Hive 教程
    • 1. Hive-简介
      • 1.1 学习Hive的前置知识
      • 1.2 什么是Hive?
      • 1.3 Hive的架构
      • 1.4 Hive的工作流程

Apache Hive 教程

Hive Tutorial

资料来源:Hive Tutorial (tutorialspoint.com)

Hive是Hadoop中用于处理结构化数据的数据仓库基础设施工具。它驻留在Hadoop之上,对大数据进行汇总,使查询和分析变得容易

这是一个简短的教程,介绍了如何在Hadoop分布式文件系统中使用Apache Hive HiveQL。本教程可以成为你成为一个成功的Hadoop开发人员的第一步。

1. Hive-简介

1.1 学习Hive的前置知识

“大数据”一词用于大型数据集的集合,这些数据集包括巨大的容量、高速度和每天都在增加的各种数据。传统的数据管理系统难以处理大数据。因此,Apache软件基金会引入了一个名为Hadoop的框架来解决大数据管理和处理方面的挑战。

hadoop

Hadoop是一个开源框架,用于在分布式环境中存储和处理大数据。它包含两个模块,一个是MapReduce,另一个是HDFS (Hadoop Distributed File System)。这是hadoop1.x,hadoop2.x以后还引入了Yarn

MapReduce:它是一个并行编程模型,用于处理大型商用硬件集群上的大量结构化、半结构化和非结构化数据。

HDFS:Hadoop分布式文件系统是Hadoop框架的一部分,用于存储和处理数据集。它提供了一个在商用硬件上运行的容错文件系统。

Hadoop生态系统包含不同的子项目(工具),如Sqoop、Pig和Hive,用于帮助Hadoop模块。

Sqoop:用于在HDFS和RDBMS之间导入和导出数据。

Pig:它是一个过程语言平台,用于开发MapReduce操作的脚本。

Hive:用于开发SQL类型脚本来执行MapReduce操作的平台。

注意:执行MapReduce操作有多种方式:

  • 传统方法使用Java MapReduce程序处理结构化、半结构化和非结构化数据。
  • MapReduce使用Pig来处理结构化和半结构化数据的脚本方法。
  • Hive Query Language (HiveQL或HQL),使用Hive代替MapReduce处理结构化数据。

前面讲了那么多前置知识

1.2 什么是Hive?

如开头所说,Hive是Hadoop中用于处理结构化数据的数据仓库基础设施工具。它驻留在Hadoop之上,对大数据进行汇总,使查询和分析变得容易。

最初Hive是由Facebook开发的,后来Apache软件基金会接受了它,并以Apache Hive的名义将其进一步开发为开源。它被不同的公司使用。例如,Amazon在Amazon Elastic MapReduce中使用了它。


Hive不是什么?

不是 关系数据库

不是 联机事务处理(OLTP)的设计

不是 用于实时查询和行级更新的语言


Hive的特点

  • 它将模式(schema )存储在数据库中,并将处理后的数据存储到HDFS中。
  • 它是为OLAP(联机分析处理)设计的。
  • 它提供用于查询的SQL类型语言,称为HiveQL或HQL。
  • 它是熟悉的、快速的、可伸缩的和可扩展的。

tips:OLAP=Online Analytical Processing, OLTP = Online Transaction Processing


1.3 Hive的架构

Hive的架构示意图如下:

Hive Architecture

这个组件图包含不同的单元。各单元介绍如下表:

Unit NameOperation
User InterfaceHive是一个数据仓库基础架构软件,可以创建用户和HDFS之间的交互。Hive支持的用户界面包括Hive Web UI、Hive命令行和Hive HD Insight (Windows服务器)。
Meta StoreHive选择各自的数据库服务器来存储表、数据库、表中的列、它们的数据类型和HDFS映射的模式或元数据。
HiveQL Process EngineHiveQL类似于在Metastore上查询模式信息的SQL。它是MapReduce程序的传统方法的替代品之一。不用Java编写MapReduce程序,我们可以为MapReduce作业编写查询并处理它。
Execution EngineHiveQL进程引擎与MapReduce的对接部分是Hive Execution Engine。执行引擎处理查询并生成与MapReduce结果相同的结果。它使用MapReduce的风格。
HDFS or HBASEHadoop分布式文件系统或HBASE是将数据存储到文件系统中的数据存储技术。

1.4 Hive的工作流程

Hive和Hadoop之间的工作流程如下图所示。

How Hive Works

下表定义了Hive与Hadoop框架的交互方式:

Step No.Operation
1执行查询:Hive接口(如Command Line或Web UI)将查询发送给驱动程序(任何数据库驱动程序,如JDBC、ODBC等)执行。
2驱动程序获得计划:驱动程序借助查询编译器对查询进行解析,检查查询的语法和查询计划或查询的要求。
3编译器获取元数据:编译器向Metastore(任何数据库)发送元数据请求。
4Metastore发送元数据:Metastore发送元数据作为对编译器的响应。
5编译器发送计划:编译器检查需求并将计划重新发送给驱动程序。至此,查询的解析和编译已经完成。
6执行引擎执行计划:驱动程序将执行计划发送给执行引擎。
7MapReduce执行作业(job):在内部,执行任务的进程是一个MapReduce任务。执行引擎将作业发送给位于Name节点中的JobTracker,并将该作业分配给位于Data节点中的TaskTracker。这里,查询执行MapReduce作业。
7.1执行引擎进行元数据操作:同时在执行过程中,执行引擎可以通过Metastore执行元数据操作。
8执行引擎获取结果:执行引擎接收来自Data节点的结果。
9执行引擎发送结果:执行引擎将这些结果值发送给驱动程序。
10驱动程序发送结果:驱动程序将结果发送给Hive接口。

未完待续,点个赞呗

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

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

相关文章

Pytorch加载模型

一、使用torchvision加载模型 1.使用说明: torchvision是PyTorch生态系统中的一个包,专门用于计算机视觉任务。它提供了一系列用于加载、处理和预处理图像和视频数据的工具,以及常用的计算机视觉模型。 torchvision.models模块包含许多常用的预训练计…

【IEEE独立出版、有确定的ISBN号】第三届能源与电力系统国际学术会议 (ICEEPS 2024)

第三届能源与电力系统国际学术会议 (ICEEPS 2024) 2024 3rd International Conference on Energy and Electrical Power Systems 连续2届会后4-5个月EI检索,检索稳定! 成功申请IEEE出版! 特邀院士、Fellow 报告! 一、大会信息 …

关于sum+=1与sum=sum+1的关系(C语言)

一、sum 1;与sum sum 1;是相等的&#xff0c;运算结果相等&#xff1b; 二、用一段代码说明&#xff1b; # define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int main() {//初始变量值&#xff1b;int n1 1;int n2 1;//输出&#xff1b;printf("运算前的n…

防止在 Qt 中触发信号

在 Qt 中工作时&#xff0c;有时我们需要暂时阻止某些信号的触发。以下是一个经典场景&#xff1a;我们有一个 QCheckBox 对象&#xff0c;当用户勾选或取消勾选时&#xff0c;需要调用一个函数&#xff0c;因此我们将这个函数连接到 stateChanged(int state) 信号。然而&#…

华媒舍:5种中国台湾媒体发稿套餐推广策略大汇聚!

在当代商业时代中&#xff0c;推广策略针对企业的成功尤为重要。中国台湾作为一个经济发展发达的地区&#xff0c;有着繁盛新闻媒体产业链&#xff0c;为企业提供了各种各样发稿套餐来推广其产品与服务。下面我们就详细介绍5种中国台湾媒体发稿套餐推广策略&#xff0c;助力企业…

仓库管理系统03--设计登录页面

1、添加登录窗体 2、整体布局UI 1&#xff09;设计三个白底的边框&#xff0c;其中2个旋转角度&#xff0c;形成以下效果 3、设计登录控件 <Window x:Class"West.StoreMgr.Windows.LoginWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presenta…

【Windows】“ONLYOFFICE 桌面编辑器 8.1 新特性大揭秘:全新 PDF 编辑器、幻灯片版式和更多更新“

【Windows】“ONLYOFFICE 桌面编辑器 8.1 新特性大揭秘&#xff1a;全新 PDF 编辑器、幻灯片版式和更多更新” 大家好 我是寸铁&#x1f44a; 【Windows】“ONLYOFFICE 桌面编辑器 8.1 新特性大揭秘&#xff1a;全新 PDF 编辑器、幻灯片版式和更多更新”✨ 喜欢的小伙伴可以点点…

精准时刻,掌控未来:解锁新一代PCIe时钟板卡!

在当今高度互联和精确度要求极高的技术环境中&#xff0c;时间同步与精确计时显得尤为重要。为了满足行业对高精度时间管理的不断增长的需求&#xff0c;我们自豪地推出铷原子时钟板卡和高精度时钟同步板卡。这两款创新板卡结合了先进的技术和卓越的性能&#xff0c;为各类应用…

TCP/IP 在 Linux 内核中的实现

之前出了一个python的socket编程的文章&#xff0c;里面讲的是怎么进行socket编程。最近想到TCP/IP协议的原理&#xff0c;然后查阅资料后说是在操作系统级别实现的&#xff0c;python的socket模块只是一个接口。 本文就来谈一下Linux源码里实现TCP/IP协议簇的源代码在哪里&am…

C++ 图像处理

OpenCV提供了丰富的图片处理功能。以下是一些常见的图片处理方式的C示例代码&#xff1a; #include <opencv2/opencv.hpp> #include <iostream> int main() { // 读取图片 cv::Mat img cv::imread("example.jpg"); // 检查图片是否成功读取 if …

域名注册成功后能删除吗?

域名注册成功后&#xff0c;很多用户可能会有这样的疑问&#xff1a;如果不再需要这个域名&#xff0c;能否将其删除?这个问题的答案取决于多个因素&#xff0c;包括域名的注册政策、使用期限以及注册商的规定。本文将探讨域名注册成功后的删除问题&#xff0c;帮助用户更好地…

巧用SOLIDWORKS进行复杂曲面模型的实体建模

SOLIDWORKS正版软件有实体建模、曲面建模、钣金建模、焊件建模、模具建模等多种建模方式&#xff0c;每种建模方式都有独特的使用环境和场景&#xff0c;如果能灵活使用这些建模命令&#xff0c;就可以起到事半功倍的效果。 如上图所示的模型&#xff0c;通过观察和分析&#x…

1992-2023年全国及31省人均地区生产总值/人均GDP数据(无缺失)

1992-2023年全国及31省人均地区生产总值/人均GDP数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;1992-2023年 2、来源&#xff1a;国家统计局、各省年鉴 3、指标&#xff1a;人均国内生产总值/人均GDP 4、范围&#xff1a;全国及31省 5、缺失情况&#xff1a;无缺…

中介子方程三十一

XXFXXuXXWXXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXWXπXXWXeXyXeXbXπXpXXNXXqXeXXrXXαXXuXpXXdXXpXuXXαXXrXXeXqXXNXXpXπXbXeXyXeXWXXπXWXuXXdXXrXXαXXuXpXXdXXpXuXXαXXrXXdXXuXXWXXuXXFXXEXXyXXEXXrXXαXXuXpXXdXXpXuXXαXXrXXEXXyXXαXiXXαXiXrXkXtXyXXpXVXXdXuXWX…

什么是测试自动化?意义、方法、方法论、工具和收益

测试自动化使用软件和脚本来自动测试程序&#xff0c;使测试更快、更有效。本文将了解测试自动化的基本原理、方法、工具、好处和挑战。 测试自动化被定义为软件开发中用于自动执行测试的技术。 它包括编写脚本或使用专门的软件工具来自动执行测试&#xff0c;而无需人工干预。…

【杂记-浅谈LSA链路状态通告】

浅谈LSA链路状态通告 一、LSA链路状态通告概述二、LSA的作用三、LSA的类型和使用场景 一、LSA链路状态通告概述 LSA&#xff0c;Link State Advertisement&#xff0c;链路状态通告&#xff0c;是OSPF协议中的一个核心组件&#xff0c;用于在路由器之间交换链路状态信息。LSA包…

Spring Boot 和 Spring Framework 的区别是什么?

SpringFramework和SpringBoot都是为了解决在Java开发过程中遇到的各种问题而出现的。了解它们之间的差异&#xff0c;能够更好的帮助我们使用它们。 SpringFramework SpringFramework是一个开源的Java平台&#xff0c;它提供了一种全面的架构和基础设施来支持Java应用程序的开…

ffmpeg的安装教程

1.官网下载ffmpeg 进入Download FFmpeg网址&#xff0c;点击下载windows版ffmpeg&#xff08;点击左下第一个绿色的行&#xff09; 在release builds第一个绿框里面选择一个版本下载。 2.配置 下载完成后解压该压缩包单击进入ffmpeg\bin&#xff0c;会出现如下界面&#xff1…

【华为OD机试】最小调整顺序次数 / 特异性双端队列(C++ Java JavaScript Python )

题目 题目描述 有一个特异性的双端队列,该队列可以从头部或尾部添加数据,但是只能从头部移出数据。 小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据(可能从头部添加、也可能从尾部添加),依次添加1到n;n个指令是移出数据。 现在要求移除数据的顺序…

【XCharts插件】3-1、制作图表及代码生成图表(v1.0)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 XCharts插件是一款基于UGUI的功能强大、易用、参数可配置的数据可视化图表插件。 【Unity3D…