Hive CLI和Beeline命令行的基本使用

article/2025/9/28 14:21:17

一、Hive CLI

1.1 Help

使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下:

usage: hive-d,--define <key=value>          Variable subsitution 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   -- 执行指定的 SQL-f <filename>                    SQL from files   --执行 SQL 脚本-H,--help                        Print help information  -- 打印帮助信息--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  --在进入交互模式之前运行初始化脚本-S,--silent                      Silent mode in interactive shell    --静默模式-v,--verbose                     Verbose mode (echo executed SQL to the  console)  --详细模式

1.2 交互式命令行

直接使用 Hive 命令,不加任何参数,即可进入交互式命令行。

1.3 执行SQL命令

在不进入交互式命令行的情况下,可以使用 hive -e 执行 SQL 命令。

hive -e 'select * from emp';

在这里插入图片描述

1.4 执行SQL脚本

用于执行的 sql 脚本可以在本地文件系统,也可以在 HDFS 上。

# 本地文件系统
hive -f /usr/file/simple.sql;# HDFS文件系统
hive -f hdfs://hadoop001:8020/tmp/simple.sql;

其中 simple.sql 内容如下:

select * from emp;

1.5 配置Hive变量

可以使用 --hiveconf 设置 Hive 运行时的变量。

hive -e 'select * from emp' \
--hiveconf hive.exec.scratchdir=/tmp/hive_scratch  \
--hiveconf mapred.reduce.tasks=4;

hive.exec.scratchdir:指定 HDFS 上目录位置,用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果。

1.6 配置文件启动

使用 -i 可以在进入交互模式之前运行初始化脚本,相当于指定配置文件启动。

hive -i /usr/file/hive-init.conf;

其中 hive-init.conf 的内容如下:

set hive.exec.mode.local.auto = true;

hive.exec.mode.local.auto 默认值为 false,这里设置为 true ,代表开启本地模式。

1.7 用户自定义变量

--define <key=value> --hivevar <key=value> 在功能上是等价的,都是用来实现自定义变量,这里给出一个示例:

定义变量:

hive  --define  n=ename --hiveconf  --hivevar j=job;

在查询中引用自定义变量:

# 以下两条语句等价
hive > select ${n} from emp;
hive >  select ${hivevar:n} from emp;# 以下两条语句等价
hive > select ${j} from emp;
hive >  select ${hivevar:j} from emp;

结果如下:

在这里插入图片描述

二、Beeline

2.1 HiveServer2

Hive 内置了 HiveServer 和 HiveServer2 服务,两者都允许客户端使用多种编程语言进行连接,但是 HiveServer 不能处理多个客户端的并发请求,所以产生了 HiveServer2。

HiveServer2(HS2)允许远程客户端可以使用各种编程语言向 Hive 提交请求并检索结果,支持多客户端并发访问和身份验证。HS2 是由多个服务组成的单个进程,其包括基于 Thrift 的 Hive 服务(TCP 或 HTTP)和用于 Web UI 的 Jetty Web 服务器。

HiveServer2 拥有自己的 CLI(Beeline),Beeline 是一个基于 SQLLine 的 JDBC 客户端。由于 HiveServer2 是 Hive 开发维护的重点 (Hive0.15 后就不再支持 hiveserver),所以 Hive CLI 已经不推荐使用了,官方更加推荐使用 Beeline。

2.1 Beeline

Beeline 拥有更多可使用参数,可以使用 beeline --help 查看,完整参数如下:

Usage: java org.apache.hive.cli.beeline.BeeLine-u <database url>               the JDBC URL to connect to-r                              reconnect to last saved connect url (in conjunction with !save)-n <username>                   the username to connect as-p <password>                   the password to connect as-d <driver class>               the driver class to use-i <init file>                  script file for initialization-e <query>                      query that should be executed-f <exec file>                  script file that should be executed-w (or) --password-file <password file>  the password file to read password from--hiveconf property=value       Use value for given property--hivevar name=value            hive variable name and valueThis is Hive specific settings in which variablescan be set at session level and referenced in Hivecommands or queries.--property-file=<property-file> the file to read connection properties (url, driver, user, password) from--color=[true/false]            control whether color is used for display--showHeader=[true/false]       show column names in query results--headerInterval=ROWS;          the interval between which heades are displayed--fastConnect=[true/false]      skip building table/column list for tab-completion--autoCommit=[true/false]       enable/disable automatic transaction commit--verbose=[true/false]          show verbose error messages and debug info--showWarnings=[true/false]     display connection warnings--showNestedErrs=[true/false]   display nested errors--numberFormat=[pattern]        format numbers using DecimalFormat pattern--force=[true/false]            continue running script even after errors--maxWidth=MAXWIDTH             the maximum width of the terminal--maxColumnWidth=MAXCOLWIDTH    the maximum width to use when displaying columns--silent=[true/false]           be more silent--autosave=[true/false]         automatically save preferences--outputformat=[table/vertical/csv2/tsv2/dsv/csv/tsv]  format mode for result display--incrementalBufferRows=NUMROWS the number of rows to buffer when printing rows on stdout,defaults to 1000; only applicable if --incremental=trueand --outputformat=table--truncateTable=[true/false]    truncate table column when it exceeds length--delimiterForDSV=DELIMITER     specify the delimiter for delimiter-separated values output format (default: |)--isolation=LEVEL               set the transaction isolation level--nullemptystring=[true/false]  set to true to get historic behavior of printing null as empty string--maxHistoryRows=MAXHISTORYROWS The maximum number of rows to store beeline history.--convertBinaryArrayToString=[true/false]    display binary column data as string or as byte array--help                          display this message

2.3 常用参数

在 Hive CLI 中支持的参数,Beeline 都支持,常用的参数如下。更多参数说明可以参见官方文档 Beeline Command Options

参数说明
-u <database URL>数据库地址
-n <username>用户名
-p <password>密码
-d <driver class>驱动 (可选)
-e <query>执行 SQL 命令
-f <file>执行 SQL 脚本
-i (or)–init <file or files>在进入交互模式之前运行初始化脚本
–property-file <file>指定配置文件
–hiveconf property*=*value指定配置属性
–hivevar name*=*value用户自定义属性,在会话级别有效

示例: 使用用户名和密码连接 Hive

$ beeline -u jdbc:hive2://localhost:10000  -n username -p password 

三、Hive配置

可以通过三种方式对 Hive 的相关属性进行配置,分别介绍如下:

3.1 配置文件

方式一为使用配置文件,使用配置文件指定的配置是永久有效的。Hive 有以下三个可选的配置文件:

  • hive-site.xml :Hive 的主要配置文件;

  • hivemetastore-site.xml: 关于元数据的配置;

  • hiveserver2-site.xml:关于 HiveServer2 的配置。

示例如下,在 hive-site.xml 配置 hive.exec.scratchdir

 <property><name>hive.exec.scratchdir</name><value>/tmp/mydir</value><description>Scratch space for Hive jobs</description></property>

3.2 hiveconf

方式二为在启动命令行 (Hive CLI / Beeline) 的时候使用 --hiveconf 指定配置,这种方式指定的配置作用于整个 Session。

hive --hiveconf hive.exec.scratchdir=/tmp/mydir

3.3 set

方式三为在交互式环境下 (Hive CLI / Beeline),使用 set 命令指定。这种设置的作用范围也是 Session 级别的,配置对于执行该命令后的所有命令生效。set 兼具设置参数和查看参数的功能。如下:

0: jdbc:hive2://hadoop001:10000> set hive.exec.scratchdir=/tmp/mydir;
No rows affected (0.025 seconds)
0: jdbc:hive2://hadoop001:10000> set hive.exec.scratchdir;
+----------------------------------+--+
|               set                |
+----------------------------------+--+
| hive.exec.scratchdir=/tmp/mydir  |
+----------------------------------+--+

3.4 配置优先级

配置的优先顺序如下 (由低到高):
hive-site.xml - >hivemetastore-site.xml- > hiveserver2-site.xml - > -- hiveconf- > set

3.5 配置参数

Hive 可选的配置参数非常多,在用到时查阅官方文档即可AdminManual Configuration


http://chatgpt.dhexx.cn/article/Sm5TkMYQ.shtml

相关文章

【Qt学习】OpenCV帧差法 车辆识别

目录 一&#xff1a;效果展示 二&#xff1a;Qt UI界面设计 三&#xff1a;源码分享 一&#xff1a;效果展示 使用Qt界面实现 点击 线程启动按钮播放视频 同时 左边界面显示原视频 右边界面显示车辆识别视频 初始界面 点击线程启动后&#xff0c;即可车辆识别 框选车辆 二&a…

【车辆识别】基于卷积神经网络yolov3识别车辆和车辆速度附matlab代码

1 简介 近年来,自动驾驶研究,智慧交通建设突飞猛进,车辆检测技术成为业界的研究热点.由于深度卷积神经网络具有一定的旋转与平移不变性等特点,在车辆检测任务中得到广泛应用,其中,YOLOv3(You Only Look Once version 3)算法是目前主要的检测算法之一. 2 部分代码 clearclc​%…

基于深度学习的车牌+车辆识别(YOLOv5和CNN)

yolov5车牌识别+车辆识别 行人识别yolov5和v7对比 订阅专栏获得源码(提供完整代码,无需看下文) 基于深度学习的车牌识别(YOLOv5和CNN) 目录 一、综述 二、车牌检测 一、综述 本篇文章是面向的是小白,想要学习深度学习上的应用,本文中目前应用了YOLO v5和CNN来对车牌进行…

Qt +opencv 通过级联分类器训练的模型进行识别(车辆识别+人脸识别)

有不对的或更好的方法欢迎交流 一些内容可参照这篇文章&#xff1a;https://blog.csdn.net/m0_64596200/article/details/126748697?spm1001.2014.3001.5502 训练好的的模型&#xff1a; 车辆识别模型&#xff1a;https://download.csdn.net/download/m0_64596200/86507302?…

机器学习1:OpenCV4.5.5加载xml进行车辆识别

深度学习准确率高识别效果好&#xff0c;但是对软硬件环境要求高&#xff0c;使用及部署有一定难度&#xff0c;应用受限。相比之下&#xff0c;机器学习效果差一个量级&#xff0c;但是计算量小&#xff0c;计算迅速&#xff0c;部署相对容易&#xff0c;尤其是在一些计算能力…

基于YOLOv5的车辆识别系统

基于YOLOv5的车辆识别系统&#xff08;展示&#xff09; 文章目录 基于YOLOv5的车辆识别系统&#xff08;展示&#xff09;前言车牌识别车型识别 前言 YOLO能实现图像或视频中物体的快速识别&#xff0c;在相同的识别类别范围和识别准确率条件下&#xff0c;YOLO识别速度最快。…

Review of Vehicle Recognition Technology - 车辆识别技术综述

Review of Vehicle Recognition Technology - 车辆识别技术综述 ZHANG Qiang, LI Jiafeng, ZHUO Li Faculty of Information Technology, Beijing University of Technology, Beijing 100124, China 北京工业大学信息学部&#xff0c;北京 100124 Beijing University of Tech…

deeplearning.36车辆识别YOLO算法实践

车辆识别 下载相关资料导入相关包数据集定义YOLO模型细节分类阈值过滤非最大值抑制非最大值抑制函数对所有框进行过滤 测试训练好的yolo模型定义分类、锚框、图像维度加载已经训练好的模型模型的输出转换为边界框过滤锚框实际图像中运行计算图实际预测一下 下载相关资料 下载本…

基于python的transform行人车辆识别

Transformer是一种神经网络体系结构&#xff0c;由于它能够有效地处理顺序数据中的长期依赖性&#xff0c;因此在自然语言处理(NLP)任务中受到欢迎。它还被应用于各种其他任务&#xff0c;包括图像分类、对象检测和语音识别。 在车辆和行人识别方面&#xff0c;transformer可用…

使用Python和docTR提取车辆识别号

VIN&#xff08;车辆识别号&#xff09;是一个17个字符的字符串&#xff0c;由数字和大写字母组成&#xff0c;用作汽车的指纹。 它可以帮助识别任何一辆汽车的寿命&#xff0c;并获得有关它的具体信息。该唯一标识符在制造过程中打印在车辆的某个位置&#xff0c;以便人们在租…

Opencv python之车辆识别项目(附代码)

文章目录 图片车辆识别视频车辆识别 图片车辆识别 根据文章搭建好环境后开始进行做项目link import sys import cv2 from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtGui import QIcon, QPalette, QPixmap, QBrush, QRegExpValidatorclass mainWin(QW…

java opencv 之车辆识别

上篇写了人脸识别&#xff0c;因为人脸识别的训练模型 haarcascade_frontalface_alt.xml 之类的官方已经训练好了可以直接用&#xff0c;但是我们要识别车辆或者其它物体就得训练模型&#xff0c;好在废了一点力 找到了一位大神训练好的模型 核心代码 几乎和人脸识别的差不多 s…

如何开发一个车牌识别,车牌识别系统,车辆识别系统毕业设计毕设作品

开发准备 第1步&#xff1a;准备好百度智能云的账号 第2步&#xff1a;在百度智能云领取对应AI开发的免费资源包 第3步&#xff1a;创建对应的应用&#xff0c;然后获取对应的开发信息&#xff0c;主要是下面几个 AppID&#xff1a;应用列表中 API Key&#xff1a;应用列表…

车辆识别

一&#xff1a;简介 车牌识别系统(Vehicle License Plate Recognition&#xff0c;VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息&#xff08;含汉字字符、英文字母、阿拉伯数字及号牌颜色&#xff09;进行处理的技术。车牌识别是现代智能交通系统中的重要组成…

【OpenCV】 车辆识别 运动目标检测

目录 一&#xff1a;车辆识别 运动目标检测 二&#xff1a;车辆识别实现 超详细步骤解析 步骤一&#xff1a;灰度化处理 步骤二&#xff1a;帧差处理 步骤三&#xff1a;二值化处理 步骤四&#xff1a;图像降噪 4-1 腐蚀处理 目的 去除白色噪点 4-2 膨胀处理 目的 把白…

【OpenCV】车辆识别 C++ OpenCV 原理介绍 + 案例实现

目录 前言 一、图像处理 &#x1f4bb;二值化处理 &#x1f4bb;膨胀、腐蚀 &#x1f4bb;开运算、闭运算 二、案例实现 Step1&#xff1a;灰度处理 Step2&#xff1a;对视频进行帧差处理 Step3&#xff1a;二值化处理 Step4&#xff1a;腐蚀处理 Step5&#xff1a…

【OpenCV】车辆识别 目标检测 级联分类器 C++ 案例实现

目录 前言 一、目标检测技术 二、样本采集工作原理 三、创建自己的级联分类器 Step1&#xff1a;准备好样本图像 Step2&#xff1a;环境配置&#xff08;OpenCV win10&#xff09; Step3&#xff1a;设置路径 Step4&#xff1a;实现样本数据采集 Step5&#xff1a;实…

使用华为modelarts进行车辆识别

要求&#xff1a;从图像&#xff08;图3&#xff09;中检测并识别出车辆。车辆检测和识别算法可采用深度学习、BP网络或特征匹配等方法&#xff0c;方法不限。 图5-1待识别图像 原理&#xff1a;ModelArts是面向AI开发者的一站式开发平台&#xff0c;支持自动学习的功能&#…

车辆识别(特征提取+svm分类器)

以下为udacity的SDCND的一个项目 ps:这里使用的是用opencv进行特征提取+svm分类器的方法实现物体检测,是在深度学习流行前比较经典的实现方法 项目描述: 使用openCV提取图片特征,训练svm分类器,分类车辆与非车辆。用训练好的模型识别汽车前置摄像头记录视频中的车辆。 …

深度学习目标检测:YOLOv5实现车辆检测(含车辆检测数据集+训练代码)

深度学习目标检测&#xff1a;YOLOv5实现车辆检测(含车辆检测数据集训练代码) 目录 深度学习目标检测&#xff1a;YOLOv5实现车辆检测(含车辆检测数据集训练代码) 1. 前言 2. 车辆检测数据集说明 &#xff08;1&#xff09;车辆检测数据集 &#xff08;2&#xff09;自定…