200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > hive退出命令_从零开始学习大数据系列(五十五)使用Hive命令行及内置服务

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

时间:2023-12-22 04:30:58

相关推荐

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

[本文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_HOME/bin/hive -dk1=v1–databasedataaccess

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

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

Hive>select‘${k1}’fromdatalimit1

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

-e

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

例如,执行以下命令:

$HIVE_HOME/bin/hive –e‘select*fromdataaccess.datalinit10’

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

-f

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

在sql.txt中输入

select * from dataaccess.data;

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

$HIVE_HOME/bin/hive –fsql.txt

-hiveconfig

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

$HIVE_HOME/bin/hive –hiveconfmapred.reduce.tasks=20

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

-hivevar 。

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

执行

$HIVE_HOME/bin/hive -hivevark2=v2–databasedataaccess

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

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

Hive>select‘${k2}’fromdatalimit 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 *fromdataaccess.data;

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

2

内置服务

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

$hive--servicehelpUsage./hive--serviceserviceNameServiceList:beelineclihelphiveserver2hiveserverhwijarlineagemetastoremetatoolorcfiledumprcfilecatParametersparsed:--auxpath:Auxillaryjars--config:Hiveconfigurationdirectory--service:Startsspecificservice/component.cliisdefaultParametersused:HADOOP_HOMEorHADOOP_PREFIX:HadoopinstalldirectoryHIVE_OPT:HiveoptionsForhelponaparticularservice:./hive--serviceserviceName--helpDebug help: ./hive --debug --help

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

beeline

cli

help

hiveserver2

hiveserver

hwi

jar

lineage

metastore

metatool

orcfiledump

rcfilecat

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

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

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

$ bin/hive--servicehiveserver-p10002

Starting Hive Thrift Server

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

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。