Сопоставление больших наборов данных с использованием Hadoop? - PullRequest
0 голосов
/ 03 марта 2010

Я бы хотел получить представление, если хэддоп - верный инструмент для решения моей проблемы.

Я строю автономный процесс (один раз в месяц или раз в квартал), который соответствует 2 наборам данных: A и B. Набор данных A находится в Oracle, набор данных B - это файл XML. Набор данных A составляет около 20 миллионов записей, набор данных B составляет 6 миллионов записей.
Каждая запись представляет собой музыкальную песню и имеет следующий формат:

song {
  songid:

  // type of string , avg_num_of_titles_per_song=1.4 , std_deviation=1.9
  titles:[] 

  // type of string  avg_num_of_performers_per_song=1.5 std_deviation=0.9
  performers:[] 
}

Две записи совпадают, если: - хотя бы одно совпадение заголовков с использованием либо точного совпадения, либо фонетического алгоритма, либо алгоритма расстояния - по крайней мере, при сопоставлении исполнителей с использованием тех же алгоритмов: точных, фонетических, расстояний и т. д. (мы все еще оцениваем алгоритмы сопоставления)

Выход этого процесса - 2 набора данных: (1) одиночные совпадения, где запись в A соответствует только один раз в B, а та же запись в B совпадает только один раз в A. (2) несколько матчей

Будет ли hadoop правильным инструментом для работы?

Спасибо.

1 Ответ

1 голос
/ 04 марта 2010

должно работать. Однако ваши наборы данных не настолько велики, чтобы оправдать использование hadoop. Вы, вероятно, можете просто запустить его на одном мощном сервере. Сначала нужно поместить меньший набор данных в distcache, чтобы он был равномерно распределен по разным узлам. Затем вы можете извлечь второй больший набор данных из базы данных Oracle и загрузить его в HDFS. Затем запустите задание карты, которое будет соответствовать двум наборам данных. Вывод результатов - это просто стандартное программирование сокращения карт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...