关于Hadoop重新格式化之后集群的崩溃问题

关于Hadoop重新格式化之后集群的崩溃问题


文章目录

  • 关于Hadoop重新格式化之后集群的崩溃问题
    • 写在前面
      • 版本信息
      • 实验场景
    • Hive
      • Hive交互段查询报错
      • 原因分析
      • 解决方法
        • 手动启动元数据服务
        • 重新初始化元数据库
    • HBase
    • 清理虚拟机磁盘
    • 参考资料


写在前面

版本信息

  • Linux版本:CentOS7.5
  • JDK版本:JDK1.8
  • Hadoop版本:Hadoop-3.1.3
  • MySQL版本:MySQL5.7
  • Hive版本:Hive-3.1.2
  • ZooKeeper版本:ZooKeeper-3.5.7
  • HBase版本:HBase-2.0.5
  • 环境:完全分布式环境(三台节点)

实验场景

VM Ware下搭建的虚拟机中,其中一台(hdp03)的磁盘空间占比远高于其他两台(hdp01<hdp02)虚拟机的磁盘空间占比。

清理步骤下文会提到,此处先看一下清理结果,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iYhCGpkC-1678155323346)(0.jpg)]

可以看到,虚拟机磁盘清理成功了。

Hive

Hive交互段查询报错

报错信息:FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P2iJTjHE-1678155323348)(1.jpg)]

原因分析

无法启动元数据服务导致查询失败

解决方法

手动启动元数据服务

手动启动命令如下,启动后,重开一个shell窗口,进入到Hive交互端,重新查询

[whybigdata@hdp01 hive-3.1.2]$ hive --service metastore
  • 有关元数据的配置文件是:hive-site.xml
<!-- 指定存储元数据要连接的地址 -->
<property>
	<name>hive.metastore.uris</name>
	<value>thrift://hdp01:9083</value>
</property>
重新初始化元数据库

如果手动启动元数据服务后还是出现相同的错误,那请尝试重新初始化元数据库

  • 进入到MySQL客户端,删除metastor库,并重新创建metastore库
[yoona@hdp01 hive-3.1.2]$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 5.7.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| metastore          |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> drop database metastore;
.......
mysql> create database matestore;
  • 执行初始化命令:
[whybigdata@hdp01 ~]$ sschematool -initSchema -dbType mysql -verbose
  • 再次进入Hive客户端,查询即可

HBase

进程正常

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JtIgA2eG-1678155323349)(2.jpg)]

报错信息如下:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5uFTCyp5-1678155323350)(3.jpg)]

查看日志:hbase-whybigdata-master-hdp01.loghbase-whybigdata-regionserver-hdp01.log都没有问题

重新彻底初始化

  • 关闭hbase,删除hdfs的/hbase 目录

删除目录之前,先 /hbase 目录的修改权限

[whybigdata@hdp01 hbase-2.0.5]$ bin/stop-hbase.sh
[whybigdata@hdp01 hadoop-3.1.3]$ bin/hdfs dfs chmod -R 777 /hbase 
[whybigdata@hdp01 hadoop-3.1.3]$ bin/hdfs dfs -rm -r /hbase 

修改权限前后:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFP9iTrh-1678155323351)(4.jpg)]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uem8Ycub-1678155323352)(5.jpg)]

  • 删除ZooKeeper上的inode节点内容 /hbase
[whybigdata@hdp01 zookeeper-3.5.7]$ bin/zkCli.sh
[zk: localhost:2181(CONNECTED) 5] deleteall /hbase

在这里插入图片描述


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jkK9p3A5-1678155323352)(7.jpg)]

  • 重新zk集群,启动hbase,再次创建表即可成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q0r5h3Hj-1678155323353)(8.jpg)]

清理虚拟机磁盘

  • 开启要进行磁盘清理的虚拟机,以root身份登录,执行以下命令
dd if=/dev/zero of=/0bits bs=20M

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4IytLqaO-1678155323354)(01.jpg)]

  • 查看虚拟机磁盘可用空间,并执行删除命令
df -h
rm  /0bits

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VJilDaEZ-1678155323355)(02.jpg)]

  • 关闭虚拟机
  • 进入VMWare的安装路径(本人的是在D:\Program Files (x86)\VMware\VMware Workstation)在Windows命令行里执行下方命令
PS C:\Users\Administrator> cd d:
PS D:\> cd "d:\Program Files (x86)"
PS D:\Program Files (x86)>
PS D:\Program Files (x86)> cd '.\VMware\VMware Workstation\'
PS D:\Program Files (x86)\VMware\VMware Workstation>
PS D:\Program Files (x86)\VMware\VMware Workstation> .\vmware-vdiskmanager.exe -k "D:\VM\x.vmdk"
  Shrink: 100% done.
Shrink completed successfully.

此处当代时长大约3分半钟,可以看到,虚拟机磁盘再次清理成功!

  • 关闭虚拟机,查看磁盘占比大小

清理虚拟机磁盘前后hdp03的占比大小如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rKFtRmOD-1678155323356)(9.jpg)]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ANZkP1wr-1678155323357)(10.jpg)]

在前文也提到了磁盘清理成功,(由于参考资料中提到执行最后步骤等待的时间是比较长的)但是我在前问执行的步骤清理过程知识花费了20秒钟左右,就迅速地 100% done了。

但是清理成功后,hdp03节点的大小也还是在25G的数值,这样的数值是hdp01的3倍,是hdp02的6倍多一点。我之所以质疑是因为,三台节点中hdp01的服务安装的是最多的,同时hdp02和hdp03的服务是相差无几的。

经过再一次的清理磁盘,还是在25G的数值,可能是虚拟机hdp03的无效文件多吧!

  • 我还是不甘心,所以经过资料查找,我使用下面参考连接的一个方法进行「压缩虚拟机」

https://www.diskgenius.cn/exp/compressvirtualdisk.php

可是,最终还是没有改变,哈哈哈哈,彻底放弃了!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M0uQNZFn-1678155323357)(11.jpg)]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QvE9SaWV-1678155323358)(12.jpg)]

之所以不行,大概率是因为之前集群的hdp03节点由于磁盘空间不足被强制关机了,大概的描述就是:

在vmware中,hdp03接待你出现s001.vmdk的操作失败(磁盘空间不足),当时忘记截图了

这个问题在前面的文章讲过:

见文

参考资料

  • http://t.csdn.cn/MEFBL
  • https://www.diskgenius.cn/exp/compressvirtualdisk.php

全文结束!

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop集群重新格式化是指对Hadoop分布式文件系统(HDFS)进行重新格式化,以清除现有的数据和元数据,并使其恢复到初始状态。重新格式化Hadoop集群通常是在以下情况下进行: 1. 集群新建或重建:当使用新的硬件或重新安装操作系统时,需要重新格式化Hadoop集群。这样可以确保集群中的所有节点都处于相同的状态,并准备好将来存储和处理数据。 2. 故障恢复:当集群发生故障,导致数据无法访问或元数据损坏时,可以通过重新格式化集群来恢复数据的可用性。这样可以清除任何损坏的数据块或元数据,以便后续的数据复制和恢复操作。 3. 节点扩展:当需要扩展现有Hadoop集群的容量或性能时,可以通过向集群中添加新节点并重新格式化它们来实现。这样可以确保新节点被正确地集成到现有集群中,并且具有正确的配置和数据副本。 在重新格式化Hadoop集群之前,需要先停止Hadoop服务,以便确保不会有任何写操作在重新格式化过程中发生。然后,可以使用以下命令重新格式化Hadoop集群: hdfs namenode -format 此命令将删除HDFS中的所有数据和元数据,并生成一个新的namespaceID。重新格式化完成后,可以启动Hadoop服务,并开始使用集群存储和处理数据。 重新格式化Hadoop集群是一个非常谨慎的操作,因为它会删除所有的数据和元数据。因此,在执行此操作之前,必须先备份重要的数据,并确保所有相关的配置文件和参数都正确设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值