Hadoop開發(fā)中常用工具用法解析
本節(jié)和大家學習一下Hadoop開發(fā)中常用的工具InputFormat和OutputFormat使用,相信通過本節(jié)的學習大家能夠掌握更多關于Hadoop開發(fā)方面的知識,讓我們一起來學習吧。首先我們來看一下Hadoop的概念。
Hadoop概念
一個分布式系統(tǒng)基礎架構,由Apache基金會開發(fā)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。簡單地說來,Hadoop是一個可以更
容易開發(fā)和運行處理大規(guī)模數(shù)據(jù)的軟件平臺。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(HadoopDistributedFileSystem),簡稱HDFS。HDFS有著高容錯性(fault-tolerent)的特點,并且設計用
來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(highthroughput)來訪問應用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(largedataset)的應用程序。HDFS放寬了(relax)POSIX
的要求(requirements)這樣可以流的形式訪問(streamingaccess)文件系統(tǒng)中的數(shù)據(jù)。下面我們開始介紹Hadoop開發(fā)中常用的工具InputFormat和OutputFormat。
InputFormat和OutputFormat
Hadoop中的MapReduce框架依賴InputFormat提供數(shù)據(jù),依賴OutputFormat輸出數(shù)據(jù);每一個MapReduce程序都離不開他們。
Hadoop提供了一系列InputFormat和OutputFormat方便開發(fā),本文介紹幾種常用的。TextInputFormat用于讀取純文本文件,文件被分為一系列以LF或者CR結(jié)束的行,key是每一行的位置
(偏移量,LongWritable類型),value是每一行的內(nèi)容,Text類型。KeyValueTextInputFormat同樣用于讀取文件,如果行被分隔符(缺省是tab)分割為兩部分,***部分為key,剩下的部分為
value;如果沒有分隔符,整行作為key,value為空SequenceFileInputFormat用于讀取sequencefile。sequencefile是Hadoop用于存儲數(shù)據(jù)自定義格式的binary文件。它有兩個子類:
SequenceFileAsBinaryInputFormat,將key和value以BytesWritable的類型讀出;SequenceFileAsTextInputFormat,將key和value以Text的類型讀出。SequenceFileInputFilter根據(jù)filter從
sequence文件中取得部分滿足條件的數(shù)據(jù),通過setFilterClass指定Filter,內(nèi)置了三種Filter,RegexFilter取key值滿足指定的正則表達式的記錄;PercentFilter通過指定參數(shù)f,取記錄行數(shù)%
f==0的記錄;MD5Filter通過指定參數(shù)f,取MD5(key)%f==0的記錄。NLineInputFormat0.18.x新加入,可以將文件以行為單位進行split,比如文件的每一行對應一個map。得到的key是每一行
的位置(偏移量,LongWritable類型),value是每一行的內(nèi)容,Text類型。CompositeInputFormat,用于多個數(shù)據(jù)源的join。TextOutputFormat,輸出到純文本文件,格式為key+""+value。
NullOutputFormat,hadoop中的/dev/null,將輸出送進黑洞。
SequenceFileOutputFormat,輸出到sequencefile格式文件。MultipleSequenceFileOutputFormat,MultipleTextOutputFormat,根據(jù)key將記錄輸出到不同的文件。DBInputFormat和
DBOutputFormat,從DB讀取,輸出到DB,預計將在0.19版本加入。本節(jié)關于Hadoop開發(fā)中常用InputFormat和OutputFormat相關內(nèi)容介紹到這里。
【編輯推薦】
- 兩種模式運行Hadoop分布式并行程序
- Hadoop命令手冊使用指南
- 專家講解 Hadoop:HBASE松散數(shù)據(jù)存儲設計
- 兩種模式運行Hadoop分布式并行程序
- Hadoop概念及其用法專家講解