HIVE4.0.1在Hadoop HA部署hiveserver2模式

news2024/12/19 18:38:36

本文基于CENTOS7,在Hadoop3.4.0版本vm虚拟机3节点HA集群的基础上进行的搭建。
一、前置条件
本文使用MySQL8.0.26作为HIVE数据库,不使用hive自带的derby数据库,因为其不支持多客户端访问,也不方便查询。
所以必须先安装MySQL。版本可以自行决定,如果没有安装,请自行参考安装,也可以参考以下博文:
1、https://blog.csdn.net/estelle_belle/article/details/111156743
2、https://blog.csdn.net/u011374856/article/details/140202813
二、配置部署HIVE
本文集群三个节点分别为:master,slave1,slave2
将hive-4.0.1的tar包解压到master节点一个目录下,本文是/usr/hive-4.0.1/
1、添加hive环境变量:
vim /etc/profile

在这里插入图片描述
生效命令 source /etc/profile
2、解压后的HIVE的文件目录结构如下图所示:(请注意这里的log文件夹,是我自己创建,后面请注意关注这个路径)
在这里插入图片描述
我们的配置主要在conf文件夹中进行,conf的目录结构如图所示:
在这里插入图片描述
3、配置hive-env.sh
conf 文件夹中没有hive-env.sh文件,我们需要把下图所示的文件进行重命名的操作:
在这里插入图片描述
进入当前路径后,使用
mv hive-env.sh.template hive-env.sh
或者直接在图形界面下重命名。
编辑hive-env.sh文件:vim hive-env.sh
添加如下内容:

HADOOP_HOME=/usr/hadoop3
export HIVE_CONF_DIR=/usr/hive-4.0.1/conf

在这里插入图片描述

4、配置日志目录
如同上一步一样,把如图所示的日志配置文件重命名为hive-log4j2.properties
在这里插入图片描述
找到并修改property.hive.log.dir = /usr/hive-4.0.1/log
(改成你自己的,刚才我在上边有提到,我这里设置了自己的日志目录)
5、修改default文件,把如图所示的默认配置文件重命名为hive-default.xml
在这里插入图片描述
6、配置hive-site.xml文件
在你的conf文件夹内新建一个hive-site.xml文件,配置以下内容:

<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master:3306/hivemeta?createDatabaseIfNotExist=true&amp;allowPublicKeyRetrieval=true&amp;useSSL=false&amp;serverTimezone=GMT</value>
    </property>
    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>
        <!-- jdbc连接的username 你的用户-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <!-- jdbc连接的password 你的MYSQL密码-->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root123</value>
    </property>
    <!-- Hive默认在HDFS的工作目录 -->
    <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/user/hive/warehouse</value>
        </property>
        <!-- 指定hiveserver2连接的host -->
        <property>
                <name>hive.server2.thrift.bind.host</name>
                <value>master</value>
        </property>
        <!-- 指定hiveserver2连接的端口号 -->
        <property>
                <name>hive.server2.thrift.port</name>
                <value>10000</value>
        </property>
         <property>
                <name>hive.server2.enable.doAs</name>
                <value>false</value>
         </property>
        <property>
        <!-- 查询数据时 显示出列的名字 -->
                <name>hive.cli.print.header</name>
                <value>true</value>
         </property>
        <property>
        <!-- 在命令行中显示当前所使用的数据库 -->
                <name>hive.cli.print.current.db</name>
                <value>true</value>
        </property>
</configuration>

7、添加Java访问MySQL的jar包,放到hive路径的lib文件夹下。
可以去官网上下载,但是速度比较慢,可以直接在IDEA中利用Maven下载,在pom.xml里写依赖(这里是我的MySQL的版本号,根据需求改为自己的):

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
</dependency>

然后去本地maven仓库mysql文件夹内
在这里插入图片描述
在这里插入图片描述

8、初始化HIVE的元数据库
schematool -initSchema -dbType mysql
直到提示初始化完成(Initialize completed)即为成功

注意:这里要确保mysql服务开启,使用命令
systemctl status mysqld
如图所示:
在这里插入图片描述
然后登录到mysql查看是否有hive元数据库,如图所示
在这里插入图片描述
注意:这里的这个元数据名称是我在第六步中配置hive-site.xml文件里指定的,名字自己指定,参考其他博客的话注意这个名称。
在这里插入图片描述
9、需要修改的hadoop配置:
①修改core-site.xml,添加如下配置:

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
 
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

②修改yarn-site.xml,添加如下配置:

<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:/opt/hadoop/contrib/capacity-scheduler/*.jar:/opt/hadoop/contrib/capacity-scheduler/*.jar</value>
</property>

注意:修改配置文件后同步集群所有节点

10、将配置好的HIVE分发一份到slave1。

11、启动ZooKeeper,启动集群strat-all.sh

12、在master节点上单独开启一个终端窗口,输入命令hiveserver2,如图
在这里插入图片描述
注意:这个窗口不要关闭,单独开启
13、切换到slave1节点,打开终端输入beeline命令
在这里插入图片描述
再次输入命令:
! connect jdbc:hive2://master:10000

这里的端口号是在hive-site.xml文件里配置的端口号,有点的博客不一样,请注意。
这时候会提示输入,用户名,密码,输入完成后应该成功登录。如图所示:

在这里插入图片描述
14、测试(如果有出错,请查看log下的日志文件调试错误)
①输入命令,show databases;
能否显示如图所示的类似结果:
在这里插入图片描述
输入命令:create database hivet_test;
然后再查看数据库,看能否出现上图所示。
②输入命令:use hive_test;
再输入命令:create table mytest(id int,name string);
看能否创建表成功,然后使用 show tables; 查看
在这里插入图片描述
③、输入命令:insert into table mytest values(1,‘zhagnsan’);
测试是否能插入数据成功。
输入命令后查看master节点的开启hiveserver2的终端窗口,有日志输出,如图所示:
在这里插入图片描述
如果报错,请查看8088的MR作业日志。

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

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

相关文章

Visual Studio 使用 GitHub Copilot 协助调试

&#x1f380;&#x1f380;&#x1f380;【AI辅助编程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

C10.【C++ Cont】字符数组和万能头

目录 1.字符数组 1.初始化 1.按字符串初始化 2.按字符初始化 2.字符串的输入 1.无空格的字符串 2.带空格的字符串 解决方法 1.gets(了解即可) gets不安全的原因 2.fgets 3.改良后的scanf 4.getchar 3.字符数组的输出 2.C万能头 1.字符数组 C语言风格的字符串:用…

[C++]C++工具之对异常情况的处理(throw、catch、try)以及用命名空间避免同名冲突

一、C 异常处理&#x1f60a; 1.1 定义 C 中的异常处理用于应对程序运行中的异常情况&#xff08;如除零、数组越界等&#xff09;&#xff0c;通过 try-catch 机制捕获和处理错误&#xff0c;防止程序崩溃。 异常是程序运行时意外发生的事件&#xff0c;可以通过抛出&#xf…

番外篇 | Hyper-YOLO:超图计算与YOLO架构相结合成为目标检测新的SOTA !

前言:Hello大家好,我是小哥谈。Hyper-YOLO,该方法融合了超图计算以捕捉视觉特征之间复杂的高阶关联。传统的YOLO模型虽然功能强大,但其颈部设计存在局限性,限制了跨层特征的融合以及高阶特征关系的利用。Hyper-YOLO在骨干和颈部的联合增强下,成为一个突破性的架构。在COC…

IDEA搭建springboot demo

如下所示创建SpringBootTest18项目&#xff0c;我选的maven&#xff0c;创建完成项目后&#xff0c;maven会自动下载一些依赖库到maven的repository目录中。 创建的项目结构如下图所示 接下来在项目中加入Framework支持&#xff0c;右击项目&#xff0c;弹出的菜单如下图所示&a…

vscode不同项目使用不同插件

转载请注明出处&#xff1a;小帆的帆的博客 在使用vscode开发不同项目时可能会用到不同的插件。手动管理不够优雅&#xff0c;本文介绍使用Profiles的方式的来管理不同项目的插件。 手动管理不同项目的插件 本来vscode安装了有三个插件 这时需要新建一个项目&#xff0c;新…

【FFmpeg】解封装 ① ( 封装与解封装流程 | 解封装函数简介 | 查找码流标号和码流参数信息 | 使用 MediaInfo 分析视频文件 )

文章目录 一、解封装1、封装与解封装流程2、解封装 常用函数 二、解封装函数简介1、avformat_alloc_context 函数2、avformat_free_context 函数3、avformat_open_input 函数4、avformat_close_input 函数5、avformat_find_stream_info 函数6、av_read_frame 函数7、avformat_s…

PDFMathTranslate 一个基于AI优秀的PDF论文翻译工具

PDFMathTranslate 是一个设想中的工具&#xff0c;旨在翻译PDF文档中的数学内容。以下是这个工具的主要特点和使用方法&#xff1a; 链接&#xff1a;https://www.modelscope.cn/studios/AI-ModelScope/PDFMathTranslate 功能特点 数学公式识别&#xff1a;利用先进的OCR&…

20241218_segmentation

参考&#xff1a; 使用SA模型 https://ai.meta.com/research/publications/segment-anything/讲解生物学意义 https://www.nature.com/articles/s41593-024-01714-3#Sec13 x.0 workflow 图像分割方法识别出重要的ROI区域计算ROI区域个数&#xff08;需要计算机算法&#xff…

Ubuntu22.04配置3D gaussian splatting

这篇博客提供了3D gaussian splatting在新安装Ubuntu上的配置过程。 1.拉仓库 2.安装显卡驱动和cuda版本 3.安装Pytorch 4.安装Pycharm和配置Python 5.安装附加依赖项&#xff08;方法一&#xff09; 6.安装Anaconda&#xff08;方法二&#xff09; 7.测试 1.拉仓库 # HT…

Apache Kylin最简单的解析、了解

官网&#xff1a;Overview | Apache Kylin 一、Apache Kylin是什么&#xff1f; 由中国团队研发具有浓厚的中国韵味&#xff0c;使用神兽麒麟&#xff08;kylin&#xff09;为名 的一个OLAP多维数据分析引擎:&#xff08;据官方给出的数据&#xff09; 亚秒级响应&#xff…

【现代服务端架构】传统服务器 对比 Serverless

在现代开发中&#xff0c;选择合适的架构是至关重要的。两种非常常见的架构模式分别是 传统服务器架构 和 Serverless。它们各有优缺点&#xff0c;适合不同的应用场景。今天&#xff0c;我就带大家一起对比这两种架构&#xff0c;看看它们的差异&#xff0c;并且帮助你选择最适…

CVE-2024-32709 WordPress —— Recall 插件存在 SQL 注入漏洞

漏洞描述 WordPress 是一款免费开源的内容管理系统,适用于各类网站,包括个人博客、电子商务系统、企业网站。其插件 WP-Recall 的 account 存在 SQL 注入漏洞,攻击者可以通过该漏洞获取数据库敏感信息。 WP-Recall 版本 <= 16.26.5 漏洞复现 搭建环境、安装插件、完成…

vue+net使用stripe支付开发流程

文章目录 前言用到的语言和技术整体流程stripe平台vue前端Net后端遇到的问题思考总结 前言 公司最近做到了国外支付功能&#xff0c;最后选型使用stripe进行支付&#xff0c;实现目标&#xff1a;使用stripe支付可以让国外用户自己选择支付方式并订阅支付。 用到的语言和技术…

什么?Flutter 可能会被 SwiftUI/ArkUI 化?全新的 Flutter Roadmap

在刚刚过去的 FlutterInProduction 活动里&#xff0c;Flutter 官方除了介绍「历史进程」和「用户案例」之外&#xff0c;也着重提及了未来相关的 roadmap &#xff0c;其中就有 3.27 里的 Swift Package Manager 、 Widget 实时预览 和 Dart 与 native 平台原生语言直接互操作…

随机森林算法原理

随机森林算法原理 算法流程随机森林的生成随机森林的预测 算法总结随机森林的优点随机森林的缺点 算法流程 随机森林的生成 输入训练数据 D&#xff0c;样本个数为 m &#xff0c;待学习的决策树数量为 T。 对于 t 1,2,…,T&#xff0c;从 D 中有放回地采样 m 次&#xff0c…

游戏AI实现-寻路算法(Dijkstra)

戴克斯特拉算法&#xff08;英语&#xff1a;Dijkstras algorithm&#xff09;&#xff0c;又称迪杰斯特拉算法、Dijkstra算法&#xff0c;是由荷兰计算机科学家艾兹赫尔戴克斯特拉在1956年发现的算法。 算法过程&#xff1a; 1.首先设置开始节点的成本值为0&#xff0c;并将…

基于MNE的EEGNet 神经网络的脑电信号分类实战(附完整源码)

利用MNE中的EEG数据&#xff0c;进行EEGNet神经网络的脑电信号分类实现&#xff1a; 代码&#xff1a; 代码主要包括一下几个步骤&#xff1a; 1&#xff09;从MNE中加载脑电信号&#xff0c;并进行相应的预处理操作&#xff0c;得到训练集、验证集以及测试集&#xff0c;每个…

Element@2.15.14-tree checkStrictly 状态实现父项联动子项,实现节点自定义编辑、新增、删除功能

背景&#xff1a;现在有一个新需求&#xff0c;需要借助树结构来实现词库的分类管理&#xff0c;树的节点是不同的分类&#xff0c;不同的分类可以有自己的词库&#xff0c;所以父子节点是互不影响的&#xff1b;同样为了选择的方便性&#xff0c;提出了新需求&#xff0c;选择…

SAP-ABAP开发学习-面向对象开发ooalv(2)

SAP-ABAP开发学习-面向对象OOALV&#xff08;1&#xff09;-CSDN博客 本文目录 一、类的继承 多态性类继承的实现 二、抽象类 三、最终类 四、接口 五、定义全局对象 一、类的继承 继承的本质是代码重用。当我们要构造一个新类时&#xff0c;无需从零开始&#xff0c;可…