Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > 大数据云计算 >

hbase和hadoop数据块损坏处理 PDF 下载


分享到:
时间:2020-11-06 09:27来源:http://www.java1234.com 作者:转载  侵权举报
hbase和hadoop数据块损坏处理 PDF 下载
失效链接处理
hbase和hadoop数据块损坏处理  PDF 下载


本站整理下载:
提取码:yhpu 
 
 
相关截图:
 
主要内容:

1.HDFS 坏块数据的处理
 hadoop dfsadmin -safemode leave
通常是由挂了两台以上的机器导致的,注意检查集群机器是否挂了多台
 
检查一下hdfs状态
hadoop fsck /
如果不健康,确定有损坏,列出损坏块
 
hadoop fsck -list-corruptfileblocks
 少量的确定是无法修复的。删除除全部的损坏块
 
hadoop fsck -delete
 重启hbase 集群(或执行hbck -repair)
 
2 HBase hbck 工具
 
 Hbase RegionServer 会因为机器硬件、网络、时间同步、GC等原因挂掉。导致hbase 冲
突问题。
 hbase hbck 检查工具(/usr/local/hadoop/bin/hbase hbck)
 0 inconsistencies detected.
 Status: OK
 
 冲突问题的处理
 /usr/local/hadoop/bin/hbase hbck -repair
 /usr/local/hadoop/bin/hbase hbck 表名 -repair
 
3 HBase 重建元数据表
 
前提:Hadoop正常。但hbase启动不起来,没办法解决
 1.停用掉hbase进程(并备份元数据表)
 2.执行离线重建元数据表
 hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair
 -->util.HBaseFsck: Success! hbase:meta table rebuilt.
 3.备份或删除wal
hadoop fs -mv /hbase/WALs/* /backup/WALs20180131/
 4.删除zk 里 /hbase 数据
 /usr/local/zk/bin/zkCli.sh
 rmr /hbase
 5.启动hbase
 
 
 
4 备份与恢复-Export&Impo
 
Export&Import
 Export&Import是HBase一个内置的实用功能,它使数据很容易将hbase表内容输出成
HDFS的SequenceFiles文件.也容易能把Hdfs文件插入到hbase表
 需要开启Yarn&Mapreduce进程。
 会给Hbase RegionServer 带来压力
hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir>
hbase org.apache.hadoop.hbase.mapreduce.Import <outputdir> <tablename>
 
4 Hbase 备份与恢复 Snapshot
 snapshot:
 快照在几秒内就可以完成,几乎对整个集群没有任何性能影响
 基于表 test创建名为 snap_test 的快照
 
命令: snapshot 'test','snap_test'
 
 ExportSnapshot tool 快照导出工具命令:
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 'snap_test' -copyto
/data/huang_test
 数据还原:
 
命令:clone_snapshot 'snap_test','test‘
(或 把快照的数据copy的hbase正确路径下,执行 hbck 表名 -repair)
 
 
 
1、手动修复:
 
   hdfs fsck /     #首先检查哪些数据块丢失了
 
   hdfs debug recoverLease -path 文件位置 -retries 重试次数 # 修复指定路径的hdfs文件,尝试多次
 
   此时,hdfs就能被修复了,切记不要使用hdfs fsck / -delete 命令,它是删除所有损坏的块的数据文件,会导致数据彻底丢失,当然若只有一个副本,或所有副本均已经损坏,则可以执行此命令。
 
2、自动修复
 
hdfs当然会自动修复损坏的数据块,当数据块损坏后,DN节点执⾏directoryscan(datanode进行内存和磁盘数据集块校验)操作之前,都不会发现损坏;也就是directoryscan操作校验是间隔6h
dfs.datanode.directoryscan.interval : 21600
 
在DN向NN进⾏blockreport前,都不会恢复数据块;也就是blockreport操作是间隔6h
dfs.blockreport.intervalMsec : 21600000
 
最终当NN收到blockreport才会进⾏恢复操作
 
生产中倾向于使用手动修复的方法去修复损坏的数据块。
 
5 批量删除损坏的文件
先列出损坏的文件并重定向到文件
hadoop fsck -list-corruptfileblocks >> 123.txt
删除123.txt的第一行
然后重建文件
cat 123.txt | awk ‘{print $2}’ >> abc.txt
批量删除
cat abc.txt | while read line;do hadoop fsck -delete $line;done


 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐