Как использовать Cassandra's Map Reduce с помощью Pig или без него?

StackOverflow https://stackoverflow.com/questions/2734005

  •  02-10-2019
  •  | 
  •  

Вопрос

Кто-нибудь может объяснить, как MapReduce работает с Cassandra .6?Я прочитал пример с подсчетом слов, но я не совсем понимаю, что происходит в конце Cassandra.конец "клиента".

https://svn.apache.org/repos/asf/cassandra/trunk/contrib/word_count/

Например, допустим, я использую Python и Pycassa, как бы я загрузил новую функцию map reduce, а затем вызвал ее?Должна ли моя функция map reduce быть java, установленной на сервере cassandra?Если да, то как мне вызвать это из Pycassa?

Там также упоминается, что Pig упрощает все это, но я полный нуб в Hadoop, так что это не особо помогло.

В вашем ответе может использоваться Thrift или что-то еще, я только что упомянул Pycassa для обозначения клиентской стороны.Я просто пытаюсь понять разницу между тем, что работает в кластере Cassandra, ифактический сервер, выполняющий запросы.

Это было полезно?

Решение

Из того, что я слышал (и из здесь), способ, которым разработчик пишет программу MapReduce, использующую Cassandra в качестве источника данных, заключается в следующем.Вы пишете обычную программу MapReduce (пример, на который вы ссылаетесь, предназначен для версии pure-Java), а доступные теперь jars предоставляют CustomInputFormat, который позволяет использовать источником ввода Cassandra (вместо используемого по умолчанию Hadoop).

Если вы используете Pycassa, я бы сказал, что вам не повезло, пока либо (1) сопровождающий этого проекта не добавит поддержку MapReduce, либо (2) вы не объедините несколько функций Python, которые напишут программу Java MapReduce и не запустят ее.Последнее, безусловно, немного халтурно, но поможет вам встать на ноги.

Другие советы

Он знает об этой местности ;Входной формат Cassandra переопределяет getLocations() для сохранения локальности данных

Преимущество использования прямого InputFormat от cassandra заключается в том, что он эффективно передает данные, что является очень большим преимуществом.Каждое разделение входных данных охватывает диапазон токенов и выводится с диска на полную пропускную способность:никакого поиска, никаких сложных запросов.Я не думаю, что он знает о локальности - чтобы каждый tasktracker предпочитал разделять входные данные от процесса cassandra на одном и том же узле.

Вы можете попробовать использовать Pig с методом STREAM в качестве взлома, пока не будет установлена более прямая поддержка потоковой передачи hadoop.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top