部署大数据集群时踩过的坑 (持续更新)

大数据集群踩过的坑

前言(必看)

如果你遇到了和我一样的问题并通过搜索引擎进入这篇文章,请善用Ctrl+F键搜索

该自检手册仅用于自己学习使用,记录所有自己遇到的问题。如果你没有检索到你的问题,请使用Bing或Google进行搜索

该自检手册严格按照以下模板标准编写:

## 主要出错集中点标题

### 该错误的具体分支错误
报错信息
code
==原因:(若分点则另起一行)==
![出错截图](ERROR.jpg/png)
> 提示信息:(若有则写,没有就不写)

==解决方法:(若分点则另起一行)==
![解决成功后的截图](RESOLVE.jpg/png)
> 提示信息:(若有则写,没有就不写)

关键词:xxx、xxx
参考资料:(若分点则另起一行)

补充: 
1. 若需要编写注意事项,统一使用<font size=5 color=red>标签编写

1. HDFS

1.1 hdfs namenode -format 格式化错误

报错信息

java.io.IOException: Cannot create directory /usr/local/hadoop/tmp/dfs/name/current

原因:

  1. core-site.xml 文件中 hadoop.tmp.dir 的 value 标签参数值设置错误
  2. hdfs-site.xml 文件中 dfs.namenode.name.dirdfs.datanode.data.dir 的 value 标签参数值设置错误
  3. 当前登录的用户不具有 hadoop 文件夹的访问与写入权限
    image-20230319223727704

解决方法(对应上面的1、2、3点):

  1. 修改 core-site.xml 存放临时文件夹的路径,这里我的目录名是 hadoop-3.1.3

  2. 修改 hdfs-site.xml 存放 name 和 data 文件夹的路径,这里我的目录名是 hadoop-3.1.3

  3. 使用 sudo chown -R 用户名:用户名 存放hadoop的文件路径 命令对文件夹提权

    例如:sudo chown -R hadoop:hadoop /usr/local/hadoop
    

注意:格式化的操作在你成功格式化之后就不要再执行了!不要好奇,除非你想再体验一次集群的搭建。再次执行格式化,成功

提示:其实最正确的做法是文件名需要改成 hadoop 而不是 hadoop-3.1.3,这样便于管理与执行

image-20230319225818718

关键词:java.io.IOException: Cannot create directory、hdfs namenode -format、格式化错误、CentOS7、Linux

参考资料:

  1. Hadoop格式化namenode错误:java.io.IOException: Cannot create directory_cannot create directory /opt/cloudera/parcels/sche
  2. directory - hadoop java.io.IOException: while running namenode -format - Stack Overflow

2. HBase

2.1 使用 HBase 命令显示 jar 包冲突

报错信息

SLF4J: Found binding in 
[jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar!/org/slf4j/impl/StaticLoggerBinder.class]

原因:

  1. 由于在 HBase 中使用了两个不同版本的 SLF4J 日志框架的 StaticLoggerBinder 类,分别来自 Hadoop 的 slf4j-log4j12-1.7.25.jar 和 HBase 的 slf4j-reload4j-1.7.33.jar。这导致了类版本冲突,因为相同类的不同版本无法同时存在,从而导致了类加载失败和错误提示的出现
    image-20230323104510792

解决方法:

  1. ✅推荐 在 hbase-env.sh 中添加

    export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
    
    添加完成后退出编辑界面,在bash命令窗口输入
    source hbase-env.sh
    

    原理是告诉 HBase 不要使用 Hadoop 的 classpath 来加载依赖项。这可以确保 HBase 使用自己的 classpath,避免与 Hadoop 中的库发生冲突

  2. ⚠️不推荐 删除 hadoophbase 其中一个 jar 包,原则上删除版本较低的那一个

    注意:执行删除操作之前建议先备份,备份后再执行。rm命令需要精准指向该jar包

    例如:sudo rm /usr/local/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar
    

    再次查看是否会出现 jar 包的冲突信息,冲突信息消失,成功解决

    image-20230324171743462

关键词:Hbase启动、jar包冲突、SLF4J、HBase、CentOS7、Linux

参考资料:

  1. [HBASE-11408] “multiple SLF4J bindings” warning messages when running HBase shell - ASF JIRA (apache.org)
  2. HBase(Hadoop3.1.2 HBase2.2.4) 伪分布式安装与配置
  3. jar包冲突:Found binding in jar:file:/hadoop-2.7.2/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar

2.2 使用 Hbase shell 时出现 ConnectionLoss for /hbase/master

报错信息

hbase:001:0> create 'student','Sname','Ssex','Sage','Sdept','course'
ERROR: KeeperErrorCode = ConnectionLoss for /hbase/master
For usage try 'help' 'create'
Took 33.9493 seconds

原因:

  1. ✅我遇到的 我没有安装 Zookeeper,但是在 hbase-site.xml 中错误的配置了有关Zookpeer的标签,导致Hbase shell无法找到Zookeeper文件夹,从而无法操作有关Hbase shell的任何命令

    <configuration>
        ...
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>zk1.example.com,zk2.example.com,zk3.example.com</value>
        </property>
        <property>
            <name>hbase.zookeeper.property.clientPort</name>
            <value>2181</value>
        </property>
        ...
    </configuration>
    
  2. HBase Master 和 ZooKeeper 在不同的节点上运行,防火墙或网络安全组阻止了它们之间的通信

  3. 没有启动 HBase 的相关服务

解决方法(对应上面的1、2、3点):

  1. 删除 hbase-site.xml 对应文件里有关于 Zookpeer的标签
  2. 需要关闭防火墙
    先使用 systemctl status firewalld 查看防火墙的状态,如果是开着的请使用 systemctl stop firewalld
    在这里插入图片描述
    在这里插入图片描述
    关闭防火墙后,使用命令 service firewalld status 检查防火墙服务是否开启,如果是开启的使用命令 service firewalld stop 停止防火请的服务进程
    在这里插入图片描述
  3. 使用命令 start-hbase.sh 开启 hbase 的相关服务

参考资料:

  1. HBase:Error:KeeperErrorCode=ConnectionLoss for /hbase/master For usage try ‘help‘ ‘disable‘_error: keepererrorcode = connectionloss for /hbase
  2. KeeperErrorCode = ConnectionLoss for /hbase/master - Cloudera Community - 134130

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCB生产工艺流程一:PCB分类的三大要点

PCB生产工艺流程一&#xff1a;PCB分类的三大要点 PCB在材料、层数、制程上的多样化以适不同的电子产品及其特殊需求。因此其种类划分比较多&#xff0c;以下就归纳一些通用的区别办法,来简单介绍PCB的分类以及它的制造工艺。那么我们就从它的三个方面来分析一下吧。 1、材料…

某汽车零部件企业:定期反钓鱼演练是降低企业安全风险的优选方案

客户背景 作为一家主要从事于汽车、摩托车零部件的开发、制造和销售的中日合资企业&#xff0c;服务的客户大多为国内汽车生产领域领先企业&#xff0c;旗下进出口业务较多&#xff0c;该汽车零部件企业需要与海外企业一直保持着电子邮件的往来&#xff0c;电子邮件安全十分重…

eNSP 实现VLAN间通信实验

关于本实验本实验将通过上述方法&#xff08;配置Dot1q终结子接口和VLANIF接口&#xff09;实现不同VLAN间的通信&#xff0c;其中涵盖了与这两种方法相关的原理、配置命令和验证方法。实验目的掌握配置Dot1q终结子接口的方法&#xff0c;实现VLAN间通信。掌握配置VLANIF接口的…

window安装Redis服务

下载地址&#xff1a;Releases tporadowski/redis GitHub。 Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择&#xff0c;这里我们下载 Redis-x64-xxx.zip压缩包&#xff0c;解压后&#xff0c;将文件夹重新命名为 redis。 命令创建Redis服务 上述方式虽然…

王炸!ChatGPT这算是彻底打脸马云。。。

在2019年的世界人工智能大会上&#xff0c;马斯克和马云针对人工智能话题上演了一场精彩对话。马云&#xff1a;我不觉得AI是一种威胁&#xff0c;我不认为人工智能是很恐怖的东西&#xff0c;因为人类很聪明。马斯克&#xff1a;一般大家都会低估人工智能的能力&#xff0c;实…

便携式明渠流量计技术背景及应用

便携式明渠流量计 是一款对现有在线水监测系统中流量监测的对比装置。该便携式明渠流量计实现了比对在线系统的液位误差及流量误差。引导式的操作方式&#xff0c;可自动每两分钟记录一次液位数据&#xff0c;连续记录6次&#xff0c;同时可以累计测量10分钟的流量数据&#xf…

嘉立创EDA专业版PCB的DRC与生产输出

前期为了满足各项设计的要求&#xff0c;通常会设置很多约束规则&#xff0c;当一个PCB设计完成之后&#xff0c;通常要进行DRC。DRC就是检查设计是否满足所设置的规则。一个完整的PCB设计必须经过各项连接性规则检查&#xff0c;常见的检查包括开路及短路的检查&#xff0c;更…

数据库管理-第六十四期 试玩Oracle 23c免费开发者版(20230404)

数据库管理 2023-04-24第六十四期 试玩Oracle 23c免费开发者版1 环境2 操作系统配置3 安装数据库4 配置并启动数据库5 访问数据库总结第六十四期 试玩Oracle 23c免费开发者版 四月第一篇文章&#xff0c;今天正好Oracle放出了Oracle Database 23c Free - Developer Release&am…

Python 自动化指南(繁琐工作自动化)第二版:十六、使用 CSV 文件和 JSON 数据

原文&#xff1a;https://automatetheboringstuff.com/2e/chapter16/ 在第 15 章&#xff0c;你学习了如何从 PDF 和 Word 文档中提取文本。这些文件是二进制格式的&#xff0c;需要特殊的 Python 模块来访问它们的数据。另一方面&#xff0c;CSV 和 JSON 文件只是纯文本文件。…

Linux下C/C++ redis协议(RESP)解析

Redis是一个开源的内存键值数据存储&#xff0c;最常用作主数据库、缓存、消息代理和队列。Redis提供了亚毫秒的响应时间&#xff0c;在游戏、金融科技、广告技术、社交媒体、医疗保健和物联网等行业实现了快速而强大的实时应用。 Redis连续五年成为开发人员最喜爱的数据库。开…

从小到大排序-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第4章-课后作业)

【案例4-1】 从小到大排序 一、案例描述 考核知识点 函数的定义与调用&#xff0c;参数传递 练习目标 掌握函数的定义与调用。掌握for循环数据处理逻辑 需求分析 给出一组数据&#xff0c;要求按照从小到大进行排序。 案例分析 效果如图4-1所示。从小到大排序 具体实现步骤…

Final Cut Pro for Mac(中文fcpx视频剪辑)

Final Cut Pro for Mac是一款专业的视频剪辑软件&#xff0c;由苹果公司开发并发布。Final Cut Pro for Mac v10.6.5中文版是最新版本&#xff0c;支持中文界面&#xff0c;为用户提供了更加便捷的操作体验。 使用Final Cut Pro for Mac&#xff0c;用户可以轻松地进行视频编辑…

哈希表(如何打造一个工业级的哈希表)

目录 哈希思想 哈希函数 哈希冲突 1.开放寻址法 2、链表法 解决装载因子过大的问题 选择合适的哈希冲突解决方法 哈希思想 哈希表(hashtable)是数组的一一种扩展&#xff0c;由数组演化而来&#xff0c;底层依赖数组支持按下标快速 访问元素的特性。换句话说&#xff0c;…

HTTP协议详解(二)

目录 1.HTTP 响应详解 1.1认识状态码(status code) 1.2 认识响应报头(header) 1.3 认识响应正文(body) 2.构造 HTTP 请求 2.1 通过form表单构造请求 2.2 通过ajax构造请求 2.3 使用第三方工具构造请求 开始之前我们先复习一下http协议格式 1.HTTP 响应详解 我们先抓包…

ChatGPT中文方式写作-chatgpt中文生成

ChatGPT是一种强大的自然语言处理技术&#xff0c;可以帮助人们进行各种语言任务&#xff0c;包括机器翻译、问答系统、自然语言生成等。在中文辅助写作上&#xff0c;ChatGPT也很有用武之地&#xff0c;下面我们将就如何通过ChatGPT实现中文辅助写作&#xff0c;提高文章质量和…

C语言预处理指令-宏定义、文件包含、条件编译

预处理指令简介 1.C语言在对源程序进行编译之前&#xff0c;会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令)&#xff0c;产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 2.为了区分预处理指令和一般的C语句&#xff0c;所有预处理…

计算机科班与培训开发编程的区别在哪里?

科班、培训班、科班培训班的模式都培养了很多编程技术人员进入IT行业&#xff0c;有的成为某个技术领域的专家&#xff0c;有的成为领导层&#xff0c;有的一直在默默无闻的敲代码等待35岁的到来。不管那种方式入行&#xff0c;这些类似的情况都存在&#xff0c;并且未来还会一…

全链路监控:方案概述

问题背景 随着微服务架构的流行&#xff0c;服务按照不同的维度进行拆分&#xff0c;一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上&#xff0c;这些软件模块&#xff0c;有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台…

java版工程项目管理系统-功能清单 图文解析

ava版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…

哈希表(概念,冲突的解决,实现哈希桶)

目录 概念 冲突 如何尽量减少冲突? 负载因子 解决冲突的几种方案 冲突严重时的解决办法 哈希表的实现 基本类型哈希桶实现 泛型哈希桶实现 注意!!! 概念 构造出一种存储结构,通过某种函数使元素的存储位置(下标)与它的关键码之间能够建立一一的映射关系,那么在查找…