什么是Hive?Hive的常用配置?hive的运行原理是什么?

一、Hive概述

1.1 什么是Hive

Hive是建立在Hadoop上的数据仓库,提供了一系列工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。

数据库:

mysql、oracle、sqlserver、DB2、sqlite、MDB

数据仓库

Hive,是MR的客户端,也就是说我们不必要在所有的机器上都安装部署Hive

1.2 Hive的特征

1)操作接口是采用SQL语法,我们在Hive中称之为HQL

2)避免了写MapReduce的繁琐过程,内嵌SQL解析引擎,将SQL语句转译成M/R Job然后再Hadoop上执行

3)Hive的表其实就是HDFS的目录/文件,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R Job里使用这些数据

1.3 Hive体系结构

1)Client(用户操作接口)

终端命令行

JDBC--不常使用,相对于前者非常麻烦

2)metastore(元数据存储)

Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

3)解释器、编译器、优化器

完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行

4)Server(由Hadoop提供)

Hive的数据存储在HDFS中,用MapReduce进行计算

1.4 HIVE的mateStore

mateStore是Hive存储元数据的地方,默认使用内嵌的derby数据库作为存储引擎

derby弊端:一次只能打开一个会话

mysql:使用mysql作为外置引擎,多用户可以同时访问

二、Hive的常用配置

 

2.1 修改hive文件存储位置



    hive.metastore.warehouse.dir

    /user/hive/warehouse

    location of default database for the warehouse

 

2.2 修改hive在HDFS中文件权限

[root@test04 conf]# hadoop fs -chmod 777 /tmp

2.3 显示数据库名称





    hive.cli.print.header

    true

    Whether to print the names of the columns in query output.

  

 

 

    hive.cli.print.current.db

    true

    Whether to include the current database in the Hive prompt.

 

三、Hive的运行原理

 

什么是Hive?Hive的常用配置?hive的运行原理是什么?_第1张图片

 

 

 

 

你可能感兴趣的:(大数据)