今天在测试的时候,数据正在入库。突然断电了。
重启动以后,启动./start-dfs.sh以后,查看日志,会报出
2012-04-13 15:39:43,208 INFO org.apache.hadoop.ipc.Server: IPC Server handler 9 on 8020, call rollEditLog() from 196.1.2.160:34939: error: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Checkpoint not created. Name node is in safe mode.
The ratio of reported blocks 0.8544 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
org.apache.hadoop.hdfs.server.namenode.SafeModeException: Checkpoint not created. Name node is in safe mode.
The ratio of reported blocks 0.8544 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.rollEditLog(FSNamesystem.java:4584)
at org.apache.hadoop.hdfs.server.namenode.NameNode.rollEditLog(NameNode.java:660)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:961)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:957)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:955)
这样的错,且安全模式不会自动退出。
这是因为,在断电的时候,正在进入入库,造成了数据块丢失。
这时,使用./hadoop fsck /查看,会发现,里面的
Corrupt blocks: 15
证明有15个丢失的块儿。
这些块已经没有办法找回了,唯有进行删除操作。
这时,在${hadoophome}/bin目录下,执行
./hadoop dfsadmin -safemode leave 关闭安全模式。
执行./hadoop fsck -delete /将丢失的块儿删除即可。
然后再执行./stop-dfs.sh命令,将系统关闭,
再次重启。即可
因为我的集群是使用hbase进行数据的存取的。因此,如果这时候直接启动hbase的话,它也会报出找不到数据的问题。
2012-04-13 16:08:58,172 WARN org.apache.hadoop.hbase.util.FSUtils: Waited 85176ms for lease recovery on hdfs://gsmaster/hbase/.logs/gsdata1,60020,1334287545838/gsdata1%3A60020.1334291689722:org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException: failed to create file /hbase/.logs/gsdata1,60020,1334287545838/gsdata1%3A60020.1334291689722 for DFSClient_hb_m_gsmaster:60000_1334304432374 on client 196.1.2.160, because this file is already being created by NN_Recovery on 196.1.2.161
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.recoverLeaseInternal(FSNamesystem.java:1202)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.recoverLease(FSNamesystem.java:1157)
at org.apache.hadoop.hdfs.server.namenode.NameNode.recoverLease(NameNode.java:404)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:961)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:957)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:955)
这时,我们先将master进程KISS掉,并在${hadoophome}/bin目录下,将hbase目录下的,
ROOT-
|
dir
|
|
|
|
2012-04-13 17:07
|
rwxr-xr-x
|
goldsoft
|
supergroup
|
.META.
|
dir
|
|
|
|
2012-04-13 17:07
|
rwxr-xr-x
|
goldsoft
|
supergroup
|
.logs
|
dir
|
|
|
|
2012-04-13 17:12
|
rwxr-xr-x
|
goldsoft
|
supergroup
|
.oldlogs
|
dir
|
|
|
|
2012-04-13 17:11
|
rwxr-xr-x
|
goldsoft
|
supergroup
|
这四个目录中除.oldlogs以外的删除,使用./hadoop fs -rmr /hbase/-ROOT-这样的命令,
然后再启动hbase,等等hbase启动完成以后,即在日志里显示
2012-04-13 17:08:43,901 INFO org.apache.hadoop.hbase.master.HMaster: Master has completed initialization
时,在${hbasehome}/bin下,执行./hbase org.jruby.Main add_table.rb /hbase目录/表名即可
为了防止数据的丢失,我们在入库的时候,最好是在已经确认放库成功以后,再将源数据删除,这样,才能保证数据不会被丢失。因为断电这样的情况,是谁也料想不到的
分享到:
相关推荐
本文将详细讨论在AIX断电后HACMP无法启动的常见原因及解决方法。 首先,断电可能导致硬件问题,如磁盘识别错误。在这种情况下,AIX可能无法正确识别和加载磁盘,因为它们的设备编号发生了变化。例如,原来的hdisk0...
假设在一个VMware HA集群中,由于某台主机突然发生故障而触发了故障切换流程,但集群中剩余主机的资源不足以支持所有虚拟机的运行。此时,HA代理将按照预设的优先级策略来决定哪些虚拟机可以被重新启动。如果所有...
例如,当某个节点突然断电或网络连接中断时,系统能够自动进行切换,确保服务不间断。 **2.2 配置方法** 为了启用自动故障恢复功能,需要按照以下步骤进行配置: 1. **配置集群参数**:首先,需要正确设置集群...
然而,电力供应问题,如突然停电,可能导致设备损坏或数据丢失。在这种背景下,构建一个基于单片机控制的电源检测系统显得尤为重要。该系统旨在当检测到停电事件时,通过单片机快速响应,自动触发安全关机机制,保护...
GPFS是一种集群文件系统,能够在一组服务器集群上提供高性能、高可用性的存储解决方案。它通过并行I/O技术提供高速数据访问,同时通过镜像和条带化技术确保数据的高可用性和可靠性。GPFS支持自动故障检测和恢复,...
- **断电测试**:模拟主节点突然断电的情况,测试备节点能否快速接管并恢复正常服务。 - **网络故障**:模拟网络中断情况,验证系统能否正确检测并处理此类故障。 - **磁盘I/O故障**:模拟磁盘读写错误或其他I/O问题...
本文将基于谷歌高级研究员Jeff Dean的一次演讲内容,深入探讨谷歌在构建大规模分布式系统中的设计思路、遇到的问题以及相应的解决方案。 #### 系统架构概述 在构建大规模分布式系统时,硬件基础设施的选择至关重要...
此外,查找可能存在的readme文件或wiki页面,这些通常会提供关于项目背景、使用方法和配置选项的详细信息。通过这样的分析,你可以学习到如何设计和实现一个高效的负载管理解决方案,这对于提升你在分布式系统和云...
当MongoDB服务因非正常关闭(如突然断电或强制停止)而无法启动时,通常是由于`.lock`文件的存在导致的。为了解决这个问题,你需要删除`data`目录下的`.lock`文件,然后运行`mongod`的修复命令,例如: ``` rm -f...
本文基于杰夫·迪恩(Jeff Dean)的经验分享,深入探讨了构建此类系统时所面临的关键问题及其解决策略。 #### 一、背景介绍 杰夫·迪恩在其演讲中分享了他在谷歌多年工作中积累的宝贵经验。这些经验不仅覆盖了产品...
尽管ORACLE RAC提供了高性能、高可用性、扩展性和负载均衡,但仍有特定问题无法解决: - 共享磁盘阵列失效:一旦共享磁盘阵列出现问题,数据可能丢失,这对任何组织来说都是灾难性的。 - 人为逻辑错误:数据库操作...
9. **性能监控**:通过实时监控电池状态,可以提前发现并解决潜在问题,避免突然停电对电子政务系统的影响。 10. **可持续性**:现代电子政务系统越来越关注环保,选用高效、低能耗的蓄电池成为趋势。 综上所述,...
在VPLEX 系统中,UPS 模块负责为VS2 平台提供稳定的电力支持,确保系统在遇到突然断电的情况下仍能正常运行,从而保护数据的安全性和完整性。 ### 更换UPS 模块的必要性 随着使用时间的增长,UPS 模块可能会出现...
3. **日志文件系统(JFS)**:AIX的日志文件系统能够确保文件系统的完整性和一致性,即使在突然断电或其他故障发生时也能保证数据的安全。 4. **对象数据管理(ODM)**:ODM用于存储和管理非文件系统的数据,例如...
这个项目的主要目标是保护数据的完整性,防止因为突然断电导致的数据丢失,从而保障业务的连续性和稳定性。 XenUSV 的核心功能是与不间断电源(UPS)设备进行通信,特别是目前支持 APC 品牌的 UPS。通过监控 UPS 的...
6. **电源故障**:电源问题可能会导致整个服务器突然断电。 这些故障的发生往往具有不确定性,因此需要设计一套全面的解决方案来应对这些问题。 #### 三、高可用方案选型 针对上述考量因素和可能发生的故障类型,...
UPS电源不仅能够防止突然断电造成的损失,还能有效抵御电网中的各种干扰,如电压波动、浪涌等。因此,UPS电源市场迎来了更为广阔的发展空间。用户关注的重点除了选购合适的UPS电源外,更在于如何对其进行有效的维护...
使用UPS(不间断电源)可以防止突然断电导致的数据丢失。 7. **监控和自动化**:为了更好地管理和维护home lab,可以使用监控工具(如Grafana、Prometheus)来跟踪系统性能,并利用自动化工具(如Ansible、Puppet)...