Я использую Apache Cassandra (1.2) и Apache Map-Reduce для сжатия некоторых данных. На данный момент я использую CqlPagingInputFormat
из org.apache.cassandra.hadoop.cql3. Этот провайдер использует Thrift для извлечения данных. Похоже, что Thrift довольно медленный (записи 300M, в кластере из 3 узлов забирают 8+ часов для чтения), и поскольку существует собственный бинарный протокол, мне интересно, использовал ли он его.
Меня не интересуют какие-либо другие настройки оптимизации и настройки - это отдельная проблема.
Мои вопросы:
Есть ли реализация входного форматера, уменьшающего карту, который напрямую использует собственный протокол Cassandra?
Если нет, то каковы были бы первые шаги для написания моего собственного, например, с помощью драйвера 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
Код WordCount в примерах /hasoop_cql3_word_count обновлен для использования этих классов.
JIRA, которая представила это, - https://issues.apache.org/jira/browse/CASSANDRA-6311
CqlPagingInputFormat
иCqlPagingRecordReader
все еще используют Thrift, поэтому пишу свою собственную реализацию atm. Не уверен, почему эта проблема помечена как решенная, это не так. Спасибо за ответ, хотя. Я удивлен, что это не было сделано несколько лет назад.