05 | Hive使用技巧

[Hadoop高可用集群]数仓工具之Hive的安装部署(超级详细,适用于初学者) Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。最初,Hive是由Facebook开发,后来由Apache软件基金会开发,并作为进一步将它作为名义下Apache Hive为一个开源项目。Hive 建立在Hadoop 基础之上,Hive 与 Hadoop 紧密集成,其设计可快速对 PB 级数据进行操作。 阅读详情

2.6 Hive使用技巧

2.6.1 Hive常用交互命令

[atguigu@hadoop102 hive]$ bin/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

 -f <filename>                      SQL from files

 -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)在Hive命令行里创建一个表student,并插入1条数据

hive (default)> create table student(id int,name string);

OK

Time taken: 1.291 seconds

hive (default)> insert into table student values(1,"zhangsan");

hive (default)> select * from student;

OK

student.id   student.name

1  zhangsan

Time taken: 0.144 seconds, Fetched: 1 row(s)

2)“-e”不进入hive的交互窗口执行hql语句

[atguigu@hadoop102 hive]$ bin/hive -e "select id from student;"

3)“-f”执行脚本中的hql语句

(1)在/opt/module/hive/下创建datas目录并在datas目录下创建hivef.sql文件

[atguigu@hadoop102 hive]$ mkdir datas

[atguigu@hadoop102 datas]$ vim hivef.sql

(2)文件中写入正确的hql语句

select * from student;

(3)执行文件中的hql语句

[atguigu@hadoop102 hive]$ bin/hive -f /opt/module/hive/datas/hivef.sql

(4)执行文件中的hql语句并将结果写入文件中

[atguigu@hadoop102 hive]$ bin/hive -f /opt/module/hive/datas/hivef.sql  > /opt/module/hive/datas/hive_result.txt

2.6.2 Hive参数配置方式

1)查看当前所有的配置信息

hive>set;

2)参数的配置三种方式

(1)配置文件方式

  • 默认配置文件:hive-default.xml
  • 用户自定义配置文件:hive-site.xml

注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效。

(2)命令行参数方式

①启动Hive时,可以在命令行添加-hiveconf param=value来设定参数。例如:

[atguigu@hadoop103 hive]$ bin/hive -hiveconf mapreduce.job.reduces=10;

注意:仅对本次Hive启动有效。

②查看参数设置

hive (default)> set mapreduce.job.reduces;

(3)参数声明方式

可以在HQL中使用SET关键字设定参数,例如:

hive(default)> set mapreduce.job.reduces=10;

注意:仅对本次Hive启动有效。

查看参数设置:

hive(default)> set mapreduce.job.reduces;

上述三种设定方式的优先级依次递增。即配置文件 < 命令行参数 < 参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。

2.6.3 Hive常见属性配置

1)Hive客户端显示当前库和表头

(1)在hive-site.xml中加入如下两个配置:

[atguigu@hadoop102 conf]$ vim hive-site.xml

<property>

    <name>hive.cli.print.header</name>

    <value>true</value>

    <description>Whether to print the names of the columns in query output.</description>

</property>

<property>

    <name>hive.cli.print.current.db</name>

    <value>true</value>

    <description>Whether to include the current database in the Hive prompt.</description>

</property>

(2)hive客户端在运行时可以显示当前使用的库和表头信息

[atguigu@hadoop102 conf]$ hive

hive (default)> select * from stu;

OK

stu.id stu.name

1  ss

Time taken: 1.874 seconds, Fetched: 1 row(s)

hive (default)>

2)Hive运行日志路径配置

(1)Hive的log默认存放在/tmp/atguigu/hive.log目录下(当前用户名下)

[atguigu@hadoop102 atguigu]$ pwd

/tmp/atguigu

[atguigu@hadoop102 atguigu]$ ls

hive.log

hive.log.2022-06-27

(2)修改Hive的log存放日志到/opt/module/hive/logs

1修改$HIVE_HOME/conf/hive-log4j2.properties.template文件名称为

hive-log4j2.properties

[atguigu@hadoop102 conf]$ pwd

/opt/module/hive/conf

[atguigu@hadoop102 conf]$ mv hive-log4j2.properties.template hive-log4j2.properties

2在hive-log4j2.properties文件中修改log存放位置

[atguigu@hadoop102 conf]$ vim hive-log4j2.properties

修改配置如下

property.hive.log.dir=/opt/module/hive/logs

3)Hive的JVM堆内存设置

新版本的Hive启动的时候,默认申请的JVM堆内存大小为256M,JVM堆内存申请的太小,导致后期开启本地模式,执行复杂的SQL时经常会报错:java.lang.OutOfMemoryError: Java heap space,因此最好提前调整一下HADOOP_HEAPSIZE这个参数。

(1)修改$HIVE_HOME/conf下的hive-env.sh.template为hive-env.sh

[atguigu@hadoop102 conf]$ pwd

/opt/module/hive/conf

[atguigu@hadoop102 conf]$ mv hive-env.sh.template hive-env.sh

(2)将hive-env.sh其中的参数 export HADOOP_HEAPSIZE修改为2048,重启Hive。

修改前

# The heap size of the jvm stared by hive shell script can be controlled via:

# export HADOOP_HEAPSIZE=1024

         修改后

# The heap size of the jvm stared by hive shell script can be controlled via:

export HADOOP_HEAPSIZE=2048

4)关闭Hadoop虚拟内存检查

在yarn-site.xml中关闭虚拟内存检查(虚拟内存校验,如果已经关闭了,就不需要配了)。

(1)修改前记得先停Hadoop

[atguigu@hadoop102 hadoop]$ pwd

/opt/module/hadoop-3.1.3/etc/hadoop

[atguigu@hadoop102 hadoop]$ vim yarn-site.xml

(2)添加如下配置

<property>

    <name>yarn.nodemanager.vmem-check-enabled</name>

    <value>false</value>

</property>

(3)修改完后记得分发yarn-site.xml,并重启yarn。

Hadoop3.2.4+Hive3.1.2+sqoop1.4.7安装部署 Hive:Hadoop3.2.4+Hive3.1.2+sqoop1.4.7安装部署 阅读详情

相关推荐

Hive SQL进阶:掌握间隔连续查询技巧,优化大数据分析

窗口函数 SUM(...) OVER(...) 的工作方式是在指定的窗口内累加值。在这种情况下,窗口是由 PARTITION BY user_id ORDER BY dt 定义的,这意味着:累加是在每个 user_id 分区内独立进行的,所以不同用户的累加是隔离的。在每个分区内,累加是按照日期 dt 的顺序进行的

数据与算法架构提升之路专栏 1621

【Hive总结一入门及安装部署】

Hive入门 Hive搭建 Hive的安装部署

Tonystark_lz的博客 1073

05、hive数据仓库介绍及搭建

Hive起源于Facebook(一个美国的社交服务网络)。Facebook有着大量的数据,而Hadoop是一个开源的MapReduce实现,可以轻松处理大量的数据。 但是MapReduce程序对于Java程序员来说比较容易写,但是对于其他语言使用者来说不太方便。此时Facebook最早地开始研发Hive,它让对Hadoop使用SQL查询(实际上SQL后台转化为了MapReduce)成为可能,那些非Java程序员也可以更方便地使用。hive最早的目的也就是为了分析处理海量的日志。 Hi

小菜菜的博客 2705

(最新版本)hive4.0.0 + hadoop3.3.4 集群安装(无坑版)-大数据学习系列(一)

网上的找的文档大多残缺不靠谱,所以我整理了一份安装最新版本的hive4..0.0+hadoop3.3.4的学习环境,可以提供大家安装一个完整的hive+hadoop的环境供学习。Hive Metastore是Hive的元数据存储服务,需要确保Metastore服务已经启动,并且在Beeline的配置文件中正确配置了Metastore的地址。HiveServer2是Hive的查询服务,需要确保HiveServer2服务已经启动,并且在Beeline的配置文件中正确配置了HiveServer2的地址。

zhenwudi的专栏 1万+

hive使用技巧

hive使用技巧

weixuan_的博客 487

Hive 05_hive变量、动态分区

hive 参数、变量 --hive当中的参数、变量,都是以命名空间开头 --通过${}方式进行引用,其中system、env下的变量必须以前缀开头 hive 参数设置方式 --1、修改配置文件 ${HIVE_HOME}/conf/hive-site.xml --2、启动hive cli时,通过--hiveconf key=value的方式进行设置 --...

乔治大哥的博客 989

Hive教程(05)- Hive命令汇总

文章目录01 引言02 命令汇总2.1 基础命令2.1.1 启动2.1.2 退出2.1.3 数据导入导出2.1.3.1 数据导入2.1.3.2 数据导出2.1.4 HSql文件执行2.1.4.1 控制台执行2.1.4.2 hive shell 执行2.1.4.3 一次使用命令2.1.5 配合nohup使用2.2 DDL命令2.2.1 数据库2.2.1.1 创建数据库2.2.1.2 删除数据库2.2.1.3 修改数据库2.2.1.4 查看数据库2.2.1.5 使用数据库2.2.2 表2.2.2.

阿甘兄 5772

Hive(3):Hive客户端使用

在嵌入式模式下,它运行嵌入式 Hive(类似于Hive Client),而远程模式下beeline通过 Thrift 连接到单独的 HiveServer2 服务上,这也是官方推荐在生产环境中使用的模式。二是用于Hive相关服务的启动,比如metastore服务。第二代客户端(recommended 推荐使用):$HIVE_HOME/bin/beeline,是一个JDBC客户端,是官方强烈推荐使用的Hive命令行工具,和第一代客户端相比,性能加强安全性提高。Hive发展至今,总共历经了两代客户端工具。

u013938578的博客 2990

Day05-hive入门

​ 第二代:beeline 底层是java代码实现 ,我们用这个。​ 2:第二代客户端(hiveserver2、metastore)​ 1:DDL :操作数据库、数据表、字段(列)…​ 2:配置datagrip连接hive客户端。​ 第一代:hive底层使用shell实现。​ 2:DML:操作表数据修改、增加、删除。​ 1:第一代客户端(metastore)​ 1:环境准备与启动。​ 1:Hive部署方式。​ 2:Hive架构图。​ Hive客户端。

AGI爱好者_数仓&可视化&数据分析工程师_Vae’伯乐‘ 639

SQL进阶技巧:如何使用HQL遍历字符串?

0 需求 遍历字符串,并以一个字符一行的形式显示出来 如遍历"a,b,c,d,e,f"字符串,使其每个字符都生成一行记录 1 数据分析 在hive中为我们提供了强大的posexplode()函数,该函数对数组结构的数据进行行转列,并对数组中每一位都生成一个索引值.该函数强大之处就是为数组中每一位生成索引。因此我们可以利用该函数来生成字符串中的每一位的索引,达到遍历的效果。 具体如下所示: select posexplode(split('a,b,c,d,e,f',',')) 结果如下: +

石榴姐yyds 1346

基于Python的MGWR多尺度地理加权回归模型

多尺度地理加权回归(MGWR)变量之间的关系在地理空间上不是均一的,所有特征变量的影响都在不同的空间范围(带宽)内变化,某些变量可能表现出局部性影响(小带宽),某些变量可能表现出全局性影响(大带宽),通过优化每个特征变量的带宽,捕捉到空间关系的多尺度特性,得到更细致的模型解释。

weixin_61965078的博客 3851

hive小技巧

1、显示表头(列明) set hive.cli.print.header=true 2、hive code2 增大资源配置 set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; set hive.exec.max.dynamic.partitions=80000; set hive.exec.max.dynamic.partitions.pernode=10000; set map

Howe的博客 3855

Mann-Kendall检验全解析:从原理到11种变体及Python实现

本文全面解析Mann-Kendall检验,从基础原理到应对自相关、季节性等复杂数据的11种关键变体,如Hamed-Rao修正、季节性MK和趋势自由预白化(TFPW)。详细阐述各方法的适用场景与数学原理,并提供完整的Python实战代码,帮助研究者针对不同数据特性选择最稳健的趋势分析方法。

weixin_29050271的博客 457

05 通过hive访问metastore

前面一节我们了解了通过beeline访问hiveserver服务,进而访问到元数据,这一节我们使用hive访问metastore服务。所谓metastore,就是hive的元数据,通过该元数据,我们就能访问到真正的数据本身。元数据默认使用内置deby数据库存储,我们也可以把元数据放到mysql。 1、前提约束 使用mysql存储hive元数据,假设mysql服务所在的机子ip为192.168.1...

张力的程序园 907

CST电子枪仿真实战:从零搭建粒子追踪模型到磁场聚焦优化

本文提供了一份CST电子枪仿真实战指南,详细讲解了从零开始搭建粒子追踪模型的全过程。内容涵盖项目初始化、Track Solver求解器基础、几何建模、粒子源定义,并重点介绍了如何通过引入和优化静磁场(如聚焦线圈配置)来实现电子束的聚焦,帮助工程师高效预测和优化束流品质。

game4的博客 335

torchsparse安装

torchsparse安装以及安装失败原因分析和解决

AI_BING_的博客 1万+

Hive 高效使用的 7 个实用技巧:从配置优化到跨平台操作

环境可视化:通过配置显示当前数据库和字段名,减少操作失误。性能优化:小数据集使用本地模式,大数据集合理配置内存和资源。跨平台交互:利用 Shell 命令行和 HDFS 原生支持,减少工具切换成本。配置管理:理解不同配置方式的优先级,灵活选择临时或永久生效策略。掌握这些技巧后,可显著提升 Hive 操作的便捷性和数据处理效率,尤其适合日常开发、脚本调试和集群优化场景。

weixin_64603931的博客 1209

三. zemax光学设计流程+案例

文章目录zemax 基本操作:1. 建立光学基本模型2. 像质评价3. 优化(重点)4. 公差分析简单镜头设计 zemax 基本操作: 1. 建立光学基本模型 2. 像质评价 3. 优化(重点) 对系统设定的约束条件或目标值 统称为操作数。 操作数: 光学特性参数(焦距EFFL,近轴放大率PMAG,入瞳位置EMPP) 像差参数(球差SPHA,彗差COMA,像散ASTI) 边界条件(中心厚度值CTVA,边缘厚度值ETAV) 优化的主要步骤: 设置评价函数和优化操作数 一般小像差系统采用波像差 构建

Taiiiii的博客 8050

Hive基础05、Hive引入数据

Hive表中的数据不能通过insert语句插入,而是load data语句进行加载,其中加载的数据来源主要包括: 1、本地文件系统加载数据 使用XFTP在【/opt/temp】下上传【info.txt】信息文件 引入数据成功: 导入完成查询一下看看: 注:清空表数据语法结构 注意改一下table_name的名称即可。......

红目香薰 596

CDR学习笔记——02

这篇写一些高级CDR的架构原理。

... 1014

Nuvoton OpenTitan开源安全芯片技术解析与应用

硬件安全模块(HSM)作为可信计算基的核心组件,其设计透明度和可验证性正成为行业焦点。RISC-V架构凭借开源特性,为构建可审计的安全芯片提供了新范式。OpenTitan项目通过开放Verilog源码和形式化证明,实现了从物理不可克隆函数(PUF)到分层安全启动的全栈透明。该方案在lowRISC Voyager开发板上实测显示,安全启动时间小于200ms,性能损耗仅7%,显著优于传统黑盒方案。目前该技术已应用于Chromebook和数据中心,其40nm工艺版本更将功耗降至5μA待机水平,为物联网和边缘计算提

weixin_36303807的博客 397

hive多级分区表的使用

简介 一个分区字段就是一级目录,如果是两个分区,就是两个分区目录,比如说 area province,那么目录就是 /area/province/xxxxxx ,数据都在xxxxxx这里. 创建表 二级分区使用方式就是在一级分区基础上 PARTITIONED BY后面多写个字段即可 create table order_multi_partition ( order_no string, order_time string ) PARTITIONED BY (event_ti

张俊杰 的博客 5542

无线充电Qi协议正向通信FSK的解调设计

常见的FSK解调方法是使用频率锁相环(PLL)来跟踪输入信号中的频率变化。PLL根据输入信号的频率变化来生成数字信号,从而实现FSK信号的解调。本文将详细介绍无线充电Qi协议正向通信FSK的解调设计,并提供相应的源代码。在上述示例代码中,我们首先定义了FSK解调的参数,包括采样率、载波频率、每个比特的持续时间和比特判定阈值。最后,通过比较滤波后的信号与比特判定阈值,我们将解调后的数字数据转换为0和1的序列。请注意,上述代码仅为示例,实际的解调设计可能需要根据具体的应用场景和系统要求进行调整和优化。

IunScala的博客 2441

Hive使用05_DML操作

1、基本的select 操作 【说明】 a. 使用ALL 和DISTINCT 选项区分对重复记录的处理。默认是ALL ,表示查询所有记 录, DISTINCT 表示去掉重复的记录。 b. WHERE 条件:类似于传统SQL 的where 条件,支持AND 、OR 、BETWEEN 、IN 、 NOT IN 等。 c. ORDER BY 与SORT BY 的不同: ORDER BY 指全局排...

清平乐的技术专栏 255

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Pyspark-驯化】一文搞懂Pyspark写入hive表的使用技巧

在大数据处理中,经常需要将数据从临时存储转换到持久化存储中。PySpark提供了丰富的API,允许用户轻松地创建Hive表,并将数据从DataFrame或临时表写入。本文将介绍如何使用PySpark创建Hive表,添加列注释,并从临时表中导入数据。本文介绍了如何使用PySpark创建Hive表,为列添加注释,并从临时表中导入数据。通过示例代码,我们展示了创建表、定义数据类型和注释、以及数据导入的完整流程。希望这篇博客能够帮助您更好地理解PySpark与Hive的集成,并应用于实际的数据存储和管理任务中。

志在创建优质博客、通俗易懂、助力大家提高学习效率! 1357

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python大数据之Hadoop学习——day05_hive基本操作

优点:可以单独使用外部库(mysql),可以共享元数据,本地可以连接metastore服务也可以连接hiveserver2服务,增加了扩展性(其他依赖hive的软件都可以通过Metastore访问hive)创建数据库:create database [if not exists] 库名 [comment '注释'] [location '路径'] [with dbproperties ('k'='v')];还可以叫非管理或非拖管表。优点:可以单独使用外部的数据库(mysql),元数据共享。

weixin_46010015的博客 1799

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 04 | Hive服务部署
下一篇: 06 | Hive DDL操作
走过冬季
博客等级 码龄9年 1609粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走过冬季

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值