2016-08-23 7 views
1

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

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

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) 

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

+0

- это кластер cassandra? сколько узлов? – Bee

+0

Спасибо @Bhathiya. Да, есть два узла с 2 репликациями для каждой части данных – Tom

ответ

0

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

1) Серверы Cassandra опущены. Я не делаю этого в вашей настройке.

2) Сеть выдает

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

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

+0

Да, первые две причины маловероятны. В пользовательском интерфейсе BAM мы можем запланировать работу по очистке данных cassandra. Внутри он использует org.wso2.carbon.bam.cassandra.data.archive.mapred.CassandraMapReduceRowDeletion, который является заданием mapreduce для удаления данных. Фактически, данные, которые нужно удалить, не очень большие. – Tom

+0

Привет @ Bhathiya, я отчасти новичок в Cassandra, особенно мы используем 1.2.9, более старую версию. Есть ли у вас предложения по настройке Cassandra, так как вы, ребята из wso2, принимаете Cassandra в качестве базы данных NoSQL DB. Были ли у вас документы на тесты производительности с точки зрения различных параметров конфигурации? – Tom

+0

Я проверю код, как функция очистки удаляет данные. Руководство по настройке Cassandra доступно для WSO2 MB. Вы можете попробовать это. https://docs.wso2.com/display/MB211/Cassandra+Tuned+Up+Configurations – Bee

1

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