
使用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 HiveServerHive客户端,配置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.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)