Hive学习——命令行

简介: Hive学习——命令行

1 通hive --help --service cli查看命令行

代码语言:javascript

复制

# hive --help --service cli
usage: hive
-d,--define <key=value> Variable substitution to apply to Hive commands. e.g. -d A=B or --define A=B
--database <databasename> Specify the database to use
-e <quoted-query-string> SQL from command line
-f <filename> SQL from files
-H,--help  Print help information
 --hiveconf <property=value> Use value for given property
 --hivevar <key=value>      Variable substitution to apply to Hive commands. e.g. --hivevar A=B
-i <filename> Initialization SQL file
-S,--silent Silent mode in interactive shell
-v,--verbose Verbose mode (echo executed SQL to the console)

2 set 命令

1)显示某个变量值

代码语言:javascript

复制

hive> set env:HOME;
env:HOME=/root

2)显示所有变量

代码语言:javascript

复制

hive> set

3)设置变量

代码语言:javascript

复制

#hive --define name=jerry
hive> set name;
name=jerry
hive> set hivevar:name;
hivevar:name=jerry
hive> set hivevar:name=JerryGu;
hive> set name;
name=JerryGu
hive> set hivevar:name;
hivevar:name=JerryGu

注意:

hivevar 是可选的

代码语言:javascript

复制

--define <key=value>

等价于

代码语言:javascript

复制

--hivevar <key=value>

4)使用变量

代码语言:javascript

复制

hive> create table myuser(id
int,${hivevar:name} string);
hive> desc myuser;
id  int                                      
jerrygu   string

用到${hivevar:name}

代码语言:javascript

复制

hive> create table myuser1(id
int,${name} string);
hive> desc myuser1;
id  int                                      
jerrygu   string

用到${name}

代码语言:javascript

复制

hive> drop table myuser;
hive> drop table myuser1;

5)系统变量

代码语言:javascript

复制

hive> set hive.cli.print.current.db;
hive.cli.print.current.db=false
hive> set
hiveconf:hive.cli.print.current.db=true;
hive> set hive.cli.print.current.db;
hive.cli.print.current.db=true
hive> set
hiveconf:hive.cli.print.current.db=flase;

3 system变量与env变量

代码语言:javascript

复制

hive> set system:user.name;
system:user.name=root
hive>set system:user.name=jerry;
hive> set system:user.name;
system:user.name=root
hive> set env:HOME;
env:HOME=/root
hive> set env:HOME=/home/jerry;
env:* variables can not be set.

注意:system变量可以修改,env变量只读。

4 一次性使用命令 -e -S

Linux Shell 下可以一次性使用hive命令(假设demo.person表已经存在,后面介绍)

代码语言:javascript

复制

# hive -S -e "use demo;select * from
person" >/home/jerry/myquery;
# cat /home/jerry/myquery
1 elite0      10   ["basketball","music","dance"]    {"adderss":"xx"}
2 elite1      20   ["basketball","music","dance"]    {"adderss":"xx"}
3 elite2      10   ["basketball","music","dance"]    {"adderss":"xx"}
4 elite3      20   ["basketball","music","dance"]    {"adderss":"xx"}
5 elite4      10   ["basketball","music","dance"]    {"adderss":"xx"}
6 elite5      20   ["basketball","music","dance"]    {"adderss":"xx"}

>文件重定向

注意:

  1. 1. SQL语句引号。
  2. 2. 分号结束。

5 从文件中执行hive查询:-f

代码语言:javascript

复制

#gedit /home/jerry/hive/query.hql
use demo;
select * from person;
# hive -f /home/jerry/hive/query.hql
OK
Time taken: 3.719 seconds
OK
1 elite0      10   ["basketball","music","dance"]    {"adderss":"xx"}
2 elite1      20   ["basketball","music","dance"]    {"adderss":"xx"}
3 elite2      10   ["basketball","music","dance"]    {"adderss":"xx"}
4 elite3      20   ["basketball","music","dance"]    {"adderss":"xx"}
5 elite4      10   ["basketball","music","dance"]    {"adderss":"xx"}
6 elite5      20   ["basketball","music","dance"]    {"adderss":"xx"}

6 执行前指定先执行某个命令:-i

代码语言:javascript

复制

#gedit /home/.hiverc
ADD JAR /home/jerry/jar/my.jar;
set hive.cli.print.current.db=true;
set hive.exec.mode.local.auto=true;
#hive -i /home/.hiverc

7 显示字段名称:set hive.cli.print.header=true;

代码语言:javascript

复制

hive> set hive.cli.print.header=true;
hive> select * from person;
erson.id person.name person.age    person.likes   person.address
1 elite0      10   ["basketball","music","dance"]    {"adderss":"xx"}
2 elite1      20   ["basketball","music","dance"]    {"adderss":"xx"}
3 elite2      10   ["basketball","music","dance"]    {"adderss":"xx"}
4 elite3      20   ["basketball","music","dance"]    {"adderss":"xx"}
5 elite4      10   ["basketball","music","dance"]    {"adderss":"xx"}
6 elite5      20   ["basketball","music","dance"]    {"adderss":"xx"}

8 其他

1)自动补全

2)记录历史

3)执行Shell命令(!开始;分号结束)

代码语言:javascript

复制

hive> ! ls /home/jerry;
Desktop
Documents
Downloads
hive
Music
Pictures
Public
snap
Templates
Tools
Videos
hive>

4)执行dfs命令

去掉haddop关键字,分号结束。

代码语言:javascript

复制

hive> dfs -ls /;
Found 2 items
drwx-wx-wx- root supergroup          0 2024-08-06 12:13 /tmp
drwxr-xr-x- root supergroup          0 2024-08-06 13:50 /user

5)注释: --

目录
相关文章
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
Hadoop-13-Hive 启动Hive 修改启动参数命令行启动测试 几句简单的HQL了解Hive
77 2
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
58 4
|
2月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
45 2
|
3月前
|
SQL JSON Java
Hive学习-数据查询语句
Hive学习-数据查询语句
36 6
|
3月前
|
SQL JavaScript 前端开发
Hive学习-数据定义语句
Hive学习-数据定义语句
47 5
|
3月前
|
SQL JavaScript 前端开发
Hive学习-lateral view 、explode、reflect和窗口函数
Hive学习-lateral view 、explode、reflect和窗口函数
63 4
|
SQL 存储 分布式计算
Hive学习---5、分区表和分桶表
Hive学习---5、分区表和分桶表
|
SQL 存储 分布式计算
Hive学习---6、文件格式和压缩
Hive学习---6、文件格式和压缩
Hive学习---6、文件格式和压缩
|
7月前
|
SQL HIVE
Hive【Hive学习大纲】【数据仓库+简介+工作原理】【自学阶段整理的xmind思维导图分享】【点击可放大看高清】
【4月更文挑战第6天】Hive【Hive学习大纲】【数据仓库+简介+工作原理】【自学阶段整理的xmind思维导图分享】【点击可放大看高清】
196 0
Hive学习---4、函数(单行函数、高级聚合函数、炸裂函数、窗口函数)(二)
Hive学习---4、函数(单行函数、高级聚合函数、炸裂函数、窗口函数)(二)