Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】

简介: 【4月更文挑战第7天】Hive【基础知识 02-2】【Hive CLI 命令行工具使用】【详细举例-包含测试脚本文件】

准备

准备阶段要创建数据库、创建表、导入数据,内容较多所有单独写了一篇《CLI和Beeline命令行使用举例(准备阶段)》

【首先要启动hdfs,由于已将 Hive 的 bin 目录配置到环境变量,直接使用 hive 命令即可】

1. Help

【进入Hive CLI之前】使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下:

[root@tcloud ~]# hive -H
Hive Session ID = c4d07f3d-816f-4c1b-85e9-6c8ce2ed4c2a
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)

备注翻译版:

Hive Session ID = c4d07f3d-816f-4c1b-85e9-6c8ce2ed4c2a
usage: hive
-d,--define <key=value>         # 定义用户自定义变量
    --database <databasename>     # 指定使用的数据库
-e <quoted-query-string>         # 执行command line 里的 SQL
-f <filename>                     # 执行 SQL 脚本文件
-H,--help                         # 打印帮助信息
    --hiveconf <property=value> # 使用自定义的配置
    --hivevar <key=value>         # 定义用户自定义变量
-i <filename>                     # 在进入交互模式之前运行初始化脚本
-S,--silent                     # 静默模式
-v,--verbose                     # 详细模式【会显示执行的SQL】

2. 交互式命令行

【直接输入 hive 不加任何参数即可进入 Hive CLI 交互式命令行】

[root@tcloud ~]# hive
Hive Session ID = 6a9fba3d-c9cc-4439-8125-a6bc6b349bb3
# 这里省略部分信息
Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
Hive Session ID = 90d75c12-b292-467f-b860-7bd67ab454b6
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive>

3. 执行SQL命令

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

# 【这里不再贴出hive的日志】
[root@tcloud ~]# hive -e 'select * from hive_test.word_count';
Hive Session ID = f2b850c9-47d4-4076-b92a-7cb1632291e0
spark   3
hive    3
hadoop  2
kafka   1
hbase   1
Time taken: 12.023 seconds, Fetched: 5 row(s)

4. 执行SQL脚本文件

在【不进入交互式命令行】的情况下执行脚本文件,用于执行的脚本可以在本地文件系统,也可以在 HDFS 上,这里都进行测试:

-- 其中  hive_test.sql 内容如下
select * from hive_test.word_count;

本地文件系统:

# 【这里不再贴出hive的日志和查询结果】
[root@tcloud ~]# hive -f /home/hive/testFile/hive_test.sql;

HDFS文件系统:

# 准备阶段已将文件上传到hdfs 【这里不再贴出hive的日志和查询结果】
[root@tcloud ~]# hive -f hdfs://tcloud:8020/tmp/hive/test/hive_test.sql;

5. 命令行配置Hive变量

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

# 【这里不再贴出hive的日志和查询结果】
[root@tcloud ~]# hive -e 'select * from hive_test.word_count' \
--hiveconf hive.exec.scratchdir=/tmp/hive/test/hive_scratch \
--hiveconf mapred.reduce.tasks=4;

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

6. 文件配置启动变量

hive-init.conf 的内容如下:

# hive.exec.mode.local.auto 默认值为 false 这里设置为 true 代表开启本地模式
set hive.exec.mode.local.auto = true;
# 使用 -i 可以在进入交互模式之前运行初始化脚本 相当于指定配置文件启动
[root@tcloud ~]# hive -i /home/hive/testFile/hive_init.conf;

验证:

# 可以在交互模式下使用 set; 查询 hive 全部的配置信息

# 未使用 /home/hive/testFile/hive_init.conf 启动的CLI
hive> set hive.exec.mode.local.auto;
hive.exec.mode.local.auto=false

# 使用 /home/hive/testFile/hive_init.conf 启动的CLI
hive> set hive.exec.mode.local.auto;
hive.exec.mode.local.auto=true

7. 用户自定义变量

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

# 定义变量:
[root@tcloud ~]# hive --define tableName=word_count --hivevar selectField=word;

# 在查询中引用自定义变量 以下三条语句等价 
# 其实就是 ${variableName} 与 ${hivevar:variableName} 等价
hive > select ${selectField} from ${tableName};
hive > select ${selectField} from ${hivevar:tableName};
hive > select ${hivevar:selectField} from ${hivevar:tableName};
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
17小时前
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
40 7
|
17小时前
|
JSON 监控 测试技术
Groovy脚本编写员工上网行为监控自动化测试
本文介绍了如何使用Groovy脚本创建一个自动化工具来监控员工的网络活动。通过编写简单脚本记录员工访问的网站并打印信息,可进一步扩展为将数据保存至数据库。此外,通过设定定时任务,实现了每30分钟自动监控一次的功能。最后,展示了如何将监控数据转换为JSON格式并使用HTTP POST请求提交到网站,以实现数据的自动化上报,有助于企业保障网络安全、保护数据并提升工作效率。
54 5
|
17小时前
|
算法 计算机视觉 异构计算
基于肤色模型的人脸识别FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于肤色检测算法的摘要:使用MATLAB 2022a和Vivado 2019.2进行测试和仿真,涉及图像预处理、RGB到YCbCr转换、肤色模型(基于阈值或概率)以及人脸检测。核心程序展示了如何读取图像数据并输入到FPGA处理,通过`tops`模块进行中值滤波、颜色空间转换及人脸检测,最终结果输出到&quot;face.txt&quot;。
|
17小时前
|
测试技术 API 开发者
使用 Playwright 脚本录制简化自动化测试:完全指南
Playwright提供了一种脚本录制功能,帮助开发者通过交互式操作自动生成测试脚本,提升测试效率。使用Playwright的命令行工具`codegen`,如`playwright codegen python &lt;url&gt;`,可以记录浏览器操作并生成Python测试脚本。生成的脚本使用Playwright API模拟用户交互,如`page.click()`和`page.fill()`。这种方法简化了自动化测试脚本的编写,促进了测试流程的加速。
6 1
|
17小时前
|
IDE 测试技术 开发工具
从零开始:使用 Playwright 脚本录制实现自动化测试
Playwright提供了一种便捷的脚本录制功能,类似于Selenium IDE。通过运行`playwright codegen`命令,你可以启动一个浏览器并记录你的操作,生成Python或异步代码。在示例中,展示了如何录制登录百度的过程,生成的代码可以直接用于自动化测试。Playwright Inspector允许你编辑和转换测试代码,支持生成Pytest格式的测试用例,方便Python开发者使用。这个功能使Playwright成为强大的Web自动化测试工具。
9 3
|
17小时前
|
SQL 存储 分布式计算
Hive详解、配置、数据结构、Hive CLI
Hive详解、配置、数据结构、Hive CLI
28 0
Hive详解、配置、数据结构、Hive CLI
|
17小时前
|
算法 异构计算
基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证
该内容包括了算法的运行效果展示、软件版本信息、理论概述和核心程序代码。在正常图像中,`checkb`位于`f192b`和`f250b`之间,而多度曝光图像中`checkb`超出此范围,判断为曝光过度。使用的软件为Vivado 2019.2和MATLAB 2022a。理论依据未详细给出,但提及主要方法。提供的Verilog代码段用于处理图像数据,包括读取文件、时钟控制及图像histogram计算等,其中模块`im_hist`似乎是关键部分。
|
17小时前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到&quot;result.txt&quot;以供MATLAB显示图像分割效果。
|
17小时前
|
弹性计算 运维 Shell
测试文件是否存在
【4月更文挑战第29天】
10 1
|
17小时前
|
算法 计算机视觉 异构计算
基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证
该内容展示了FPGA实现图像累积直方图的算法。使用Vivado2019.2和matlab2022a,通过FPGA的并行处理能力优化图像处理。算法基于像素值累加分布,计算图像中像素值小于等于特定值的像素个数。核心代码为`test_image`模块,读取二进制图像文件并传递给`im_hist`单元,生成直方图和累积直方图。

热门文章

最新文章