hive详解(二)

news2025/1/7 20:09:51

2 hive的两种访问方式

2.4.1 命令行的方式

在这里插入图片描述
在这里插入图片描述

  1. 在前面的操作中,我们都是通过cli的方式访问hive的。
  2. 我们可以切身的体会到,通过cli的方式访问hive的不足,如:cli太过笨重,需要hive的jar支持。

2.4.2 HiveServer2模式

1.JDBC访问Hive示意图:
在这里插入图片描述
2. JDBC方式访问Hive
JDBC方式,本质上是将hive包装为服务发布出去,开发者使用JDBC的方式连接到服务,从而操作hive。
3. 开启Hiveserver2
1)在hive-site.xml文件中添加如下配置信息

    <!-- 指定hiveserver2连接的host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>
    <!-- 指定hiveserver2连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>

2)启动hive服务(这里需要考虑元数据的访问方式,如何使用元数据服务的模式,需要提前开启元数据服务)单独开一个窗口

[aa@hadoop102 hive]$ bin/hive --service hiveserver2

或者使用hive提供的hiveserver2脚本也可

这里启动服务的窗口不能CTRL+C也不能关闭,否则服务中断。这里必须回复到HA之前的集群,不用HA集群。
一个hadoop02窗口A
在这里插入图片描述
另一个hadoop102窗口B
3)启动beeline客户端(需要多等待hadoop02窗口A一会,否则会报错连不上)再开另一个hadoop102窗口B

[aa@hadoop102 hive]$ bin/beeline -u jdbc:hive2://hadoop102:10000 -n aa

在这里插入图片描述

4)注意:如果出现异常报错,如aa is not allowed to impersonate aa
异常:aais not allowed to impersonate aa
解决方案:在hadoop中的core-site.xml中添加如下:

<property>
    <name>hadoop.proxyuser.aa.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.aa.groups</name>
    <value>*</value>
</property>*”表示可通过超级代理“xxx”操作hadoop的用户、用户组和主机

2.6 Hive常用交互命令

2.6.1 查看bin/hive 命令帮助

[aa@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
                                       应用于hive命令的变量替换。如:-d A=B 或者 –-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
                                   应用于hive命令的变量替换,如:--hivevar A=B
 -i <filename>                      Initialization SQL file
                                       初始化SQL文件
 -S,--silent                        Silent mode in interactive shell
                                      交互式Shell中的静默模式
 -v,--verbose                      Verbose mode (echo executed SQL to the console)
                                      详细模式(将执行的SQl回显到控制台)

2.6.2 命令中参数-e的使用

使用-e参数,可以不进入hive的交互窗口执行sql语句 临时

[atguigu@hadoop102 hive]$ bin/hive -e "select * from test2;"
……
Logging initialized using configuration in jar:file:/opt/module/hive/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
Hive Session ID = 8f19d950-9936-4543-8b32-501dd61fa395
OK
1002
Time taken: 1.918 seconds, Fetched: 1 row(s)

2.6.3 命令中参数-f的使用

使用-f参数,可以不进入hive交互窗口,执行脚本中sql语句
1)在/opt/module/hive/下创建datas目录并在datas目录下创建hivef.sql文件

[aa@hadoop102 hive]$ mkdir /opt/module/hive/datas
[aa@hadoop102 hive]$ touch /opt/module/hive/datas/hive-f.sql

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

[aa@hadoop102 datas]$ vim /opt/module/hive/datas/hive-f.sql

select * from test2;
3)执行文件中的sql语句

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

4)我们还可以通过执行文件中的sql语句,将结果写入指定文件中

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

2.7 Hive常见属性配置

2.7.1 Hive运行日志信息配置

1.Hive的log默认存放路径:/tmp/aa/hive.log(当前用户名下)
2.修改hive的log存放路径:到/opt/module/hive/logs
① 修改conf目录下hive-log4j2.properties.template文件名称为hive-log4j2.properties

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

② 在hive-log4j.properties文件中修改log存放位置

[aa@hadoop102 hive]$ vim conf/hive-log4j2.properties
property.hive.log.dir=/opt/module/hive/logs

3)再次启动hive,观察目录/opt/module/hive/logs下是否产生日志

2.7.2 Hive启动JVM堆内存配置

1.问题:
新版Hive启动时,默认申请的JVM堆内存大小为256M,内存太小,导致若后期开启本地模式,执行相对复杂的SQL经常会报错:java.lang.OutOfMemoryError: Java heap space
2.解决:修改HADOOP_HEAPSIZE参数的值
1)修改/opt/module/hive/conf/下的hive-env.sh.template

[aa@hadoop102 hive]$ mv conf/hive-env.sh.template conf/hive-env.sh
[aa@hadoop102 hive]$ vim conf/hive-env.sh

……

export HADOOP_HEAPSIZE=1024

2.7.3 hive窗口打印默认库和表头

1.问题:在hive命令行交互窗口中,切换数据库后,不会提示当前所在数据库是哪个,并且在列出的查询结果中也不会带有列名的信息,使用中多有不便。
2.配置:可以修改hive.cli.print.header和hive.cli.print.current.db两个参数的值,打印出当前库头。
编辑hive-site.xml添加如下两个配置:

<property>
    <name>hive.cli.print.header</name>
    <value>true</value>
  </property>
   <property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
</property>

修改之后重新启动hive

2.7.4 参数配置方式

1.set 命令使用:查看当前所有的配置信息
hive>set;
2.配置参数的三种方式:
在这里插入图片描述

3.三种配置方式的优先级
上述三种设定方式的优先级依次递增。即 配置文件 < 命令行参数 < 参数声明。
注意:某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。
4.测试三种配置方式优先级
1)在2.7.3中配置文件中设置了hive.cli.print.header和 hive.cli.print.current.db这两个参数。

[aa@hadoop102 hive]$ bin/hive
hive (default)> select * from test2;
OK
test2.id
1002
Time taken: 1.565 seconds, Fetched: 1 row(s)

2)通过set命令,设置hive.cli.print.current.db 参数位false

hive(default)> set hive.cli.print.current.db = false;
hive>

3)退出,重启hive,命令如下

[aa@hadoop102 hive]$ bin/hive –hiveconf hive.cli.print.current.db = false
hive>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter学习二:构建第一个Flutter App

目录 1 使用vsCode创建APP项目 1.1 创建项目 1.2 调试项目 2 使用AndroidStudio创建APP项目 2.1 创建项目 2.2 调试项目 1 使用vsCode创建APP项目 1.1 创建项目 查看>命令面板&#xff0c;输入Flutter&#xff0c;点击New Project >Application&#xff0c;按流程创…

MySQL--事务持久化原理探究

1 引言 如果让你来实现一下 MySQL 持久化的功能&#xff0c;你准备如何实现&#xff1f;如果不考虑性能&#xff0c;接口完全使用同步机制实现&#xff0c;好像也不会出现什么问题&#xff0c;可是不考虑性能是不现实的&#xff0c;IO操作多么耗时&#xff0c;每次写磁盘&…

2023第五届双态IT北京用户大会 | 一起见证云原生时代的数据魅力

2023年6月9日-11日&#xff0c;由ITSS分会指导&#xff0c;ITSS数据中心运营管理组、双态IT论坛联合主办&#xff0c;ITSS媒体组协办的“2023第五届双态IT北京用户大会”将于北京召开。 为了能够有更多专注细分领域、内容深入的分享和探讨&#xff0c;每一届都会和论坛成员一起…

ReID专栏(二)多尺度设计与应用

前言 多尺度流层可以更有效地提取多尺度信息&#xff0c;而基于显著性的学习融合层有利于重要特征通道的自动选择&#xff0c;因此MuDeep在学习鉴别模式方面很强大。其实这也是目前大多数深度学习任务发表论文的趋势&#xff0c;即多尺度、显著性特征的表示。 本教程禁止转载。…

OpenMMLab AI实战营第二期(2)MMPose初体验

根据MMPose的官方文档学习一下 MMPose文档地址&#xff1a;https://mmpose.readthedocs.io/zh_CN/latest/index.html 文章目录 1. 概述2. 安装2.1 创建conda环境并激活2.2 安装pytorch2.3 使用 MIM 安装 MMEngine 和 MMCV2.4 安装MMPose 3. 20 分钟了解 MMPose 架构设计3.1 总…

Typora导出pdf一直停留在导出界面

Typora导出pdf一直停留在导出界面 1. 因为修改临时文件夹地址导致的问题 尝试遍了网上的各种方法对我都没奏效。 但是用管理员权限在 C:\Program Files\Typora 下打开 typora.exe 发现可以正常导出 pdf。 结合这一点&#xff0c;加上最近频繁出现启动文件、文件夹没有权限的…

ES查询 too_many_clauses,maxClauseCount is set to 5000

一&#xff1a;语法执行背景 ES boo查询中过多的拼接bool导致报maxClauseCount is set to 5000 { "caused_by": { "type": "too_many_clauses","reason": "maxClauseCount is set to 5000" } } 查询DSL语句&#xff1a; { …

问题解决:微信开发者工具显示清除登录状态失败 TypeError: Failed to fetch [1.06.2303220][win32-x64]

问题&#xff1a; 在编译之前&#xff0c;会进行清除全部缓存操作&#xff0c;但是点击后出现清除清除登录状态失败。 清除登录状态失败 TypeError: Failed to fetch [1.06.2303220][win32-x64]原因&#xff1a; 未连接网络&#xff0c;或者被你连接的网络拦截。 解决&#xf…

基于 PaddleVideo 的花滑骨骼点动作识别 2s-AGCN

配置文件节点流配置文件 2s-agcn_ntucs_joint_fsd.yamlMODEL 字段DATASET 字段PIPELINE 和 INFERENCE 字段OPTIMIZER 字段 agcn2s.pygraph输入通道数 骨骼流 Dataset 和 Pipeline配置文件DATASETPIPELINE 源码skeleton.pyskeleton_pipeline.pyAutoPaddingSkeletonNormIdenSkete…

springboot+vue高校学科建设资源管理系统

本 1、数据库的构建&#xff1a;数据库需求分析根据所需要实现的功能&#xff0c;对其数据库的需求进行分析。 2、后台管理&#xff1a;网站后台是给管理员用作管理网站内容的操作界面&#xff0c;它是网站日常维护&#xff0c;网站内容操作的交互窗口&#xff0c;是完成网站后…

JS逆向系列之猿人学爬虫第9题-动态cookie2

文章目录 目标参数流程分析js代码Python调用测试目标 https://match.yuanrenxue.cn/match/9参数流程分析 二次请求cookie携带m 第一次请求响应内容格式化之后是这样的: < body > < script src = "/static/match/safety/match9/udc.js" > <

Axure教程—表格(中继器)

本文将教大家如何用AXURE中的中继器制作表格 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://oc3e6a.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87854863?spm1001.2014.3001.5501 二、功能介绍 可以在表格中插入…

1729_c语言中全局变量与局部变量以及形参重名问题

全部学习汇总&#xff1a; GreyZhang/c_basic: little bits of c. (github.com) 欢迎路过的YUAN类朋友相互交流&#xff0c;以下是我的联系方式&#xff1a; Email&#xff1a;greyzhang126.com 微信&#xff1a;grey0612 C语言中烦人变量命名冲突时会有怎么样的处理机制&…

sql_server数据库入门学习(一)

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集&#xff01; &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指…

react-native-vector-icons 安卓和ios 安装

npm install --save react-native-vector-icons ios 将node_modules/react-native-vector-icons/Fonts的文件夹里的内容复制到项目的ios/Fonts文件夹下 选择Ios/Fonts/里的内容 点开Ifon.plist文件&#xff0c;并在右侧添加一项"Fonts provided by application" 在…

(学习日记)2023.04.25

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

[SpringBoot]Knife4j框架Knife4j的显示内容的配置

目录 Knife4j框架 使用 添加依赖&#xff1a;knife4j-spring-boot-starter&#xff0c;版本2.0.9 添加配置&#xff1a;在配置文件中添加knife4j.enable属性的配置&#xff0c;取值为true 添加配置类&#xff1a;类的代码相对固定 访问 Knife4j的显示内容的配置 Knife4j…

赶紧收藏!2023年成人高考【复习大纲】

▶高起点考试题型 高起点-语文 试卷满分为150分。考试用时120分钟。 >>>考试内容&#xff1a; 语言知识及运用、现代文阅读、古代诗文阅读和鉴赏、写作四个方面&#xff0c;考试以测试阅读和写作能力为重点。 >>>备考分析&#xff1a; 语文学习要注意平…

【Python】实现一个类似于Thief的摸鱼软件

一 背景说明 之前用Thief摸鱼(Thief官网&#xff09;&#xff0c;觉得挺好用。对于其最基本的TXT摸鱼&#xff0c;准备在Python中扩展一下功能&#xff0c;使其能够通过爬虫&#xff0c;支持爬取热门小说网站的内容。 软件已经开源到&#xff1a;MoFish软件开源地址 功能是&…

ReID专栏(一) 任务与数据集概述

前言 本专栏针对Closed-world的ReID任务&#xff0c;首先介绍本任务的目标与主要数据集&#xff0c;包括行人重识别、跨模态行人重识别与车辆重识别。然后从三类表征学习的角度解读相关论文&#xff0c;表征学习是本任务的核心&#xff0c;大量重识别工作都致力于提高表征学习的…