Java 使用本机协议为Cassandra定制map reduce输入格式化程序

Java 使用本机协议为Cassandra定制map reduce输入格式化程序,java,hadoop,mapreduce,cassandra,datastax-java-driver,Java,Hadoop,Mapreduce,Cassandra,Datastax Java Driver,我使用ApacheCassandra(1.2)和ApacheMapReduce来处理一些数据。目前,我使用org.apache.cassandra.hadoop.cql3中的CqlPagingInputFormat。此提供程序使用Thrift提取数据。Thrift似乎相当慢(在一个3节点集群中,读取3亿条记录需要8个多小时),而且由于存在本机二进制协议,我想知道是否有人使用过它 我对任何其他优化和配置调整都不感兴趣-这是一个单独的问题 我的问题是 是否有直接使用Cassandra本机协议的map

我使用ApacheCassandra(1.2)和ApacheMapReduce来处理一些数据。目前,我使用org.apache.cassandra.hadoop.cql3中的
CqlPagingInputFormat
。此提供程序使用Thrift提取数据。Thrift似乎相当慢(在一个3节点集群中,读取3亿条记录需要8个多小时),而且由于存在本机二进制协议,我想知道是否有人使用过它

我对任何其他优化和配置调整都不感兴趣-这是一个单独的问题

我的问题是

  • 是否有直接使用Cassandra本机协议的map reduce输入格式化程序的实现

  • 如果不是,那么编写我自己的驱动程序的第一步是什么,例如使用DataStax驱动程序


  • Cassandra 2.0.7包括CQL Hadoop类的本机协议类似物:

    org.apache.cassandra.hadoop.cql3.CqlInputFormat org.apache.cassandra.hadoop.cql3.CqlRecordReader org.apache.cassandra.hadoop.cql3.CqlConfigHelper

    examples/hadoop\u cql3\u word\u count中的WordCount代码已更新为使用这些类


    介绍这个的JIRA是

    是的,我看到了。但是,我需要使用分页从宽行读取。而
    CqlPagingInputFormat
    CqlPagingRecordReader
    仍在使用Thrift,因此我编写了自己的实现atm。不知道为什么这个问题被标记为已解决,它不是。谢谢你的回答。我很惊讶几年前还没有这样做。我不确定我是否明白你的意思,如果你的数据是“旧式”的节俭行,你可以用切片手动翻页,然后使用ColumnFamilyInputFormat。如果您的数据在CQL3表中,那么您就不会直接与宽行进行交互,因为C*将其抽象到CQL表结构后面。好的,我可能不明白我在说什么。我现在就去试一试。