Hive

Hive,第1张

Hive 1 组件

        使用HiveSQL作为查询接口,使用关系型数据库存储元数据,使用mapreduce作为执行层, 使用HDFS作为存储底层.

        (1) 用户接口:CLI、Client 和 WUI.CLI为shell命令行,Cli启动的时候,会同时启动一个Hive副本.Client是Hive的客户端,用户连接至Hive Server.WUI是通过浏览器访问Hive.

        (2) 元数据存储:Hive将元数据存储在数据库中,包括表的名字、表的列和分区及其属性、表的属性(是否为外部表等)、表的数据所在目录等.

        (3) Driver:解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成.生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行.

2 Hive客户端

        Hive采用了客户端-服务器模式,HiveServer(HS1)作为服务器端,负责将查询语句编译成MapReduce作业,并监控它们的执行.而Hive CLI是一个命令行接口,负责接收用户的HiveQL语句,并传送到服务器.HS2推荐使用新的Beeline命令行接口.Beeline有嵌入和远程两种 *** 作模式,生产系统推荐使用远程HS2模式,因为它更安全、不需要授予用户直接访问HDFS或元数据存储的权限.

3 Hive Server 3.1 HiveServer

Hive客户端,配置hive到环境变量的前提下,在节点的任意位置 直接输入hive.

退出:quit.

3.2 HiveServer2

(1) 启动hiveserver2服务:在bin目录下执行hive --service hiveserver2

(2) 启动beeline

在bin目录下执行beeline,进入beelin的shell窗口.

退出beelin:!quit.

(3) 连接hiveserver2

!connect jdbc:hive2://node01:10000

或者beeline -u jdbc:hive2://node01:10000/create_data

断开hiveserver2连接:!close

1.3.3 特点

(1) 可以在Beeline命令行中执行Hadoop命令,只需要将命令中的关键字hadoop去掉,以分号结尾.

(2) Hive CLI可以使用"!" *** 作符执行shell命令,以分号结尾.

1.4 参数 1.4.1 参数作用域

(1) 配置文件

用户自定义配置文件($HIVE_CONF_DIR/hive-site.xml)和默认配置文件($HIVE_CONF_DIR/hive-default.xml) 

用户自定义配置会覆盖默认配置,Hive也会读入Hadoop的配置.

配置文件的设定对本机启动的所有Hive进程都有效.

(2) 命令行参数

启动Hive时,可以在命令行添加-hiveconf来设定参数,设定对本次启动Session有效.

(3) 参数声明

可以在HQL中使用SET关键字设定参数,作用域也是session级的

上述三种设定方式的优先级依次递增.

1.4.2 命令行参数

(1) -p :指定端口

(2) -e:从命令行执行指定的HQL

hive -e 'select * from tab1 a'

(3) -f:执行HQL脚本

hive -f /home/my/hive-script.sql

(4) -v:输出执行的HQL语句到控制台

(5) -hiveconf:x=y,配置环境变量

hive -e 'select a.col from tab1 a'

-hiveconf hive.exec.compress.output=true

(6) -d:x=y,配置自定义变量

hive -d hiveDb="dtplatform_icommerce_demo" -f "hive_dim_schema.sql"

1.4.3 查看Hive版本

①找到Hive安装目录,然后查看jar包的版本号.

②查询元数据存储数据库的version表:select * from hive.version.

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5696232.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存