Я - общий хаоп n00b. Я пытаюсь решить следующее в качестве своего первого проекта suoop. У меня есть миллион + подпапок, сидящих в ведро Amazon S3. Каждая из этих папок имеет два файла. Файл 1 имеет следующие данные:Присоединение двух файлов в том же каталоге с использованием hadoop
date,purchaseItem,purchaseAmount
01/01/2012,Car,12000
01/02/2012,Coffee,4
....................
File2 имеет информацию о клиенте в следующем формате:
ClientId:Id1
ClientName:"SomeName"
ClientAge:"SomeAge"
Эта же картина повторяется во всех папках в ведре.
Перед тем, как написать все эти данные в HDFS, я хочу присоединиться к File1 и File2 следующим образом:
Регистрация файла:
ClientId,ClientName,ClientAge,date,purchaseItem,purchaseAmount
Id1,"SomeName","SomeAge",01/01/2012,Car,12000
Id1,"SomeName","SomeAge",01/02/2012,Coffee,4
мне нужно сделать это для каждой папки, а затем кормить этот объединенный набор данных в HDFS. Может кто-нибудь указать, как я смогу добиться чего-то подобного в Hadoop. Толчок в правильном направлении будет высоко оценен.
Может быть, вы можете рассмотреть, загружая эти файлы в РСУБД базы данных MySQL, как программно, присоединить их к столу в этой БД и сбрасывать эту таблицу HDFS с помощью Sqoop. Я думаю, это очень прямолинейно. – Alper
@Alper - Спасибо. Я думал больше о том, чтобы иметь задание карты, чтобы определить имена файлов, которые являются некоторыми/path/to/file1, а некоторые/path/to/file2.«Some/path/to» можно, вероятно, использовать в качестве ключа, и значение будет линией для File1 и проанализированным контентом для File2. В фазе сокращения я думал, можно ли присоединиться к записям на основе ключа «some/path/to». Я практически ничего не знаю о Map-reduce, поэтому, возможно, это не путь. –
Вы должны быть осторожны с тем, как использовать задания hadoop и mapreduce, Hadoop делает свою магию, когда у вас есть файл с большим контентом в hdf. Я не мог понять ваш путь, но перемещение ваших файлов в систему hdfs, по-видимому, не подходит для решения mapreduce. – Alper