这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战」
hive当中的参数、变量,都是以命名空间开头
| 命名空间 | 读写权限 | 含义 |
|---|---|---|
| hiveconf | 可读写 | hive-site.xml 当中的各配置变量 |
| 例:hive --hiveconf hive.cli.print.header=true | ||
| system | 可读写 | 系统变量,包含JVM运行参数等 |
| 例:system:user.name=root | ||
| env | 只读 | 环境变量 |
| 例:env:JAVA_HOME | ||
| hive var | 可读写 | 例:hive -d val=key |
hive 参数设置方式
1、修改配置文件
${HIVE_HOME}/conf/hive-site.xml
2、启动hive cli时,通过--hive conf key = value 的方式进行设置
hive --hiveconf hive.cli.print.header=true
3、进入cli之后,通过使用set命令设置
set hive.cli.print.header=true;
或者直接查看值的信息,当不传值的时候,hive-cli会直接返回当前配置的值信息
例如:
hive> set hive.cli.print.header;
hive.cli.print.header=true
hive>
hive参数初始化配置 当前用户目录下的.hiverc文件→如果没有,可直接创建该文件,将需要设置的参数写到该文件中,hive启动运行时,会加载该文件中的配置。
vim ~/.hiverc
### 加入
set hive.cli.print.header;
hive历史操作命令集
hive会保存用户的历史操作命令集,将其保存在文件 ~/.hivehistory 下
### 使用
cat ~/.hivehistory
## 可以查看到用户在hive-cli的所有历史命令
Hive运行方式
命令行方式cli:控制台模式
### 也就是在安装hive 的机子上面执行hive启动hive-cli
### 在hive-cli中执行sql命令
(1)在命令行中可以直接输入SQL语句,例如:select * from 表格名称
(2)在命令行中可以与HDFS交互,例如:dfs ls /
(3)在命令行中可以与linux交互,例如:! pwd或者! ls /
脚本运行方式(实际生产环境中用最多)
### hive直接执行sql命令,可以写一个sql语句,也可以使用;分割写多个sql语句
hive -e ""
### hive执行sql命令,将sql语句执行的结果重定向到某一个文件中
hive -e "">aaa
### hive静默输出模式,输出的结果中不包含ok,time token等关键字
hive -S -e "" > aaa
### hive可以直接读取文件中的sql命令,进行执行
hive -f file
### hive可以从文件中读取命令,并且执行初始化操作
hive -i /home/my/hive-init.sql
### 在hive的命令行中也可以执行外部文件中的命令
hive> source file (在hive cli中运行)
JDBC方式:使用进行链接hiveserver2
但是需要在配置当中配置
在hive-site.xml 中配置好hive-server2的配置项
<property>
<!-- hive-server2用户名 -->
<name>beeline.hs2.connection.user</name>
<value>用户名</value>
</property>
<property>
<!-- hive-server2密码 -->
<name>beeline.hs2.connection.password</name>
<value>密码</value>
</property>
<property>
<!-- hive-server2端口 -->
<name>beeline.hs2.connection.hosts</name>
<value>ip:10000</value>
</property>
接下来直接使用命令
# 启动hiveserver2服务
hive --service hiveserver2 & ##加上&进行后台运行
## 使用beeline 进行hive链接
beeline -u "jdbc:hive2://hadoop3:10000/jacquesh_databases" -n hive2 -e "select * from moneys;"
### 结果可看下图