项目实践---Windows11中安装Zookeeper/Hadoop/Hive的部分问题解决

一.Hadoop与Hive兼容版本选择

正常来说,Hadoop与Hive版本不兼容会出现很多问题导致hive安装失败,可以先确定HIve的版本,比如:要用Hive3.1.2版本,该如何确定使用Hadoop的版本呢,需要我们在hive源码中找到对应Hadoop版本。
下载hive对应版本源码
apache-hive-3.1.2-src
或者其他版本下载:需要下载src.tar.gz 结尾的压缩包

https://archive.apache.org/dist/hive/

解压之后,打卡pom.xml文件,查找“hadoop.version”
在这里插入图片描述
在这里插入图片描述
对应去下载这个版本的Hadoop即可。

二、在Hive安装过程中,工具连接MySQL8报错

DBeaver连接MySQL提示"Public Key Retrieval is not allowed(不允许进行公钥检索。)"问题解决方式。
1.右键连接失败的数据连接,点击“编辑连接”;
在这里插入图片描述
2.在“连接设置”中选择“驱动属性”,将“allowPublicKeyRetrieval”值改为“TRUE”,点击确定,再次连接即可。
在这里插入图片描述
3.mysql出现错误提示:Communications link failure The last packet sent successfully to the server was 0 mi…
无论是在mysql客户端连接,或者是代码连接中,都会出现该错误,特别是在mysql8.0+这个问题更常见,采取的解决办法如下:
进入mysql,执行以下命令:

//下面这个wait timeout默认好像是28800(8h)
show global variables like 'wait_timeout';
//然后把时间设置长点(7day)
set global wait_timeout=604800;
set global interactive_timeout=604800;

若在新建MySQL8的连接,且指定连数据库时,报错Public Key Retrieval is not allowed的解决方法,数据库名后面添加?allowPublicKeyRetrieval=true 即可.
若是在jdbc中就需要在url后面添加即可
在这里插入图片描述
点测试链接,提示内部驱动错误,如下图:
在这里插入图片描述
解决方法:创建连接时,需要设置服务器时区,可设置东八区:Etc/GMT-8,如下图。
在这里插入图片描述
测试链接成功,但是点开对应数据库,看不到表,如下图:
在这里插入图片描述
解决方法:右键链接 -> 编辑 连接 -> 连接属性 -> 客户端认证,勾选“禁用客户端身份识别”即可。
在这里插入图片描述

三、beeline或者其他客户端工具连接Hive报错:org.apache.hadoop.security.authorize.AuthorizationException

在hive安装完成,并使用客户端工具连接时,报错:

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: xx is not allowed to impersonate xx

解决办法:
1.在hive安装目录下:conf/hive-site.xml中添加配置:

<property><name>hive.metastore.sasl.enabled</name><value>false</value><description>If true, the metastore Thrift interface will be secured with SASL. Clients must authenticate with Kerberos.</description>
</property><property><name>hive.server2.enable.doAs</name><value>false</value>
</property><property><name>hive.server2.authentication</name><value>NONE</value>
</property>

2.在Hadoop安装目录下配置文件 core-site.xml加入配置

 <property><name>hadoop.proxyuser.xx.hosts</name><value>*</value></property><!-- 允许被Oozie代理的用户组 -->
<property><name>hadoop.proxyuser.xx.groups</name><value>*</value>
</property>

3.若是集群则所有节点都需要配置,配置完成后需要重启节点,否则不生效。

ps:
可能需要关闭HadoopHive后:
删除hadoop集群下的所有data/ logs/文件夹
以及格式化namenode,命令:hdfs namenode -format
三、DBeaver连接Hive报错
1.如果hive 表里使用map数据结构,hive执行select操作是可能报错
java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSortedMap does not implement the requested interface java.util.NavigableMap

原因:

hadoop 里面使用的 guava 版本太低,保持 hive 和 hadoop 的 guava 版本一致

解决方法:

停止hadoop和hive, 把 hive 中的 guava.xx.jar包拷贝到 hadoop 的 share\hadoop\common\lib的目录下,即可正常运行

在这里插入图片描述

2.hive更新分区表更新分区表操作报错

问题描述:

could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1 node

在使用 hive insert overwrite 更新分区表时 或者 将文件同步到HDFS时,出现这个报错信息。表明没有可使用的DataNode。

解决方案:

(1)namenode节点与其他datanode节点的VERSION中的clusterD的值不一致

方法:删除所有节点(包括namenode)节点的hdfs-site.xml中dfs.namenode.name.dir中指定的文件夹即name和data文件夹,然后使用hadoop namenode -format命令重新格式化各个节点。

(2)有节点的防火墙未关闭

方法: 使用命令:
systemctl stop firewalld.service

(3)hdfs空间被占满

hive在执行的时候会往/tmp下读写大量的临时数据,由于没有空间而报错。
默认情况下,hive脚本执行完之后会自动清理掉这些临时文件。
但是可能有多次没等hive脚本执行完就Ctrl+C终止,会有大量临时文件未清理。
方法:在所有hive脚本都运行结束后,删除掉这些没用的临时文件,腾出空间。

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

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

相关文章

开发 Golang 项目的 Docker 化案例

开发 Golang 项目的 Docker 化案例 在这个案例中&#xff0c;我们将展示如何使用 Docker 容器化一个简单的 Golang Web 应用。我们将创建一个基于 Go 的 Hello World 应用&#xff0c;并使用 Docker 和 Docker Compose 管理容器化环境。 1. 创建 Golang Web 应用 首先&#…

C++ 最小生成树

描述 一个有 n 户人家的村庄&#xff0c;有 m 条路相互连接着。村里现在要修路&#xff0c;每条路都有一个成本价格&#xff0c;现在请你帮忙计算下&#xff0c;最少需要花费多少钱&#xff0c;就能让这 n 户人家连接起来。cost 为一个二维数组&#xff0c;每个元素是一个长度…

数据挖掘的基本介绍以及Python、pandas的基本应用

1. 介绍与准备 1.1 数据挖掘是什么&#xff1f; 1.1.1 什么是数据挖掘 数据挖掘是寻找数据中隐含的知识并用于产生商业价值的过程。它通过分析大量数据&#xff0c;揭示其中的模式和关系&#xff0c;帮助企业做出更明智的决策。 1.1.2 为什么要做数据挖掘&#xff1f; 数据挖…

【性能优化】表分桶实践最佳案例

分桶背景 随着企业的数据不断增长&#xff0c;数据的分布和访问模式变得越来越复杂。我们前面介绍了如何通过对表进行分区来提高查询效率&#xff0c;但对于某些特定的查询模式&#xff0c;特别是需要频繁地进行数据联接查或取样的场景&#xff0c;仍然可能面临性能瓶颈。此外…

sql语句中常用的函数有那些

1、字符串函数 CONCAT(string1, string2, ...): 连接两个或多个字符串。 UPPER(string): 将字符串转换为大写。 LOWER(string): 将字符串转换为小写。 TRIM(string): 去除字符串两端的空格。 LENGTH(string): 返回字符串的长度。 SUBSTRING(string, start, length): 从字符串中…

借助AI营销类API,实现自动化的营销流程

借助AI营销类API&#xff0c;企业可以实现自动化的营销流程&#xff0c;提高效率和效果&#xff0c;并节省大量的时间和资源。这些API利用人工智能和机器学习的技术&#xff0c;能够自动化地执行各种营销任务和流程。首先&#xff0c;AI营销类API可以帮助企业实现自动化的市场调…

c++ 多重包含/定义 || 链接性 || 生命周期

作用域&&生命周期 C 中的作用域&#xff08;scope&#xff09;指的是变量、函数或其他标识符的可见和可访问的范围。 生命周期&#xff08;Lifetime&#xff09;指的是变量或对象存在的时间段。它开始于变量或对象的创建&#xff08;定义&#xff09;时刻&#xff0c;…

2025届阳光保险集团应届生校招社招入职测评真题题库北森自适应测评题库

第1题 人类使用塑料袋的历史很短&#xff0c;但对塑料袋的指责却不绝于耳。全世界每年要消耗5000亿到1万亿个塑料袋。废弃的塑料袋被掩埋会影响农作物吸收营养和水分&#xff0c;污染地下水;焚烧塑料袋则会产生有毒气体&#xff0c;影响人体健康。因此如何处理塑料袋十分重要。…

大数据学习-Hive 函数

目录 Hive函数 Hive的内置函数 数学函数 取整函数: round 指定精度取整函数: round 向下取整函数: floor 向上取整函数: ceil 取随机数函数: rand 幂运算函数: pow 绝对值函数: abs 字符串函数 字符串长度函数&#xff1a;length 字符串反转函数&#xff1a;reverse 字…

微信小程序常用标签及其用法

大家好&#xff0c;我是linzi&#xff0c;今天我来给大家分享一下微信小程序一些个常用的标签及其用法 1. <view> 标签 <view> 标签是小程序中最常用的标签之一&#xff0c;用于组织和布局页面上的内容&#xff0c;类似于HTML中的 <div> 标签。 <view …

STM32——温湿度采集与显示

一、I2C协议 关于I2C协议的基本原理和时序协议 12C协议使用两条线&#xff1a;SDA&#xff08;Serial Data Line&#xff0c;串行数据线&#xff09;和SCL&#xff08;Serial Clock Line&#xff0c;串行时钟线&#xff09;。这两条线都是开漏输出&#xff0c;意味着它们需要上…

NTP对时-客户端程序

#include <QObject> class QUdpSocket;#if 0 // NTP协议帧&#xff08;未使用&#xff09; typedef struct {char LI_VN_Mode;char Stratum;char Poll;char Precision;int RootDelay;int RootDispersion;int ReferenceIdentifier;quint64 ReferenceTimeStamp; …

【AI作曲】毁掉音乐?早该来了!一个网易音乐人对于 AI 大模型音乐创作的思辨

引言&#xff1a;AI在创造还是毁掉音乐&#xff1f; 正如当初 midjourney 和 StableDiffusion 在绘画圈掀起的风波一样&#xff0c;suno 和 各大音乐大模型的来临&#xff0c;其实早该来了。 AI 在毁掉绘画&#xff1f;或者毁掉音乐&#xff1f; 没错&#xff0c;但也错了。…

MGV电源维修KUKA机器人电源模块PH2003-4840

MGV电源维修 库卡电源模块维修 机器人电源模块维修 库卡控制器维修 KUKA电源维修 库卡机器人KUKA主机维修 KUKA驱动器模块维修 机械行业维修&#xff1a;西门子系统、法那克系统、沙迪克、FIDIA、天田、阿玛达、友嘉、大宇系统&#xff1b;数控冲床、剪板机、折弯机等品牌数控…

语音相关算法学习整理

最近看了一下百度paddlespeech的一些公开课&#xff0c;把课程里的视频内容大体听了一下&#xff0c;现在整理一下笔记。教程链接见&#xff1a;飞桨AI Studio星河社区-人工智能学习与实训社区 语音识别的过程可以这样简单概括&#xff1a; 将声音信号经过预加重、加窗、fft等…

JavaWeb——Mysql的启动/登录/卸载

目录 1.Mysql服务器 2.Mysql的简单使用 2.1 启动Mysql&#xff1a; 2.2 登录Mysql 2.3 退出 3. 连接别人的数据库 4.卸载mqsql 1.Mysql服务器 安装了Mysql的计算机都成为Mysql服务器 2.Mysql的简单使用 2.1 启动Mysql&#xff1a; 第一种方法&#xff1a;搜索服务&am…

如何在微信小程序使用vant 进行自定义底部tabbar组件

在微信小程序中使用 Vant 自定义底部 TabBar 需要进行以下步骤&#xff1a; 一、首先&#xff0c;你需要在 app.json 文件中配置自定义 TabBar。 在 "tabBar" 字段中&#xff0c;设置 "custom" 为 true&#xff0c;表示使用自定义 TabBar。 app.json示例…

python18 正则表达式

python18 正则表达式 正则表达式 re.match(),re.search(),re.findall(),re.sub(),re.split() 元字符 具有特殊意义的专用字符 导入模块 improt re代码 正则表达式 re.match(),re.search(),re.findall(),re.sub(),re.split() 元字符 具有特殊意义的专用字符 导入模块 improt rei…

AQS和同步器工具类

一、 同步框架AbstractQueuedSynchronizer Java并发编程核心在于java.concurrent.util包 而juc当中的大多数同步器实现都是围绕着共同的基础行为&#xff0c;比如等待队列、条件队列、独占获取、共享获取等&#xff0c;而这个行为的抽象就是基于AbstractQueuedSynchronizer简称…

关于多线程的理解

#系列文章 关于时间复杂度o(1), o(n), o(logn), o(nlogn)的理解 关于HashMap的哈希碰撞、拉链法和key的哈希函数设计 关于JVM内存模型和堆内存模型的理解 关于代理模式的理解 关于Mysql基本概念的理解 关于软件设计模式的理解 关于Redis知识的理解 文章目录 前言一、线程…