Hive基本概念

1、Hive简介

在这里插入图片描述
什么是Hive

Hive是一个语句Hadoop的一个数据仓库工具,是将结构化数据文件映射成为一个数据表,并提供类SQL的查询功能。

为什么使用Hive

在hadoop是个好软件,但是不好使用(学习成本太高,坡度陡,难度大)的前提下
降低了程序员使用hadoop的学习成本,降低了难度。

​ Hive的特点

可扩展性:与集群的扩展性相同
延展性:Hive提供自定义函数接口,支持HQL语句直接调用java 方法
容错性:节点出现问题SQL仍可完成执行。

2、 Hive架构

架构图

在这里插入图片描述
基本组成

用户接口:包括CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。
元数据存储:通常是存储在关系数据库如mysql/derby中。Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
解释器、编译器、优化器、执行器:完成HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS 中,并在随后有MapReduce 调用执行。

3、Hive与Hadoop的关系

Hive利用HDFS存储数据,利用MapReduce查询分析数据

在这里插入图片描述

4、Hive与传统数据库对比

hive用于海量数据的离线数据分析
在这里插入图片描述

Hive中没有定义专门的数据格式,用户提供的数据是什么格式,hive直接将数据拷贝到集群。不会对数据格式进行改变。

	 用户定义数据格式需要指定三个属性:

			列分隔符(通常为空格、”\t”、”\x001″)、

			行分隔符(”\n”)

			读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)

	不会对数据本身进行任何修改,甚至不会对数据进行扫描。

	Hive 中不支持对数据的改写和添加(在 一个文本中添加新数据)

	Hive 在加载数据的过程中不会对数据中的某些 Key 建立索引。
总结:hive 具有sql 数据库的外表,但应用场景完全不同,hive 只适合用来做批量数据统计分析 

5、Hive的数据存储

        DB、数据库

​		Table,  表(内部表)

​		External Table, 外部表

​		Partition,分区

​		Bucket。分桶

Hive支持的数据格式

​可支持Text,  SequenceFile  ,ParquetFile,ORC格式RCFILE等
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值