Aktualisieren 4215:
Nach einem Blick auf Raumnutzung innerhalb von hdfs, ich sehe , dass .oldlogs viel Platz verwendet:
1485820612766 /hbase/.oldlogs
Also neue Fragen:
- Was ist es?
- Wie räume ich es auf?
- Wie kann ich verhindern, dass es wieder wächst?
- Was hat dazu geführt, dass es überhaupt zu wachsen begann?
- Auch .archive ist auch groß, was ist das, meine Schnappschüsse?
Auch als Hausaufgaben-Scollector wird die Speicherplatznutzung verschiedener HDFS-Verzeichnisse nicht überwacht ....
Es sieht auch so aus, als hätte der folgende Fehler die Protokolle zu dieser Zeit wiederholt gefüllt, nicht sicher, was sie genau bedeuten:
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
Meine Reise:
In meinem HBASE-Cluster, in dem openTSBD-Daten gespeichert sind, stieg mein Speicherplatz ziemlich schnell an (obwohl nach unseren Erkenntnissen unsere Einfügungsrate konsistent war):
Die Festplatten, die zunehmen, sind die HDFS-Speicherfestplatten. Die Verzeichnisse sind ungefähr gleich groß.
Mein Setup ist ein HBASE-Cluster (erstellt mit Cloudera) mit 3 Computern mit einem HDFS-Replikationsfaktor von 3. Es gibt auch einen anderen Cluster mit einem einzelnen Computer, auf den der Hauptcluster repliziert. Das Replikat zeigt nicht dieselbe Wachstumsänderung:
Ich list_snapshots
mache Schnappschüsse auf dem Master, aber von der hbase-Shell wird kein Zurück mehr als ein Tag angezeigt, daher denke ich, dass diese so ausgesucht werden, wie sie sein sollten. Meine hbase Erfahrung ist nicht großartig, irgendwelche Vorschläge, was man sich sonst noch ansehen sollte?
Fortschritte machen ... :
[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