文档章节

Hive命令行界面的一些变量、属性及常用命令

LeeHH
 LeeHH
发布于 2017/02/08 16:44
字数 943
阅读 384
收藏 0

“$”后对应的是Linux的Shell命令,“hive>”后对应的是CLI里的命令

 

CLI选项

--help查看hive的参数

$hive --help --service cli

usage: hive
 -d,--define <key=value>          Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B
 -e <quoted-query-string>         SQL from command line
 -f <filename>                    SQL from files
 -H,--help                        Print help information
 -h <hostname>                    connecting to Hive Server on remote host
    --hiveconf <property=value>   Use value for given property
    --hivevar <key=value>         Variable subsitution to apply to hive
                                  commands. e.g. --hivevar A=B
 -i <filename>                    Initialization SQL file
 -p <port>                        connecting to Hive Server on port number
 -S,--silent                      Silent mode in interactive shell
 -v,--verbose                     Verbose mode (echo executed SQL to the
                                  console)

 

变量和属性

命名空间 使用权限 描述
hivevar 可读/可写 用户自定义变量
hiveconf 可读/可写 Hive相关的配置属性
system 可读/可写 Java定义的配置属性
env 只可读 Shell环境定义的环境变量

 

$ hive --define foo=bar
hive> set foo;
foo=bar;

hive> set hivevar:foo;
hivevar:foo=bar;

hive> set hivevar:foo=bar2;

hive> set foo;
foo=bar2;

hive>set hivevar:foo;
hivevar:foo=bar2;

hive> set system:user.name;
system:user.name=root

hive> set system:user.name=leon;

hive> set system:user.name;
system:user.name=leon

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

由上可得:--hivevar标识和--define标识是相同的。

在CLI里可以直接引用我们刚刚定义的变量:

hive> create table toss1(i int, ${hivevar:foo} string);

hive> describe toss1;
i       int
bar2    string

hive> create table toss2(i2 int, ${foo} string);

hive> describe toss2;
i2      int
bar2    string

hive> drop table toss1;

hive> drop table toss2;

--hiveconf可以用来配置Hive行为的所有属性:

$ hive --hiveconf hive.cli.print.current.db=true
hive (default)> set hiveconf:hive.cli.print.current.db;
hiveconf:hive.cli.print.current.db=true

hive (default)> set hiveconf:hive.cli.print.current.db;
hiveconf:hive.cli.print.current.db=true

hive (default)> set hiveconf:hive.cli.print.current.db=false;

hive> set hiveconf:hive.cli.print.current.db=true;
hive (default)>

 

Hive中“一次使用”命令

所谓一次使用,其实就是执行一个或多个查询之后,立即退出CLI。

-e:执行结束即退出

$ hive -e "select * from x limit 1";
OK
name1 100
Time taken: 3.955 seconds

-S:静默模式,即不会打印“OK”和“Time taken”等行,>重定向,和Linux的一样

$ hive -S -e "select * from x limit 1" > tmp/test

$cat /tmp/test
name1 100

 

从文件中执行Hive查询

-f可以执行指定文件中的一个或多个查询语句,查询文件一般后缀都为.q或.hql

$ hive -f /root/test.hql

在CLI里可以用SOURCE来做同样的事情:

hive> source /root/test.hql

 

在CLI里执行shell命令

在命令前加上感叹号!并且以分号;结尾就可以了:

hive> ! /bin/echo "leon";
"leon"
hive> !pwd;
/
hive> !whoami;
root

 

在Hive内使用Hadoop的dfs命令

只需要将Hadoop命令中的关键字hadoop去掉,然后以分号结尾就可以了:

hive> dfs -ls /;
Found 26 items
dr-xr-xr-x   - root root      36864 2017-02-08 11:11 /bin
dr-xr-xr-x   - root root          0 2017-02-08 11:41 /proc
dr-xr-xr-x   - root root          0 2017-02-08 11:41 /sys
dr-xr-xr-x   - root root      20480 2017-02-06 16:57 /sbin
drwxr-xr-x   - root root       4096 2016-04-21 15:05 /opt
drwxr-xr-x   - root root      12288 2017-02-08 14:43 /etc
dr-xr-xr-x   - root root       4096 2017-02-06 16:57 /lib
drwx------   - root root      16384 2016-04-21 15:00 /lost+found
drwxr-xr-x   - root root        800 2017-02-08 11:42 /run
drwxr-xr-x   - root root       4096 2015-08-12 22:22 /media
drwxr-xr-x   - root root       4096 2017-02-07 11:31 /user
drwxr-xr-x   - root root       4096 2017-01-16 15:31 /tem
drwxr-xr-x   - root root       4096 2017-01-16 15:31 /data
drwxr-xr-x   - root root       4096 2015-08-12 22:22 /mnt
dr-xr-xr-x   - root root      36864 2017-02-06 16:57 /lib64
-rw-r--r--   1 root root          0 2017-01-17 12:04 /.vimrc
drwxr-xr-x   - root root       4096 2017-02-08 11:41 /var
drwxr-xr-x   - root root       4096 2017-02-07 11:19 /usr
drwxr-xr-x   - root root       4096 2017-02-06 17:06 /home
drwxr-xr-x   - root root       4096 2017-02-02 10:00 /smb
drwxr-xr-x   - root root       4096 2015-08-12 22:22 /srv
drwxrwxrwx   - root root       4096 2017-02-08 16:24 /tmp
dr-xr-x---   - root root       4096 2017-02-08 14:43 /root
-rw-r--r--   1 root root          0 2016-04-21 22:18 /.autorelabel
drwxr-xr-x   - root root       2860 2017-02-08 11:41 /dev
dr-xr-xr-x   - root root       4096 2017-01-16 15:07 /boot

 

在Hive脚本里进行注释

--开头表示注释:

-- This is a test script
select * from x;

 

© 著作权归作者所有

LeeHH
粉丝 1
博文 36
码字总数 36305
作品 0
深圳
程序员
私信 提问
hadoop集群配置之hive1.2.0安装部署(远程mysql)

hadoop的版本是2.6.0 根据hive的源数据不同分为三种模式 1、内嵌模式,使用自带的derby 2、本地独立模式,本地mysql库 3、远程模式,远程mysql库 这里主要将第三种模式 #假设hadoop2.6.0已经...

尚浩宇
2015/05/22
1K
0
Hive学习之Hive CLI

Hive命令行接口(CLI)提供了执行Hive QL、设置参数等功能,要启用CLI只需要在命令行下执行$HIVE_HOME/bin/hive命令。在命令下执行hive –H可以查看CLI选项,如下表所示: -d,--define <key...

舒运
2018/07/17
130
0
CentOS7安装hive-2.1.0

环境: CentOS7 Hadoop-2.6.4,配置两个节点:master、slave1 mysql-server 过程: 下载、解压hive-2.1.0到/usr/hadoop-2.6.4/thirdparty $ tar zxvf apache-hive-2.1.0-bin.tar.gz 设置 Hi......

x163麦芽糖
2016/11/23
52
0
Hive几种参数配置方法(转载)

转自:https://www.iteblog.com/archives/871.html Hive提供三种可以改变环境变量的方法,分别是:(1)、修改${HIVE_HOME}/conf/hive-site.xml配置文件;(2)、命令行参数;(3)、在已经进...

晴天哥
2017/09/04
0
0
[翻译]Hive wiki GettingStarted

安装和配置 需求 java1.6 hadoop 0.20.x 使用发布包安装Hive 首先从Apache下载镜像下载最新的发布包(见Hive版本)接下来解压缩tar包。这将会创建一个名字为hive-x.y.z的子目录 配置环境变量H...

xiangel
2014/03/19
194
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
166
8
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
2
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部