寫ORC文件
與讀入過程相對(duì)應(yīng),寫ORC文件代碼如下:

我們需要根據(jù)自定義的數(shù)據(jù)類型MyRow類實(shí)例化StructObjectInspector為inspector,然后使用OrcSerde對(duì)象將最終計(jì)算結(jié)果進(jìn)行序列化并寫入HDFS。其中MyRow類是通過擴(kuò)展Writable類,對(duì)輸出數(shù)據(jù)類型進(jìn)行了定義,在類中完成了對(duì)輸出表結(jié)構(gòu)字段的定義和賦值,代碼如下:

在上面的章節(jié)中,我們介紹了MapReduce開發(fā)在北京移動(dòng)大數(shù)據(jù)平臺(tái)上的應(yīng)用背景和部分應(yīng)用案例。盡管MapReduce由于處理機(jī)制中大量的磁盤讀寫帶來了數(shù)據(jù)處理效率的瓶頸,但在日常離線數(shù)據(jù)處理任務(wù)中由于其成熟穩(wěn)定的性能,MapReduce仍然扮演著十分重要的角色。
隨著技術(shù)的不斷發(fā)展,諸如Spark等更加快速的計(jì)算引擎也將逐步取代MapReduce的地位,我們也在一步步嘗試替換和優(yōu)化我們的應(yīng)用場(chǎng)景,也歡迎大家多提意見和建議,謝謝!
作者簡(jiǎn)介:孫昊,畢業(yè)于Auburn Univeristy,獲得EE工程碩士學(xué)位,專攻信息論與信息安全,現(xiàn)就職于北京移動(dòng)網(wǎng)運(yùn)中心。熟悉信息論與數(shù)理統(tǒng)計(jì),善用Java、Scala語言編程,熟悉C、C++、Python語言以及H5、Javascript等網(wǎng)絡(luò)編程語言,精通MapReduce編程框架,熟悉Storm、Spark Streaming大數(shù)據(jù)實(shí)時(shí)處理技術(shù)。2014年底加入北京移動(dòng)eBDA大數(shù)據(jù)分析團(tuán)隊(duì),擔(dān)任團(tuán)隊(duì)大數(shù)據(jù)軟件開發(fā)工程師,參與完成了搜索關(guān)鍵字產(chǎn)品、互聯(lián)網(wǎng)流量視圖、應(yīng)用匹配產(chǎn)品、用戶標(biāo)簽體系產(chǎn)品等大數(shù)據(jù)項(xiàng)目。eBDA大數(shù)據(jù)分析團(tuán)隊(duì)是一支扎根于北京移動(dòng)網(wǎng)運(yùn)中心,致力于提升數(shù)據(jù)價(jià)值、改善用戶體驗(yàn),取之于民用之于民的有理想有能力的團(tuán)隊(duì)。
