2009-10-26 13 views

Odpowiedz

1

Możesz napisać do pliku tekstowego w lokalnym systemie plików przy użyciu funkcji Pythona lub jeśli chcesz używać HDFS użyj Thrift API.

+0

W jaki sposób wielu maperów zapisuje dane w tym samym pliku w tym samym czasie, gdy piszemy do lokalnego systemu plików lub do pliku hdfs? –

+0

To jest złe. Koliduje to z ponawianiem zadań i gwarantuje potrzebę opiekowania się twoimi zadaniami. – nkadwa

1

Czy jest możliwe zastąpienie klasy outputFormatClass podczas korzystania z przesyłania strumieniowego? W macierzystej implementacji języka Java można rozszerzyć klasę MultipleTextOutputFormat i zmodyfikować metodę, która nadaje nazwę pliku wyjściowego. Następnie określ swoją implementację jako nowy format wyjściowy za pomocą metody setOutputFormat JobConf, którą powinieneś zweryfikować, jeśli jest to możliwe również podczas przesyłania strumieniowego. I donno: -/

7

Klasy danych wejściowych i wyjściowych można zastąpić za pomocą parametrów -inputformat i -outputformat.

Przykład tego, jak to zrobić, można znaleźć w dumbo project, która jest strukturą Pythona do pisania zadań strumieniowych. Posiada funkcję zapisywania do wielu plików i wewnętrznie zastępuje format wyjściowy klasą ze swojego siostrzanego projektu, feathers - fm.last.feathers.output.MultipleTextFiles.

Reduktor musi wydać krotkę jako klucz, a pierwszy składnik krotki jest ścieżką do katalogu, w którym powinny być zapisane pliki z parami klucz/wartość. Wciąż może być wiele plików, które zależą od liczby reduktorów i aplikacji.

Polecam zajrzeć do dumbo, ma wiele funkcji, które ułatwiają pisanie Map/Zmniejszenie programów na Hadoop w python.

Powiązane problemy