2016-08-23 4 views
1

Wir verwenden Cassandra 1.2.9 + BAM 2.5 für API-Analyse. Wir haben einen Job geplant, um Cassandra Datenbereinigung durchzuführen. Dieser Datenbereinigungsauftrag ist in drei Schritte unterteilt. Der erste Schritt besteht darin, die ursprüngliche Spaltenfamilie abzufragen und sie dann in die temporäre Spalte Family_purge einzufügen. Der zweite Schritt besteht darin, aus der ursprünglichen Spaltenfamilie durch Hinzufügen von Tombstone zu löschen und die Daten aus columnFamily_purge in die ursprüngliche Spaltenfamilie einzufügen. Der dritte Schritt ist die temporäre columnFamily_purgeCassandra stürzte häufig bei der Arbeit mit WSO BAM 2.5.0

Der erste gut funktioniert fallen, aber der zweite Schritt stürzt häufig die cassandra Server während Hadoop Karte Aufgaben, die Cassandra unavailable.The Ausnahme stacktrack macht, ist wie folgt:

2016-08-23 10:27:43,718 INFO org.apache.hadoop.io.nativeio.NativeIO: Got UserName hadoop for UID 47338 from the native implementation 
2016-08-23 10:27:43,720 WARN org.apache.hadoop.mapred.Child: Error running child 
me.prettyprint.hector.api.exceptions.HectorException: All host pools marked down. Retry burden pushed out to client. 
at me.prettyprint.cassandra.connection.HConnectionManager.getClientFromLBPolicy(HConnectionManager.java:390) 
at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:244) 
at me.prettyprint.cassandra.model.ExecutingKeyspace.doExecuteOperation(ExecutingKeyspace.java:113) 
at me.prettyprint.cassandra.model.MutatorImpl.execute(MutatorImpl.java:243) 
at me.prettyprint.cassandra.service.template.AbstractColumnFamilyTemplate.deleteRow(AbstractColumnFamilyTemplate.java:173) 
at org.wso2.carbon.bam.cassandra.data.archive.mapred.CassandraMapReduceRowDeletion$RowKeyMapper.map(CassandraMapReduceRowDeletion.java:246) 
at org.wso2.carbon.bam.cassandra.data.archive.mapred.CassandraMapReduceRowDeletion$RowKeyMapper.map(CassandraMapReduceRowDeletion.java:139) 
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) 
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) 
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364) 
at org.apache.hadoop.mapred.Child$4.run(Child.java:255) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 
at org.apache.hadoop.mapred.Child.main(Child.java:249) 

Könnte jemand dabei helfen, was zu diesem Problem führen könnte? Vielen Dank!

+0

ist das ein Cassandra-Cluster? Wie viele Knoten? – Bee

+0

Danke @ Bhathiya. Ja, es gibt zwei Knoten mit 2 Replikationen für jedes Datenelement – Tom

Antwort

0

Dies kann aus 3 Gründen passieren.

1) Cassandra-Server sind ausgefallen. Ich denke nicht, dass dies in Ihrem Setup der Fall ist.

2) Netzwerkprobleme

3) Die Last ist höher als das, was Cluster verarbeiten kann.

Wie löscht man Daten? Verwenden Sie ein Bienenstock-Skript?

+0

Ja, die ersten beiden Gründe sind unwahrscheinlich. Auf der BAM-Benutzeroberfläche können wir einen Cassandra-Datenbereinigungsjob einplanen. Intern wird org.wso2.carbon.bam.cassandra.data.archive.mapred.CassandraMapReduceRowDeletion verwendet, ein Mapreduce-Job zum Löschen der Daten. Tatsächlich sind die zu löschenden Daten nicht sehr groß. – Tom

+0

Hallo @ Bhathiya, ich bin etwas neu zu Cassandra, vor allem verwenden wir 1.2.9, eine ältere Version. Haben Sie ein paar Vorschläge, wie Sie Cassandra tunen können, nachdem Sie Cassandra als Backend-NoSQL-DB eingeführt haben? Hatten Sie einige Dokumente zu den Leistungstests in Bezug auf verschiedene Konfigurationsparameter? – Tom

+0

Ich werde Code überprüfen, wie die Löschfunktion Daten löscht. Cassandra Tuning Guide ist für WSO2 MB verfügbar. Du kannst es versuchen. https://docs.wso2.com/display/MB211/Cassandra+Tuned+Up+Configurations – Bee

1

Nachdem ich die Anzahl der geöffneten Dateien und maximale Thread-Nummer erhöhen, ist das Problem verschwunden.

Verwandte Themen