Hive02_基本使用,常用命令

一、Hive基本概念

1 什么是 Hive

1)hive 简介

Hive:由 Facebook 开源用于解决海量结构化日志的数据统计工具。

Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。

2)Hive 本质:将 HQL 转化成 MapReduce 程序

在这里插入图片描述

  1. Hive 处理的数据存储在 HDF

  2. Hive 分析数据底层的实现是 MapReduce

  3. 执行程序运行在 Yarn 上

2 hive优缺点

hive多用于海量结构化日志数据分析,如统计网站一个时间段内的pv、uv,多维度数据分析。

优点:

1、简单,容易上手,提供了类SQL查询语言HQL;

2、为超大数据集设计的计算/扩展能力;

3、统一的元数据管理,可在多各组件进行数据共享;

缺点:

1、hive的HQL表达能力有限,对于迭代式算法和复杂运算无法表达;

2、hive效率较低,自动生成MapReduce作业,通常不够智能,并且调优困难,粒度较粗,可控性差;

二 、Hive的基本操作

1 hive的简单使用

启动hive,在hive中创建一张表

create table mytest(id varchar(20));

查看此表的位置 /user/hive/warehouse/mytest
在这里插入图片描述

退出hive,创建一个txt文档,并写入数据

touch test.txt
vi test.txt

写入数据:

1001
1002
1003

将test.txt放入表中

hadoop fs -put test.txt /user/hive/warehouse/mytest

启动hive,查看表中的数据

hive> select *  from mytest;

查看表信息:

打开mysql中 metastore库,找到DBS表

在这里插入图片描述

找到TBLS表

在这里插入图片描述

2 使用元数据服2务的方式访问 Hive

1)在 hive-site.xml 文件中添加如下配置信息

 <!-- 指定存储元数据要连接的地址 --><property><name>hive.metastore.uris</name><value>thrift://192.168.149.151:9083</value></property>

2)启动 metastore

[root@hadoop2 hive]# bin/hive --service metastore2023-09-21 00:49:18: Starting Hive Metastore Server

注意: 启动后窗口不能再操作,需打开一个新的 shell 窗口做别的操作

如果启动报错,查看jps服务,杀掉RunJar;

在这里插入图片描述

在这里插入图片描述

[root@hadoop2 hive]# kill -9 3034

3在新窗口重新启动hive

[root@hadoop$HIVE_HOME/bin/hive

3 使用jdbc连接hive

1)在 hive-site.xml 文件中添加如下配置信息

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

2)启动 hiveserver2

[root@localhost hive]$ bin/hive --service hiveserver2

3)启动 beeline 客户端(需要多等待一会)

[root@loaclhost hive]$ bin/beeline -u jdbc:hive2://0: jdbc:hive2://192.168.149.151:10000 -n root

4)看到如下界面
Connecting to jdbc:hive2://hadoop102:10000
Connected to: Apache Hive (version 3.1.2)
Driver: Hive JDBC (version 3.1.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 3.1.2 by Apache Hive
0: jdbc:hive2://192.168.149.151:10000>

三、 Hive 常用交互命令

1 查看hive常用命令a

[root@hadoop2 hive]# $HIVE_HOME -help
$ hive -help
usage: hive-d,--define <key=value>          Variable substitution to apply to Hivecommands. 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 Hivecommands. 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 theconsole)

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

[root@hadoop2 hive]# bin/hive -e "select * from mytest;"

2)“-f”执行脚本中 sql 语句
(1)在/usr/soft/hive/下创建 datas 目录并在 datas 目录下创建 hivef.sql 文件

[root@hadoop2 hive]# mkdir datas
[root@hadoop2 datas]# touch hivef.sql 
[root@hadoop2 datas]# vi hivef.sql 

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

select * from mytest;
select count(id) from mytest;

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

[root@hadoop2 hive]# bin/hive -f $HIVE_HOME/datas/hivef.sql

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

[root@hadoop2 hive]# bin/hive -f $HIVE_HOME/datas/hivef.sql >/usr/soft/hive/datas/hive_result.txt

四、Hive 其他命令操作

1)退出 hive 窗口:

hive(default)>exit;
hive(default)>quit;

2)在 hive cli 命令窗口中如何查看 hdfs 文件系统

hive(default)>dfs -ls /;

3)查看在 hive 中输入的所有历史命令
(1)进入到当前用户的根目录 /root
(2)查看. hivehistory 文件

[root@hadoop2 ~]#  cat .hivehistory

Hive 运行日志信息配置

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

2)修改 hive 的 log 存放日志到/uer/soft/hive/logs
(1)修改/usr/soft/hive/conf/hive-log4j2.properties.template 文件名称为
hive-log4j2.properties

[root@hadoop2 conf]# mv hive-log4j2.properties.template hive-log4j2.properties

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

property.hive.log.dir = /usr/soft/hive/logs

1 打印 当前库名 和 表头信息

在 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>

在这里插入图片描述

2 参数配置方式

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

hive>set;

2)参数的配置三种方式

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

(2)命令行参数方式

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

例如:

[root@hadoop2 hive]$ bin/hive -hiveconf mapred.reduce.tasks=10;

注意:仅对本次 hive 启动有效

查看参数设置:

hive (default)> set mapred.reduce.tasks;

(3)参数声明方式
可以在 HQL 中使用 SET 关键字设定参数
例如:

hive (default)> set mapred.reduce.tasks=100;

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

上述三种设定方式的优先级依次递增。即配置文件<命令行参数<参数声明。注意某些系
统级的参数,例如 log4j 相关的设定,必须用前两种方式设定,因为那些参数的读取在会话
nf mapred.reduce.tasks=10;


*注意:仅对本次 hive 启动有效*查看参数设置:```sh
hive (default)> set mapred.reduce.tasks;

(3)参数声明方式
可以在 HQL 中使用 SET 关键字设定参数
例如:

hive (default)> set mapred.reduce.tasks=100;

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app pages.json之globalStyle全局页面样式配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

智慧零售技术探秘:关键技术与开源资源,助力智能化零售革新

智慧零售是一种基于先进技术的零售业态&#xff0c;通过整合物联网、大数据分析、人工智能等技术&#xff0c;实现零售过程的智能化管理并提升消费者体验。 实现智慧零售的关键技术包括商品的自动识别与分类、商品的自动结算等等。 为了实现商品的自动识别与分类&#xff0c;…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十六:统计报表模块相关功能实现

一、本章内容 本章使用Echarts及DataV实现常用图表、特殊图表、地图及综合图表等图表展示功能。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载 二、界面预览 三、开发视频 3.1 B站视频地址: 基于VUE3+Layui从

[Linux]——彻底学通权限

学习权限 一、权限概念二、权限管理2.1文件访问者分类&#xff08;人&#xff09;2.2文件类型和访问权限&#xff08;事物的属性&#xff09;2.3 文件访问权限的相关设置方法 三、目录的权限3.1、进入目录的权限3.2、粘滞位 四、关于权限的总结 一、权限概念 Linux下有两种用户…

ubuntu18设置开机自启动

项目需求&#xff1a;机器人开机上电后工控机首先运行机械臂控制代码&#xff0c;再运行算法代码 1.终端执行以下代码 gnome-session-properties 2.设置开机自启动选项 在弹出界面点击添加&#xff0c;名称随便填&#xff0c;命令填入要启动的脚本&#xff0c;注释随便填。 …

学Java的第三天

一、自增自减运算符 &#xff0c;自增&#xff0c;变量的值加一 --&#xff0c;自减&#xff0c;变量的值减一 和-- 既可以放在变量的后边&#xff0c;也可以放在变量的前边。 单独使用的时候&#xff0c; 和 -- 放在变量的前边还是后边&#xff0c;结果是一样的。 参与操作…

doris数据模型,06-Aggregate(聚合模型)

聚合模型的特点 将表中的列分为Key和Value。 Key是数据的维度列&#xff0c;比如时间&#xff0c;地区等等。key相同时会发生聚合。 Value是数据的指标列&#xff0c;比如点击量&#xff0c;花费等等。 每个指标列还会有自己的聚合函数&#xff0c;如&#xff1a;sum&#xff…

git之UGit可视化工具使用

一、下载安装UGit 链接&#xff1a;https://pan.baidu.com/s/1KGJvWkFL91neI6vAxjGAag?pwdsyq1 提取码&#xff1a;syq1 二 、使用SSH进行远程仓库连接 1.生成SSH密钥 由于我们的本地 git仓库和 gitee仓库之间的传输是通过SSH加密的&#xff0c;所以我们需要配置SSH公钥。才…

在线快速获取UDID教程

第一步 进入UDID 登录咕噜分发官网(https://www.gulufenfa.com) 点击工具箱 进入控制台—【开发者工具】—【UDID】 第二步 获取UDID 进入UDID快速获取页面 因需要历史UDID所以需要登录您在咕噜分发的账号 用苹果手机扫描二维码根据操作UDID 第三步 手机操作教程 手机…

(GCC) 库的操作

文章目录 预备静态库生成链接环境区别 动态库生成链接环境区别 END参考ar指令 预备 准备两个文件&#xff0c;以最简单的形式进行展示。 add.c int add(int x, int y) {return x y; }main.c 为了方便直接在头文件中声明函数 #include <stdio.h>extern int add(int,…

基于flask和echarts的新冠疫情实时监控系统源码+数据库,后端基于python的flask框架,前端主要是echarts

介绍 基于flask和echarts的新冠疫情实时监控系统 软件架构 后端基于python的flask框架&#xff0c;前端主要是echarts 安装教程 下载到本地&#xff0c;在python相应环境下运行app.py,flask项目部署请自行完成 使用说明 flaskProject文件夹中 app.py是flask项目主运行文…

LabVIEW 通信应用程序框架概述

概述 人和机器对可靠、无处不在且价格实惠的无线数据连接的不断需求给无线行业带来了巨大的压力。业界一致认为&#xff0c;下一代无线网络 (5G) 需要在 2020 年之前将容量提高一千倍&#xff0c;而成本不会相应增加。为了应对这一技术挑战&#xff0c;无线研究人员需要跳出框…