Cassandra часто аварийно завершала работу при работе с WSO BAM 2.5.0.

мы используем Cassandra 1.2.9 + BAM 2.5 для анализа API. Мы запланировали работу по очистке данных Cassandra. Эта работа по очистке данных разделена на три этапа. Первый шаг — запросить исходное семейство столбцов, а затем вставить их во временное семейство столбцов columnFamily_purge. Второй шаг — удалить из исходного семейства столбцов, добавив надгробную плиту, и вставить данные из columnFamily_purge в исходное семейство столбцов. Третий шаг — удалить временный столбец Family_purge.

1-й работает хорошо, но 2-й шаг часто приводит к сбою серверов cassandra во время задач карты Hadoop, что делает Cassandra недоступной. Трек стека исключений выглядит следующим образом:

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)

Может ли кто-нибудь помочь в этом, что может привести к этой проблеме? Спасибо!


person Tom    schedule 23.08.2016    source источник
comment
это кластер cassandra? сколько узлов?   -  person Bee    schedule 23.08.2016
comment
Спасибо @Bhathiya. Да, есть две ноды с 2 репликациями для каждой части данных   -  person Tom    schedule 24.08.2016


Ответы (2)


Это может произойти по 3 причинам.

1) Серверы Cassandra не работают. Я не думаю, что это так в вашей установке.

2) Проблемы с сетью

3) Нагрузка выше, чем может выдержать кластер.

Как вы удаляете данные? Используя скрипт улья?

person Bee    schedule 24.08.2016
comment
Да, первые две причины маловероятны. В пользовательском интерфейсе BAM мы можем запланировать задание очистки данных cassandra. Внутри он использует org.wso2.carbon.bam.cassandra.data.archive.mapred.CassandraMapReduceRowDeletion, который является заданием mapreduce для удаления данных. На самом деле данные, которые нужно удалить, не очень велики. - person Tom; 24.08.2016
comment
Привет @Bhathiya, я новичок в Cassandra, особенно мы используем 1.2.9, более старую версию. Есть ли у вас какие-либо предложения по настройке Cassandra, так как вы, ребята из wso2, принимаете Cassandra в качестве серверной базы данных NoSQL. Были ли у вас какие-либо документы по тестам производительности с точки зрения различных параметров конфигурации? - person Tom; 24.08.2016
comment
Я проверю в коде, как функция очистки удаляет данные. Руководство по настройке Cassandra доступно для WSO2 MB. Вы можете попробовать это. docs.wso2.com/display/MB211/Cassandra+Tuned+Up+ Конфигурации - person Bee; 24.08.2016

После того, как я увеличил количество открытых файлов и максимальное количество потоков, проблема исчезла.

person Tom    schedule 27.08.2016