001 hive简介

news2024/11/18 20:38:53

一. hive概述

1. hive的产生背景

mapreduce程序大部分解决的问题是结构化数据,而解决结构化数据最佳方案是一条sql语句

hive出现的主要原因是解决mapreduce开发成本高的问题。但hive不能完全替代mr,只能处理mr中的结构化数据。

2. hive是什么

hive提供另一种语言用于编写MapReduce程序,即HQL。

Hive的本质是将 SQL 语句转换为 MapReduce 任务运行,所以底层运行的仍然是mapreduce。

hive高度依赖hadoop,业务数据都存储在HDFS上。

3. 数据仓库和数据库的区别

hive是基于hadoop的数据仓库工具。这里对比下数据仓库和数据库的区别

1)应用场景上:

数据仓库:属于olap,即On line Analysis Processing联机分析处理,擅长于数据分析,即query。hive不支持delete、update 支持insert,但效率极低。

数据库:属于oltp,即On line Transaction Processing 联机事务处理,擅长于处理事务,不擅长数据分析。

2)模式上:

数据仓库:数据读取时,会按照表的结构进行数据校验;

数据库:数据写入时,会按照表的结构进行数据校验。

3)事务支持上:数据库有事务概念,数据仓库不支持事务。

4. hive优缺点

优点:延展性强:271个内置函数,并可自定义函数

缺点:

hive不支持delete和update操作;不支持事务;不支持实时查询,适合离线任务。

二. Hive 架构

Hive 作为 Hadooop 生态的数据仓库,主要能力是对 HiveQL 进行编译、解析,生成并执行相应的作业。

 

Hive主要由以下四个模块组成:

1.用户接口模块

用来实现对hive的访问,有CLI、HWI、JDBC、Thrift Server等

  • Cli(Command Line Interface):即命令行操作,类似sql

  • web ui(界面基本不用)

  • 通过jdbc/odbc进行连接:一般地hive连接:jdbc:hive2://(hive所在节点的)主机名:10000

从上面的架构图可以看到,通过JDBC、ODBC连接,先会经过Thrift Server,然后再到Driver;其他通过command line和hive web interface则直接和Driver进行交互。

2. thrift server

即跨语言服务层:它将其他语言(java,c,python)转化为hive可识别的语言可以让不同的编程语言调用Hive的接口。

其中hive提供的Thrift 接口可以让用户通过JDBC连接发送HiveQL请求到thrift接口,然后交由 Driver,最后Thrift将执行结果返回客户端。

3. Driver

Hive执行的核心流程:

解释器:将Hql语句转化为抽象的语法树(提取关键字);

编译器:将抽象语法树编译成mapreduce任务;

优化器:对编译结果进行优化(任务的合并);

执行器:最后由 Executor 执行器进行执行。

4. Meta Store

1)hive元数据可以存储在mysql中。默认元数据存储在一个自带的关系型数据库derby,但因为是单用户企业不适用。

2)hive元数据的储存内容:表数据的字段信息(字段名,字段类型,字段顺序)、表名信息表、以及和hdfs目录对应的关系。

三. hive的知识目录

1.hive的安装、运维等

2.数据类型与文件格式

3.hiveQL的使用:

         库表定义、数据操作、数据查询

          视图、索引

4. hiveQL函数、自定义函数

5. 模式设计

6. 调优

7. 其他格式和压缩方法

8. 原理:hive的Thrift服务

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

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

相关文章

【数据结构】常见数据结构汇总

文章目录 前言一、数组二、链表三、栈四、队列五、哈希表--散列表六、堆七、树八、图参考与感谢 前言 数据结构是计算机存储、组织数据的方式。一种好的数据结构可以带来更高的运行或者存储效率。数据在内存中是呈线性排列的,但是我们可以使用指针等道具&#xff0…

hive学习入门

第四章 HQL基础语法 Hive中的语句叫做HQL语句,是一种类似SQL的语句,基本上和SQL相同但是某些地方也是有很大的区别. 4.1 数据库操作 创建数据库 1.创建一个数据库,数据库在HDFS上的默认存储路径是/hive/warehouse/*.db。 create database hive01; 避免要创建的数据库已经存…

算法设计与分析:分治法

目录 第1关:分治法介绍 任务描述: 相关知识: 基本概念: 解题步骤: 实例演示: 关键代码: 编程要求: 测试说明: 第2关:归并排序 任务描述:…

网安行业「iPhone时刻」!深信服首秀安全GPT技术应用

5月18日,深信服正式对外首秀安全GPT技术应用。深信服科技董事长何朝曦在现场分享了安全GPT技术应用的研发背景、技术应用特点及未来设想。深信服科技研发总经理梁景波、深信服安全攻防专家演示了安全GPT技术应用在XDR平台上的效果,包括高级威胁检测、安全…

Midjourney8种风格介绍+使用场景(2)

引言 我相信大家都或多或少玩过Midjourney,但是要形成自己独特的个人IP,那么有必要知晓画作的一些基础知识,如果你没有时间实践,没有关系,我来操作,定期分享画作相关知识,既简单又方便&#xff…

软件测试面试常常遇到的十大“套路”

面试中,如何回答HR提出的问题很大程度上决定了面试能不能成功。 下面是软件测试人员在面试过程中经常被问到的10个问题,告诉你怎么回答才不会被面试官套路...... 一、请你做一个自我介绍 误区: 一般人回答这个问题过于平常,只说…

5th-Generation Mobile Communication Technology(四)

目录 一、5G/NR 1、 快速参考(Quick Reference) 2、5G Success 3、5G Challenges 4、Qualcomm Videos 二、PHY and Protocol 1、Frame Structure 2、Numerology 3、Waveform 4、Frequency Band 5、BWP 6、Synchronization 7、Beam Management 8、CSI Fra…

闭包?什么是闭包?--JavaScript前端

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 闭包的背景 由于js中只有两种作用域,全局作用域和函数作用域(模块…

模拟封装C标准库

文章目录 1. 准备工作2. my_fopen3. my_fwrite4. my_fclose和my_fflush5. syncfs 1. 准备工作 举个例子: 这里我们要实现my_fopen,my_fwrite和my_fclose这三个函数,并封装MyFILE。 这是MyFILE的封装,然后我们把三个函数接口完成…

Seaborn 可视化学习

Abstract 主要讲述绘制强化学习结果时遇到的seaborn操作。因此,本文主要讲述Lineplot的用法,以及图片的相关设置 线条绘制 import seaborn as sns import pandas as pd import matplotlib.pyplot as plt import numpy as np# 单线绘制 data pd.DataF…

接口测试全流程扫盲,让我看看有哪些漏网之鱼

目录 扫盲内容: 1.什么是接口? 2.接口都有哪些类型? 3.接口的本质及其工作原理是什么? 4.什么是接口测试? 5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么?…

蓝桥杯2020年第十一届省赛真题-回文日期python两种方法题解(贪心+datetime)

题目 原题链接:回文日期 - 蓝桥云课 (lanqiao.cn) 题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。…

如何系统自学黑客(网络安全)?

前言: 黑客技能是一项非常复杂和专业的技能,需要广泛的计算机知识和网络安全知识。下面是一些你可以参考和学习的步骤,以系统自学黑客(网络安全): 在学习之前,要给自己定一个目标或者思考一下…

SpringBoot日志配置(四十七)

当一切被遗忘,那么就回到最初的地方 上一章简单介绍了SpringBoot配置文件敏感信息加密(四十六) , 如果没有看过,请观看上一章 这一章节,我们学习一下日志配置. 参考文章: Spring Boot 日志配置(超详细) 一. 日志配置处理 我们创建一个普通的 SpringB…

docker-compose 实现Seata Server高可用部署 | Spring Cloud 51

一、前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 TC (Transaction Coordinator) - 事务协调者 维护全局和分支事…

excel根据不同分类动态设置不同下拉列列表

有这样一个需求,有很多个系统,需要在excel中下拉选择其系统一级分类、二级分类、三级分类,不同的一级分类对应不同的二级分类列表,不同的二级分类对应不同的三级分类列表。 针对这个需求,我们采用了excel/wps中的数据…

数据结构总结7:并查集、图

后续会有补充 并查集 查你在哪个集合,在有一定交集情况下会合并集合 可应用的场景: 1.分组 2.已有集合合并 并查集就是把一组数据分组,把有共同特征的元素以树的形式放在一组 仔细观察数组中内融化,可以得出以下结论&#x…

【数据结构和算法】数据结构基础和算法思想

文章目录 1. 基础的一些数据结构(1)数组(2)链表(3)二叉树(4)哈希表 2. 有哪些常见的算法思想?3. 常见排序算法及其复杂度 1. 基础的一些数据结构 (1&#xf…

java多线程之定时器

文章目录 一、 简介1. 概念2. 定时器的使用 二、 常用方法介绍1. Schedule(TimTask task,Data time)2. Schedule(TimTask task,Data firstTime, long period)3. Schedule(TimTask task, long delay)4. Schedule(TimTask task, long delay, lo…

数据结构_排序

目录 1. 排序的基本概念 2. 插入排序 2.1 直接插入排序 2.2 折半插入排序 2.3 希尔排序 2.4 相关练习 3. 交换排序 3.1 冒泡排序 3.2 快速排序 3.3 相关练习 4. 选择排序 4.1 简单选择序列 4.2 堆排序 4.3 相关练习 5. 归并排序和基数排序 5.1 归并排序 5.2 基…