В предишния ни Hadoop tut о риал , ние ви предоставихме подробно описание на InputFormat. Сега в този блог ще разгледаме Hadoop OutputFormat.
Ще обсъдим какво е OutputFormat в Hadoop, какво е RecordWritter в MapReduce OutputFormat. Ще покрием и типовете OutputFormat в MapReduce.
Въведение в Hadoop OutputFormat
Изходен формат проверете изходната спецификация за изпълнение на заданието Map-Reduce. Той описва как внедряването на RecordWriter се използва за запис на изходни файлове в изходни файлове.
Преди да започнем с OutputFormat, нека първо научим какво е RecordWriter и каква е работата на RecordWriter в MapReduce?
1. RecordWriter в Hadoop MapReduce
Както знаем, Редуктор приема Mappers междинен изход като вход. След това изпълнява функция за намаляване на тях, за да генерира изход, който отново е нула или повече двойки ключ-стойност.
И така, RecordWriter при изпълнение на задание MapReduce записва тези изходни двойки ключ-стойност от фазата на редуктор към изходни файлове.
2. Hadoop OutputFormat
От горе е ясно, че RecordWriter взема изходни данни от Reducer. След това записва тези данни в изходни файлове. OutputFormat определя начина, по който тези изходни двойки ключ-стойност се записват в изходни файлове от RecordWriter.
Функциите OutputFormat и InputFormat са подобни. Екземплярите на OutputFormat се използват за запис във файлове на локалния диск или в HDFS. В MapReduce изпълнение на задание въз основа на изходна спецификация;
- Заданието Hadoop MapReduce проверява дали изходната директория вече не присъства.
- OutputFormat в заданието MapReduce предоставя реализацията на RecordWriter, която да се използва за записване на изходните файлове на заданието. След това изходните файлове се съхраняват във файлова система.
Рамката използва FileOutputFormat.setOutputPath() метод за задаване на изходната директория.
Типове OutputFormat в MapReduce
Има различни типове OutputFormat, които са както следва:
1. TextOutputFormat
Изходният формат по подразбиране е TextOutputFormat. Той записва двойки (ключ, стойност) върху отделни редове текстови файлове. Неговите ключове и стойности могат да бъдат от всякакъв тип. Причината е, че TextOutputFormat ги превръща в низ чрез извикване на toString() върху тях.
Той разделя двойката ключ-стойност чрез табулаторен знак. С помощта на MapReduce.output.textoutputformat.separator свойство, ние също можем да го променим.
KeyValueTextOutputFormat също се използва за четене на тези изходни текстови файлове.
2. SequenceFileOutputFormat
Този OutputFormat записва файлове с поредици за своя изход. SequenceFileInputFormat също е междинно използване на формат между заданията на MapReduce. Той сериализира произволни типове данни във файла.
И съответният SequenceFileInputFormat ще десериализира файла в същите типове. Той представя данните на следващиякартографа по същия начин, както беше излъчен от предишния редуктор. Статичните методи също контролират компресията.
3. SequenceFileAsBinaryOutputFormat
Това е друг вариант на SequenceFileInputFormat. Той също така записва ключове и стойности във файл с последователност в двоичен формат.
4. MapFileOutputFormat
Това е друга форма на FileOutputFormat. Той също така записва изход като файлове с карти. Рамката добавя ключ в MapFile по ред. Така че трябва да гарантираме, че редукторът излъчва ключове в сортиран ред.
5. Множество изходи
Този формат позволява запис на данни във файлове, чиито имена са получени от изходните ключове и стойности.
6. LazyOutputFormat
При изпълнение на задание на MapReduce, FileOutputFormat понякога създава изходни файлове, дори ако те са празни. LazyOutputFormat също е обвивка OutputFormat.
7. DBOutputFormat
Това е OutputFormat за запис в релационни бази данни и HBase. Този формат също изпраща изхода за намаляване към SQL таблица. Той също така приема двойки ключ-стойност. При това ключът има разширен тип DBwritable.
Заключение
Следователно, различни OutputFormats се използват според нуждите. Надявам се да намерите този блог за полезен. Ако имате въпроси относно Hadoop OutputFormat, моля, оставете коментар в полето за коментар. Ще се радваме да ги разрешим.