[本文2000字左右,预计阅读需要15-20分钟]

让我们来回顾下之前用到的Hive用户的交互接口。Hive用户接口主要有三个:命令行(CLI),客户端(Client)和Web界面(WUI)。$HIVE_HOME/bin/hive这个shell命令是通向包括命令行界面也就是CLI等等Hive服务的通道。Hive命令行CLI是最常用的命令行接口,今天让我们来介绍下Hive命令行接口(Hive Command Line) 和Hive交互式Shell(Hive Interactive Shell)命令的一些使用以及Hive的一些内置服务。

1

Hive命令行CLI的使用

01Hive命令行接口

输入$HIVE_HOME/bin/hive -H或 –help可以显示帮助选项

具体选项的解释如下

-d,–define

定义一个变量值,这个变量可以在Hive交互Shell中引用,比如:-d A=B

–database

进入Hive交互Shell时候指定数据库,默认进入default数据库

-e

命令行执行一段SQL语句

-f

filename文件中保存HQL语句,执行其中的语句

-H,–help

显示帮助信息
-h

连接远程Hive Server

–hiveconf

在命令行中设置Hive的运行时配置参数,优先级高于hive-site.xml,但低于Hive交互Shell中使用Set命令设置。

–hivevar

同—define, 定义一个变量值,这个变量可以在Hive交互Shell中引用,比如:-d A=B

-i

进入Hive交互Shell时候先执行filename中的HQL语句

-p

连接远程Hive Server的端口号

-S,–silent

静默模式,指定后不显示执行进度信息,最后只显示结果
-v,–verbose

冗余模式,额外打印出执行的HQL语句

简单下几个选项

  • -d,define

$HIVE_HOME/bin/hive -d k1=v1 –database dataaccess

上述命令表示,定义了一个变量k1,值为v1,执行数据库为dataaccess。

进入Hive交互Shell之后,可以使用${k1}来引用该变量,比如:

Hive>select ‘${k1}’ from data limit1

这里将k1的值v1打印出来。

  • -e

当有需求是期望执行一个或多个查询(使用分号分隔),执行结束后Hive CLI立即退出,Hive CLI可以接受-e命令这种形式,

例如,执行以下命令:

$HIVE_HOME/bin/hive –e ‘select * from dataaccess.data linit 10’

直接进行查询操作。临时应急时可以使用这个功能将查询结果保存到一个文件中。增加-S选项可以开启静默模式,这样可以在输出结果中去掉“OK”和“Time taken”等行,以及其他一些无关紧要的输出信息。

  • -f

Hive中可以使用-f文件名的方式执行指定文件中的一个或多个查询语句,例如

在sql.txt中输入

select * from dataaccess.data;

执行以下命令直接进行查询操作。

$HIVE_HOME/bin/hive –f sql.txt

  • -hiveconfig

可以使用该选项设定Hive的运行参数配置,相当于在Hive交互Shell中使用set命令进行设置。比如,执行以下命令

$HIVE_HOME/bin/hive –hiveconf mapred.reduce.tasks=20

进入交互Shell之后,运行的所有查询都会设置20个reduce task,除非又用set mapred.reduce.tasks=N;进行另外设定。

  • -hivevar 。

使用方式与-d,-define一样。

执行

$HIVE_HOME/bin/hive -hivevar k2=v2 –database dataaccess

表示,定义了一个变量k2,值为v2,执行了数据库为dataaccess。

进入Hive交互Shell之后,可以使用${k2}来引用该变量,比如:

Hive>select ‘${k2}’ from data limit 1

这里将k2的值v2打印出来。

02Hive交互式Shell命令

Hive交互Shell指执行$HIVE_HOME/bin/hive之后,进入的有hive>提示符的交互式命令行,在这里可以执行查询语句,设置参数等等,所有的命令必须以分号结束,具体有以下命令和选项:

  • quit或exit:

退出交互式Shell

  • set –v:

打印出所有Hive的配置参数和Hadoop配置参数。

  • set = :

设置Hive运行时参数,优先级最高,相同的key,后面的设置会覆盖前面的设置。

  • reset:

重置所有Hive运行时配置的参数,如之前使用Set命令设置的reduce数量,reset之后,重置为hive-site.xml中的配置。

  • !

在交互Shell中执行Linux操作系统命令并打印出结果,不常用

比如:

  • dfs

在交互Shell中执行hadoop fs 命令,不常用

比如,列出hdfs文件系统中目录:

最常用的,执行HQL语句,以分号结尾;

  • source FILE

在交互Shell中执行一个脚本,不常用。

准备一个HQL脚本,里面写入查询语句:

select * from dataaccess.data;

在交互Shell中执行该脚本进行查询。

2

内置服务

Hive内部自带了许多的服务,我们可以在运行时用–service选项来明确指定使用什么服务,如果不知道Hive内部有多少服务,可以用下面的–service help来查看帮助。如下:

$hive --service helpUsage ./hive  --service serviceName Service List: beeline cli help hiveserver2 hiveserver hwi jar lineage metastore metatool orcfiledump rcfilecatParameters parsed:--auxpath : Auxillary jars--config : Hive configuration directory--service : Starts specific service/component. cli is defaultParameters used:HADOOP_HOME or HADOOP_PREFIX : Hadoop install directoryHIVE_OPT : Hive optionsFor help on a particular service:./hive --service serviceName --helpDebug help: ./hive --debug --help

可以看到上面的输出项Service List,里面显示出Hive支持的服务列表:

  • beeline

  • cli

  • help

  • hiveserver2

  • hiveserver

  • hwi

  • jar

  • lineage

  • metastore

  • metatool

  • orcfiledump

  • rcfilecat

下面介绍最有用的一些服务。

  1. cli:这个就是Command Line Interface的简写,是Hive的命令行界面,用的比较多。这是默认的服务,直接可以在命令行里面使用。

  2. hiveserver:这个可以让Hive以提供Trift服务的服务器形式来运行,可以允许许多不同语言编写的客户端进行通信。使用需要启动HiveServer服务以和客户端联系,我们可以通过设置HIVE_PORT环境变量来设置服务器所监听的端口号,在默认的情况下,端口为10000。可以通过下面方式来启动hiveserver:

    $ bin/hive --service hive server -p 10002

    Starting Hive Thrift Server

    其中-p参数也是用来指定监听端口的。

  3. hwi:其实就是hive web interface的缩写,它是Hive的Web接口,是hive cli的一个web替换方案。

  4. jar:与Hadoop jar等价的Hive的接口,这是运行类路径中同时包含Hadoop和Hive类的Java应用程序的简便方式。

  5. metastore:在默认情况下,metastore和Hive服务运行在同一个进程中。使用这个服务,可以让metastore作为一个单独的进程运行,我们可以通过METASTORE_PORT来指定监听的端口号。

hive退出命令_从零开始学习大数据系列(五十五)使用Hive命令行及内置服务相关推荐

  1. hive 如果表不存在则创建_从零开始学习大数据系列(四十七) Hive中数据的加载与导出...

    [本文大约1400字,阅读时间5~10分钟] 在<从零开始学习大数据系列(三十八) Hive中的数据库和表>和<从零开始学习大数据系列(四十二)Hive中的分区>文章中,我们已 ...

  2. 从零开始学习大数据系列之Linux-02Vim与Shell script

    从零开始学习大数据系列之Linux-02Vim与Shell script Shell Shell概述 Shell是允许用户输入命令的界面,即命令解释器.用于接收应用程序/用户的命令,然后调用操作系统内 ...

  3. 2021年大数据HBase(十五):HBase的Bulk Load批量加载操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的Bulk Load批量加载操作 一.Bulk L ...

  4. 2021年大数据Hadoop(十五):Hadoop的联邦机制 Federation

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Hadoop的联邦机制 Federation 背景概述 F ...

  5. 写给初学大数据的你,从零开始学习大数据开发的完整学习路线

    最近很多人都想学习大数据开发,但是却不知道如何开始学习,今天专门整理了一份针对大数据初学者的大数据开发学习路线. 下面分十个章节来说明大数据开发要学习的内容: 互联网科技发展蓬勃兴起,人工智能时代来临 ...

  6. 【若泽大数据实战第十六天】Hive的安装部署 + 课程一个月总结

    前言: Hadoop的课程已经告一段落,基本上在零基础课程里不会再出现了,接下来的课程由若总来上,第一讲Have. 复习前一个月的课程内容: 1.Linux Linux: 文件(*****) 权限(* ...

  7. 从零开始学习大数据平台(Episode 1)

    文章目录 (零)前言 (一)准备集群虚拟机与操作系统 (1.1)准备Master虚拟机 (1.2)准备Workers虚拟机 (1.3)设置虚拟机环境 (二)安装Hadoop和Spark (2.1)准备 ...

  8. 数据交换平台_从零开始理解大数据架构之数据交换平台

    项目简介 Exchangis是一个轻量级的.高扩展性的数据交换平台,支持对结构化及无结构化的异构数据源之间的数据传输,在应用层上具有数据权限管控.节点服务高可用和多租户资源隔离等业务特性,而在数据层上 ...

  9. 从零开始学习大数据笔记 - 开篇

    (一)大数据发展史     

最新文章

  1. php amr mp3,php 微信amr转mp3的方法
  2. 【php】windows安装PHP5.5+Apache2.4
  3. python里面的之前打过的记忆信息-忘了Python关键语句?这份备忘录拯救你的记忆...
  4. SpringMVC的常用注解
  5. [ST2017] Lab1: Triangle type and Junit test
  6. 2寸的照片长宽各是多少_贵州公务员考试照片尺寸要求是多少
  7. request如何获取请求路径方法
  8. 软件项目经理新手上路(11) - 找不到自己,看不见别人
  9. 请教Parser Generator 开发工具中关于Lex和Yacc的问题
  10. 七种滤波方法测试matlab
  11. mt950报文解析_MT700报文升级内容逐项解析
  12. 计算机毕业设计JAVA‘大学生心理健康咨询管理系统mybatis+源码+调试部署+系统+数据库+lw
  13. navicat 10.1.7 注册码
  14. Linux使用libmodbus源码开发,LibModbus源码分析
  15. win10声音输出设备选择声卡步骤
  16. java guardedby_Java多线程基础(五)——Guarded Suspension模式
  17. 上课作业(5)——#576. 饥饿的牛(hunger)
  18. 安装软件时遇到 1152:Error extracting to the temporary location
  19. 《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用。附:3.2发布与版本更新说明。...
  20. C/C++编程:实现hash函数

热门文章

  1. java课设电子门禁_Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
  2. gts 什么是google_Google Analytics分析(GA)是什么?为什么全世界都在用
  3. C++之explicit探究
  4. mac系统pycharm配置python环境_Python--在Mac下安装PyQt5环境并配合pycharm(全部使用当前最新版)...
  5. mysql 唯一索引_面试官:谈谈你对mysql索引的认识?
  6. copy 收到_离散内存与zero_copy的一些思考
  7. java 内存溢出分析_用一段时间后java内存溢出问题分析(转)
  8. atom python教程_对于新手来说 如何用atom搭建python的ide?
  9. gdb 查看是否 栈溢出_ASLR、DEP与栈保护(HFUT-ZRB#x27;s Task)
  10. 计算机教师的幸福,如何成为一名幸福信息技术教师