Cassandra在使用WSO BAM时经常崩溃2.5.0

问题描述:

我们使用Cassandra 1.2.9 + BAM 2.5进行API分析。 我们已经安排了一个做cassandra数据清除的工作。这个数据清除工作分为三个步骤。 第一步是查询原始列族,然后将它们插入到临时columnFamily_purge中。 第二步是通过添加逻辑删除从列名系列中删除,并将columnFamily_purge中的数据插入到原始列系列中。 第三步是删除临时columnFamily_purgeCassandra在使用WSO BAM时经常崩溃2.5.0

首届效果很好,但在Hadoop的map任务第二步频繁死机卡桑德拉服务器,这使得卡桑德拉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。是的,有两个节点,每个数据有两个复制 – Tom

这可能由于3个原因而发生。

1)Cassandra服务器故障。我不是这种情况在你的设置中。

2)网络问题

3)负载比群集可以处理更高。

如何删除数据?使用配置单元脚本?

+0

是的,前两个原因不太可能。在BAM UI上,我们可以安排cassandra数据清除作业。在内部,它使用org.wso2.carbon.bam.cassandra.data.archive.mapred.CassandraMapReduceRowDeletion这是一个mapreduce作业来删除数据。实际上,要删除的数据并不是很大。 – Tom

+0

Hi @ Bhathiya,我对Cassandra很有新意,特别是我们使用的是旧版本1.2.9。你有没有关于如何调整Cassandra的建议,因为你们将Cassandra作为后端的NoSQL DB,你是否在性能测试中有不同的配置参数方面的文档? – Tom

+0

我将检查代码清除功能如何删除数据。 Cassandra调整指南可用于WSO2 MB。你可以试试。 https://docs.wso2.com/display/MB211/Cassandra+Tuned+Up+Configurations – Bee

当我增加打开的文件数和最大线程数后,问题就消失了。