教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Hadoop如何實(shí)現(xiàn)二次排序?【大數(shù)據(jù)面試題】

更新時(shí)間:2021年05月26日14時(shí)28分 來(lái)源:傳智教育 瀏覽次數(shù):

傳智教育-一樣的教育,不一樣的品質(zhì)


問(wèn)題分析

即對(duì)key和value雙排序。默認(rèn)情況下,Map輸出的結(jié)果會(huì)對(duì)Key進(jìn)行默認(rèn)的排序,但是有時(shí)候需要對(duì)Key排序的同時(shí)還需要對(duì)Value進(jìn)行排序,這時(shí)候就要用到二次排序了。

核心答案講解

有兩種方法進(jìn)行二次排序,分別為:buffer and in memory sort和 value-to-key conversion。
buffer and in memory sort
主要思想是:在reduce()函數(shù)中,將某個(gè)key對(duì)應(yīng)的所有value保存到內(nèi)存中,然后進(jìn)行排序。 這種方法最大的缺點(diǎn)是:可能會(huì)造成out of memory。

value-to-key conversion
主要思想是:將key和部分value拼接成一個(gè)組合key(實(shí)現(xiàn)WritableComparable接口或者調(diào)用 setSortComparatorClass函數(shù)),這樣reduce獲取的結(jié)果便是先按key排序,后按value排序的結(jié)果,需要注意的是,用戶需 要自己實(shí)現(xiàn)Paritioner,以便只按照key進(jìn)行數(shù)據(jù)劃分。Hadoop顯式的支持二次排序,在Configuration類(lèi)中有個(gè) setGroupingComparatorClass()方法,可用于設(shè)置排序被group的key值。

問(wèn)題擴(kuò)展

MapReduce:寫(xiě)Mapreduce進(jìn)行數(shù)據(jù)處理,需要利用java、python等語(yǔ)言進(jìn)行開(kāi)發(fā)調(diào)試,如果沒(méi)有一項(xiàng)技術(shù)(如 Java)基礎(chǔ),幾乎不可能學(xué)會(huì) MapReduce。

Hive:Hive 構(gòu)建于傳統(tǒng)的數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)理念之上。它對(duì)待數(shù)據(jù)的方式就像是它有一個(gè)基于 SQL 或基于架構(gòu)的結(jié)構(gòu)。Apache Hive提供了一種更具體和更高級(jí)的語(yǔ)言,通過(guò)運(yùn)行Hadoop作業(yè)來(lái)查詢數(shù)據(jù),而不是直接編寫(xiě)腳本來(lái)逐步操作Hadoop上的幾個(gè)MapReduce作業(yè)。Hive的初步設(shè)計(jì)思路在于提供與SQL類(lèi)似的使用體驗(yàn),開(kāi)發(fā)人員只需要掌握Sql相關(guān)的知識(shí)就可以使用。

項(xiàng)目應(yīng)用

在大數(shù)據(jù)的復(fù)雜統(tǒng)計(jì)分析中,可以使用Hive的SQL功能來(lái)實(shí)現(xiàn)排序等不同的算法,降低入門(mén)難度,提高研發(fā)效率。





猜你喜歡:

Hadoop集群有幾種部署模式?各種模式有什么特點(diǎn)?

Hadoop安裝教程,8大安裝目錄的內(nèi)容和作用分別是什么?

hadoop大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)機(jī)構(gòu)推薦

Hadoop實(shí)現(xiàn)join的有幾種方法?【大數(shù)據(jù)面試題】

傳智教育Python+大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

0 分享到:
和我們?cè)诰€交談!