Hive基础知识
一、产生背景
1.MapReudce编程繁琐,需要编写大量的代码
2.HDFS中存放的都是文件,在HDFS中没有Scheme的概念,无法用SQL进行快速的查询。
二、Hive的概念
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。它使用一种使用类似于SQL的查询语句直接作用在分布式存储文件系统之上的数据仓库工具,用于解决海量结构化的日志数据统计问题。
Hive的数据存储在HDFS中,Hive的底层的计算是通过MR、Spark(Hive On Spark)或Tez来实现的。HQL语句通过Hive引擎被转化成map作业并提交到集群去运行,因此Hive的查询具有高延时性。
特别指出,Hive和SQL语言一样支持删查增改,但对于分布式文件系统中的大规模数据来说,Hive主要用于查询。那么Hive和关系型数据库有什么关联呢?没有任何关联,只是HQL和SQL相似而已。
Hive和关系型数据库比较:
- Hive侧重于分析,而不是实时在线交易
- Hive也支持事务,但是用的非常少
- Hive不能随意地insert和update
- Hive可以利用MR、Spark、Tez进行分布式处理,而传统关系型数据库不可以
- Hive可以拓展到上百个服务器,而关系型数据库最多只能扩展到几十个服务器
三、Hive的架构
1.用户接口
命令行Cli接口、Web接口(WUI)、远程服务接口(Client)
2.元数据(Meta)存储
Hive的元数据可以存放在Derby、MySQL、Oracle、postgres等关系型数据库库中,在实际开发中通常使用MySQL。Derby是一种单Session数据库,不支持两台机器同时对一个数据仓库进行访问,不适用于生产环境。

Hive的元数据存放在关系型数据库中,如MySQL中,下图就是存储在Hive安装目录的与元数据相关的sql文件:

Meta ==> HA Database : MySQL主备 vip 。Hive、Spark SQL、impala等SQL on Hadoop使用同一套元数据。
为什么需要元数据?因为HDFS里的数据是以文件的形式存在的,无法使用SQL进行快速查询,而元数据的作用就是给HDFS中的文件作用上Scheme信息。
三、外部表和内部表的区别
内部表:存储目录默认是/user/hive/warehouse,其存储目录可以通过修改hive-site.xml文件的hive.metastore.dir参数进行配置。
Hive基础知识的更多相关文章
- 《Programming Hive》读书笔记(两)Hive基础知识
<Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...
- Hive基础知识梳理
Hive简介 Hive是什么 Hive是构建在Hadoop之上的数据仓库平台. Hive是一个SQL解析引擎,将SQL转译成MapReduce程序并在Hadoop上运行. Hive是HDFS的一个文件 ...
- (cdh)hive 基础知识 名词详解及架构
过程 启动 hive 之后出现的 CLI 是查询任务的入口,CLI 提交任务给 Driver Driver 接收到任务后调用 Compiler,Executor,Optimizer 将 SQL 语句转 ...
- hive基础知识五
Hive 主流文件存储格式对比 1.存储文件的压缩比测试 1.1 测试数据 https://github.com/liufengji/Compression_Format_Data M 1.2 T ...
- hive基础知识四
1. hive表的数据压缩 1.1 数据的压缩说明 压缩模式评价 可使用以下三种标准对压缩方式进行评价 1.压缩比:压缩比越高,压缩后文件越小,所以压缩比越高越好 2.压缩时间:越快越好 3.已经压缩 ...
- hive基础知识三
1. 基本查询 注意 SQL 语言大小写不敏感 SQL 可以写在一行或者多行 关键字不能被缩写,也不能分行 各子句一般要分行写 使用缩进提高语句的可读性 1.1 全表和特定列查询 全表查询 selec ...
- hive基础知识二
1. Hive的分区表 1.1 hive的分区表的概念 在文件系统上建立文件夹,把表的数据放在不同文件夹下面,加快查询速度. 1.2 hive分区表的构建 创建一个分区字段的分区表 hive> ...
- hive基础知识一
1. Hive是什么 1.1 hive的概念 Hive:由Facebook开源,用于解决海量(结构化日志)的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表 ...
- hive基础知识or基本操作命令
MySQL的密码是:123456 1.hive创建标准表(以后均可以按照这样创建): create [external] table [if not exists] records (year STR ...
随机推荐
- 详解IPTABLES
详解IPTABLES Iptables 是Linux 内核集成的 IP 信息包过滤系统.如果Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Li ...
- 【朝花夕拾】Android性能篇之(七)Android跨进程通信篇
前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Andro ...
- 基于python脚本,实现Unity全平台的自动打包
转载请标明出处:http://www.cnblogs.com/zblade/ 0. 概述 本文主要针对项目中自动打包过程进行调研,实现用python脚本来打出win/android/ios三个平台下的 ...
- [翻译] Linux 内核中的位数组和位操作
目录 Linux 内核里的数据结构 原文链接与说明 Linux 内核中的位数组和位操作 位数组声明 体系结构特定的位操作 通用位操作 链接 Linux 内核里的数据结构 原文链接与说明 https:/ ...
- 浅谈JavaWeb架构演变
一 JavaWeb架构演变 在java架构模式中,我们可以将MVC架构模式抽象为如下结构: 1.View层.View层即UI层,可采用的技术如JSP,Structs,SpringMVC等 2.Con ...
- 数据库艰难求生之路(基础:创建数据库表格)part1
创建表格 1.创建表格之identity create table TableName( id ,), col_1 ), col_2 ) ) 这是一个简单的表格创建,identity这个是指在创建表 ...
- Eureka的工作原理以及它与ZooKeeper的区别
1.Eureka 简介: Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分 ...
- 菜鸟入门【ASP.NET Core】1:环境安装
下载.NET Core SDK 下载地址:https://www.microsoft.com/net/download/windows https://www.microsoft.com/net/le ...
- Mysql 的 create as 和create like 区别
大家可能使用Navicat Premium时发现很方便,比如复制表或数据结构等,其实这种复制表数据或结构方法就是create table as 和create table like 这种方式实现细心的 ...
- 《JavaScript高级程序设计》笔记:BOM(八)
BOM(浏览器对象模型)提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关. window对象 全局作用域 定义全局变量与在window对象上直接定义属性还是有一点差别:全局变量不能通过 ...