centos集群上安装hive客户端的操作步骤以及hive介绍

news2024/11/26 21:49:36

系列文章目录

虚拟机centos7配置Hadoop单节点伪分布配置教程​​​​​​

hbase进阶操作——读流程与写流程介绍

HBase进阶——文件的合并、 MemStore Flush、StoreFile Compaction、 Region Split、高可用与预分区介绍

centos7虚拟机下hbase的使用案例讲解

文章目录

前言

一、Hive 基本概念1.1 什么是Hive

1.2 Hive 的优缺点

1.3 Hive 架构原理

1.4 Hive 和数据库比较

二、Hive安装部署2.1 、安装 Hive

1 把 apache-hive-3.1.2-bin.tar.gz上传到 linux的 /opt/software目录下

​编辑2 解压 apache-hive-3.1.2-bin.tar.gz到 /opt/module/目录下面

​编辑3 修改 apache-hive-3.1.2-bin.tar.gz的名称为 hive

​编辑4 修改 /etc/profile.d/my_env.sh 添加环境变量

5 添加内容

6 解决日志 Jar包冲突

7、初始化元数据库

2.2、启动并使用 Hive

1)启动 Hive

2)使用 Hive

3)在 CRT窗口 中开启另一个窗口开启 Hive,在 /tmp/atguigu目录下监控 hive.log文件


前言

本文主要介绍hive的基本概念以及hive客户端在centos7集群模式下的安装与部分出问题地方的解决方法。

一、Hive 基本概念
1.1 什么是Hive

1) hive 简介
Hive:由Facebook 开源用于解决海量结构化日志的数据统计工具。
Hive 是基于Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并
提供类SQL 查询功能。
2) Hive 本质:将HQL 转化成MapReduce 程序

(1)Hive 处理的数据存储在HDFS
(2)Hive 分析数据底层的实现是MapReduce
(3)执行程序运行在Yarn 上

1.2 Hive 的优缺点

1.2.1 优点
(1)操作接口采用类SQL 语法,提供快速开发的能力(简单、容易上手)。
(2)避免了去写MapReduce,减少开发人员的学习成本。
(3)Hive 的执行延迟比较高,因此Hive 常用于数据分析,对实时性要求不高的场合。
(4)Hive 优势在于处理大数据,对于处理小数据没有优势,因为Hive 的执行延迟比较高。
(5)Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
1.2.2 缺点
1)Hive 的HQL 表达能力有限
(1)迭代式算法无法表达
(2)数据挖掘方面不擅长,由于MapReduce 数据处理流程的限制,效率更高的算法却
无法实现。
2)Hive 的效率比较低
(1)Hive 自动生成的MapReduce 作业,通常情况下不够智能化
(2)Hive 调优比较困难,粒度较粗

1.3 Hive 架构原理

1)用户接口:Client
CLI(command-line interface)、JDBC/ODBC(jdbc 访问hive)、WEBUI(浏览器访问hive)
2)元数据:Metastore
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;默认存储在自带的derby 数据库中,推荐使用MySQL 存储Metastore
3)Hadoop
使用HDFS 进行存储,使用MapReduce 进行计算。
4)驱动器:Driver
(1)解析器(SQL Parser):将SQL 字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST 进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。
(2)编译器(Physical Plan):将AST 编译生成逻辑执行计划。
(3)优化器(Query Optimizer):对逻辑执行计划进行优化。
(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive 来说,就是MR/Spark。

 Hive 通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop 中执行,最后,将执行返回的结果输出到用户交互接口。

1.4 Hive 和数据库比较

由于 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive 理解为数据库。其实从结构上来看,解为数据库。其实从结构上来看,HiveHive 和数据库除了拥有类似的查询语言,再无类似之处。和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述本文将从多个方面来阐述 HiveHive 和数据库的差异。数据库可以用在和数据库的差异。数据库可以用在 OnlineOnline 的应用中,但是的应用中,但是HiveHive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 HiveHive 的特性。的特性。
1.4.1 查询语言查询语言 由于由于SQLSQL被广泛的应用在数据仓库中,因此,专门针对被广泛的应用在数据仓库中,因此,专门针对HiveHive的特性设计了类的特性设计了类SQLSQL的查的查询语言询语言HQLHQL。熟悉。熟悉SQLSQL开发的开发者可以很方便的使用开发的开发者可以很方便的使用HiveHive进行开发。进行开发。
1.4.2 数据更新数据更新 由于由于HiveHive是针对数据仓库应用设计的,而是针对数据仓库应用设计的,而数据仓库数据仓库的内容是读多写少的。的内容是读多写少的。因此,因此,HiveHive中中不不建议建议对数据的改写,所有的数据都是在加载的时候确定好的。对数据的改写,所有的数据都是在加载的时候确定好的。而数据库中的数据通常是需而数据库中的数据通常是需要经常进行修改的,因此可以使用要经常进行修改的,因此可以使用 INSERTINSERT INTOINTO …… VALUESVALUES 添加数据,使用添加数据,使用 UPDATEUPDATE …… SETSET修修改数据。改数据。
1.4.3 执行延迟执行延迟 HiveHive 在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。另外一个导在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致致 HiveHive 执行延迟高的因素是执行延迟高的因素是 MapReduceMapeduce框架。由于框架。由于MapReduceMapReduce 本身具有较高的延迟,因此本身具有较高的延迟,因此在利用在利用MapReduceMapReduce 执行执行HiveHive查询时,也会有较高的查询时,也会有较高的延迟。相对的,数据库的执行延迟较低。延迟。相对的,数据库的执行延迟较低。当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,HiveHive的并行计算显然能体现出优势。的并行计算显然能体现出优势。
1.4.4 数据规模数据规模由于由于HiveHive建立在集群上并可以利用建立在集群上并可以利用MapReduceMapReduce进行并行计算,因此可以支持很大规模进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模较小。的数据;对应的,数据库可以支持的数据规模较小。

二、Hive安装部署
2.1 、安装 Hive

1 把 apache-hive-3.1.2-bin.tar.gz上传到 linux的 /opt/software目录下

ps:此处插入一个理解MySQL的jar包


2 解压 apache-hive-3.1.2-bin.tar.gz到 /opt/module/目录下面

[atguigu@hadoop102 software]$ tar zxvf /opt/ apache hive 3.1.2bin.tar.gz C /opt/module/


3 修改 apache-hive-3.1.2-bin.tar.gz的名称为 hive

[atguigu@hadoop102 software]$ mv /opt/module /apache hive 3.1.2 bin/  /opt/module /hive


4 修改 /etc/profile.d/my_env.sh 添加环境变量

[atguigu@hadoop102 software]$ sudo vim etc/profile.d/my_env.sh

5 添加内容

#H IVE_HOME
export HIVE_HOME=/opt/module/hive
ex port PATH=$PATH:$HIVE_HOME/bin

编辑完成之后记得source一下

6 解决日志 Jar包冲突

[atguigu@hadoop102 software]$ mv $HIVE_HOME/lib/log4j slf4j impl-2.10.0.jar $HIVE_HOME/lib/log4j slf4j impl-2.10.0.bak

 

执行此步骤时出现问题,解决方法如下:

 

修改jar包名称为bak

7、初始化元数据库

[atguigu@hadoop102 hive]$ bin/schematool dbType derby initSchema


2.2、启动并使用 Hive

1)启动 Hive

[atguigu@hadoop102 hive]$ bin/hive

此处插入一个提示信息:启动hive是需要先启动Hadoop集群

2)使用 Hive

hive> show databases;
hive> show tables;
hive> create table test (id
hive> insert into test values(1);
hive select * from test

3)在 CRT窗口 中开启另一个窗口开启 Hive,在 /tmp/atguigu目录下监控 hive.log文件

Caused by: ERROR XSDB6: Another instance of Derby may have already booted
the database /opt/module/hive/metastore_db.
at
org.apache.derby.iapi.error.StandardException.newException(Unknown
Source)
at
org.apache.derby.iapi.error.StandardException.newException(Unknown
Source)Source) at at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOorg.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown Source)nDB(Unknown Source) at at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown Source)Source) ......

原因在于
原因在于HiveHive默认使用的元数据库为默认使用的元数据库为derbyderby,开启,开启HiveHive之后就会占用元数据库,之后就会占用元数据库,且且不与不与其他客户端共享数据其他客户端共享数据,,所以我们需要将所以我们需要将HiveHive的元数据地址改为的元数据地址改为MySQLMySQL。

总结

以上就是今天的内容,主要介绍Hive的基本概念与安装客户端的操作,也欢迎各位小伙伴留言交流奥~

最后欢迎大家点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。

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

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

相关文章

【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata

NacosSentinelSeata 9/9 1、SpringCloud Alibaba简介1.1 主要功能1.2 具体组件 2、SpringCloud Alibaba Nacos服务注册和配置中心2.1 Nacos介绍2.2 Nacos下载安装2.3 使用Nacos作为注册中心2.3.1 在父工程的pom文件中引入springcloudalibaba依赖2.3.2 创建cloudalibaba-provide…

面向对象(高级)-包装类的理解_基本数据类型、包装类、String类型间的转换及练习

包装类 大纲 包装类的使用 1.为什么要使用包装类? 为了使基本数据类型的变量具备引用数据类型变量的相关特征(比如:封装性、继承性、多态性)。我们给各个基本 数据类型的变量都提供了对应的包装类。2.(掌握&#xff…

Vue电商项目--项目路由

项目路由分析 vue-router 路由分为KV node平台(并非语言) 对于后台而言:K即为URL地址 V即为相应的中间件 前端路由: K即为URL(网络资源定位符) V即为相应的路由组件 路由的一个分析 确定项目结构顺序:上中下 -----只有中间部…

如何构建可靠的台账数据——详解台账管理系统的使用方法

随着数字化的发展,越来越多的企业开始采用电子台账管理,实现了对各项业务数据的及时准确保存和管理。而在台账管理应用中,发票管理、工单管理和库房台账是三大重要方面。下面我将详细介绍一下台账管理系统。 一、发票管理 1.收票台账报表 …

MySQL入门基础(一步一图)

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放&#xff0…

【数据结构】堆(二)

😛作者:日出等日落 📘 专栏:数据结构 把每天当作最后一天来过,那么你就能够学会珍惜。你珍惜了时间,时间自然会对你有所回报。 目录 🎄堆的创建: 堆排序: 向下调整的时…

【51单片机】按键操作(单个灯闪烁流水灯)

🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🍔同一个灯 🏳️‍🌈效果…

怎么把png图片压缩到100k以内,3个工具高效处理

怎么把png图片压缩到100k以内?为什么要压缩图片呢?当我们在提交资料的时候,而系统却提示图片过大无法上传的情况,大多都限制100K以内,这个时候我们就需要压缩图片。当我们网站打开的速度很慢的时候,这个时候…

DevExpress:报表在winform窗体上显示(使用documentViewer控件)

一:控件认识 documentViewer(版本DX22.2),老版本中的可能是printControl(工具箱面板中可能找不到),通过官网搜索发现,这个控件现在继承于documentViewer这个控件。因此,使用documen…

HTML 5 画布(canvas)

canvas 元素使用 JavaScript 在网页上绘制图像&#xff0c;本身是没有绘图能力。 canvas 是一个矩形区域&#xff0c;可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 下面来做几个示例&#xff1a; 1、填充画布 <canvas id"…

ZLMediaKit 流媒体服务器RTSP推流时候 directProxy不同设置 时候的处理

1.directProxy默认值为1 也就是开启代理 我们先看默认设置下的推流流程 断点断在ringbuffer.h文件的write函数这里不管怎样都要经过这里 然后看堆栈 整理一下 RingBuffer<std::shared_ptr<toolkit::List<std::shared_ptr<mediakit::RtpPacket> > > >…

架构运维篇(八):Centos7/Linux中Nginx配置HTTPS支持

文章目标 在Nginx中安装HTTPS证书配置Nginx域名映射映射到shop-web和shop-admin两个项目 版本说明 Nginx : 1.22 配置域名 域名&#xff1a;www.baidu.com Nginx安装目录 /www/server/nginx 第一步&#xff1a;安装HTTPS证书 证书一共有两个文件&#xff1a; 1、www…

深入探究AD域审计:ADAudit Plus为您提供全方位保障

AD域审计是一项至关重要的任务&#xff0c;可以帮助组织保护其网络和数据免受黑客和内部威胁的攻击。ADAudit Plus是一种广泛使用的工具&#xff0c;可以帮助IT团队监控域控制器并检测任何安全问题。 ADAudit Plus 首先&#xff0c;ADAudit Plus提供了实时监视和警报功能&…

数字孪生与元宇宙:数字化科技的双向融合之路

概念 &#xff08;1&#xff09;元宇宙&#xff08;Metaverse&#xff09;是一个虚拟的三维世界&#xff0c;由数字内容和物理世界中的现实空间相互交织而成&#xff0c;能够提供各种虚拟体验&#xff0c;例如虚拟现实、增强现实、虚拟社交、虚拟经济等。在元宇宙中&#xff0…

可观测性的力量:性能和可靠性!

可观测性已成为现代 IT 的一个重要方面&#xff0c;预计其重要性在未来几年只会增加。实时监控和了解系统行为的能力为组织提供了大量信息&#xff0c;可以帮助他们提高网络和应用程序的性能、可靠性和整体健康状况。 通过收集和分析来自各种来源的数据&#xff0c;可观察性使组…

JavaWeb-Tomcat

目录 1.什么是Tomcat 2.Tomcat 概述 3.Tomcat基本使用 1.什么是Tomcat Tomcat官网&#xff1a;Apache Tomcat - Welcome! 【摘自百度百科】 Tomcat是Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;的Jakarta 项目中的一个核心项目&#xff0c;由Apac…

测试人必备技能:如何进行WebSocket接口测试?

目录 前言 WebSocket介绍 HTTP与WebSocket的区别 二者关系 WebSocket测试方法 使用Postman 使用Jmeter 使用Python 结语 前言 随着Web应用的日益普及&#xff0c;WebSocket作为一种全双工通信协议&#xff0c;在移动端、游戏、视频会议等方面得到广泛应用。 而对于需…

《程序员面试金典(第6版)》面试题 16.03. 交点(直线的一般式方程,克莱姆法则,行列式,C++)

题目描述 给定两条线段&#xff08;表示为起点start {X1, Y1}和终点end {X2, Y2}&#xff09;&#xff0c;如果它们有交点&#xff0c;请计算其交点&#xff0c;没有交点则返回空值。 要求浮点型误差不超过10^-6。若有多个交点&#xff08;线段重叠&#xff09;则返回 X 值最…

为什么软件测试外包公司更受软件企业欢迎?软件测试报告需要多少钱?

劳动派遣或劳务派遣的用工模式古已有之&#xff0c;是人力资源销售市场不可避免的态势。软件测试顺应时代开展检测业务外包这一行业细分领域&#xff0c;越来越多软件外包公司尤其是小微型企业慢慢意识到了软件测试业务外包通常能够持续减少企业的各种成本费&#xff0c;使企业…

video 视屏播放器详细控制

介绍 canplay、play、pause是video提供的API&#xff0c;在视频加载完成后需要设置视频的总时长duration也是来源于自身的API但是需要格式化时间 设置当前播放时间通过自身API&#xff0c;currentTime function playing(){#id.innerHTMl 格式化时间函数(video.currentTime)…