Kyl*_*ndt 7 hdfs hbase opentsdb cloudera
更新 4,215:
查看hdfs内部的空间使用情况后,我发现 .oldlogs 使用了大量空间:
1485820612766 /hbase/.oldlogs
Run Code Online (Sandbox Code Playgroud)
所以新问题:
同样作为作业 scollector 不会监视各种 hdfs 目录的磁盘空间使用情况....
看起来以下错误在那个时候开始重复填充日志,不确定它们的确切含义:
2014-11-25 01:44:47,673 FATAL org.apache.hadoop.hbase.regionserver.wal.HLog: Could not sync. Requesting close of hlog
java.io.IOException: Reflection
at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.sync(SequenceFileLogWriter.java:310)
at org.apache.hadoop.hbase.regionserver.wal.HLog.syncer(HLog.java:1405)
at org.apache.hadoop.hbase.regionserver.wal.HLog.syncer(HLog.java:1349)
at org.apache.hadoop.hbase.regionserver.wal.HLog.sync(HLog.java:1511)
at org.apache.hadoop.hbase.regionserver.wal.HLog$LogSyncer.run(HLog.java:1301)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter.sync(SequenceFileLogWriter.java:308)
... 5 more
Caused by: java.io.IOException: Failed to add a datanode. User may turn off this feature by setting dfs.client.block.write.replace-datanode-on-failure.policy in configuration, where the current policy is DEFAULT. (Nodes: current=[10.7.0.231:50010, 10.7.0.233:50010], original=[10.7.0.231:50010, 10.7.0.233:50010])
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.findNewDatanode(DFSOutputStream.java:857)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2ExistingPipeline(DFSOutputStream.java:917)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrRecovery(DFSOutputStream.java:1023)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatanodeError(DFSOutputStream.java:821)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:463)
2014-11-25 01:44:47,673 ERROR org.apache.hadoop.hbase.regionserver.wal.HLog: Error while syncing, requesting close of hlog
Run Code Online (Sandbox Code Playgroud)
我的旅途:
在我存储 openTSBD 数据的 HBASE 集群上,我的磁盘空间开始相当快地攀升(尽管我可以看出我们的插入率一直是一致的):
增加的磁盘是 HDFS 存储磁盘。目录的大小大致均匀。
我的设置是一个 HBASE 集群(用 cloudera 制作),它有 3 台机器,hdfs 复制因子为 3。还有另一个集群,主集群复制到一台机器。副本没有显示出同样的增长变化:
我正在主服务器上拍摄快照,但是list_snapshots
从 hbase shell 中没有显示任何可以返回超过一天的情况,所以我认为它们应该被剔除。我的 hbase 体验不是很好,还有什么可以看的建议吗?
取得进展...:
[root@ny-tsdb01 ~]# hadoop fs -dus /hbase/*
dus: DEPRECATED: Please use 'du -s' instead.
3308 /hbase/-ROOT-
377401 /hbase/.META.
220097161480 /hbase/.archive
0 /hbase/.corrupt
1537972074 /hbase/.logs
1485820612766 /hbase/.oldlogs
8948367 /hbase/.snapshot
0 /hbase/.tmp
38 /hbase/hbase.id
3 /hbase/hbase.version
192819186494 /hbase/tsdb
905 /hbase/tsdb-meta
899 /hbase/tsdb-tree
1218051 /hbase/tsdb-uid
Run Code Online (Sandbox Code Playgroud)
我认为我的复制失败了。根据这篇 safari 文章,我认为 .oldlogs 是预写日志(WALS)所在的位置。它们应该被清理掉,但由于某种原因没有被清理掉。
我使用以下方法来清理它:
HADOOP_USER_NAME=hdfs hadoop fs -rm -skipTrash /hbase/.oldlogs/*
由于我在构建替换集群作为复制目标时注意到了这一点,因此我暂时停止了复制,并且该目录似乎不再无限制地增长。这是我未来将监控的事情。特别是因为根据hbase issues 3489这似乎可能是一个错误。
归档时间: |
|
查看次数: |
1435 次 |
最近记录: |