Кто-то может объяснить, как MapReduce работает с Cassandra.6? Я прочитал пример для подсчета количества слов, но я не вполне следую за тем, что происходит на конце Cassandra по сравнению с "клиентским" концом.
https://svn.apache.org/repos/asf/cassandra/trunk/contrib/word_count/
Например, скажем, я использую Python и Pycassa, как я загрузился бы в новой карте, уменьшают функцию и затем называют его? Моя карта уменьшает функцию, должен быть Java, это установлено на cassandra сервере? Если так, как я называю его от Pycassa?
Существует также упоминание о Свинье, делающей это все легче, но я - полный новичок Hadoop, так, чтобы действительно не помогал.
Ваш ответ может использовать Экономию или что бы то ни было, я просто упомянул Pycassa для обозначения стороны клиента. Я просто пытаюсь понять различие между какой выполнения в кластере Cassandra по сравнению с фактическим сервером, выполняющим запросы.
Насколько я слышал (и из здесь ), способ, которым разработчик пишет программу MapReduce, которая использует Cassandra в качестве источника данных, как показано ниже.Вы пишете обычную программу MapReduce (пример, на который вы ссылаетесь, относится к версии на чистом Java), а доступные сейчас jar-файлы предоставляют CustomInputFormat, который позволяет использовать в качестве источника ввода Cassandra (вместо Hadoop по умолчанию).
Если вы используете Pycassa, я бы сказал, что вам не повезло, пока либо (1) сопровождающий этого проекта не добавит поддержку MapReduce, либо (2) вы не соберете вместе несколько функций Python, которые напишут программу Java MapReduce. и запустите его. Последний вариант, безусловно, является чем-то вроде взлома, но он поможет вам начать работу.
Преимущество использования прямого InputFormat из cassandra заключается в том, что он эффективно передает данные, что является очень большим выигрышем. Каждое разделение ввода охватывает диапазон токенов и скатывается с диска с полной пропускной способностью: без поиска, без сложных запросов. Я не думаю, что он знает о локальности - чтобы каждый трекер задач предпочитал разделение входных данных из процесса cassandra на одном и том же узле.
Вы можете попробовать использовать Pig с методом STREAM в качестве взлома, пока не появится более прямая поддержка потоковой передачи hadoop.
Знает о местности; Cassandra InputFormat переопределяет getLocations () для сохранения локальности данных