版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第十二講 圖計算提綱9.1 圖計算簡介圖計算簡介9.2 Pregel簡介簡介9.3 Pregel圖計算模型圖計算模型9.4 Pregel的的C+ API9.5 Pregel的體系結(jié)構(gòu)的體系結(jié)構(gòu)9.6 Pregel的應(yīng)用實例的應(yīng)用實例9.7 Hama的安裝和使用的安裝和使用9.1圖計算簡介n 9.1.1 圖結(jié)構(gòu)數(shù)據(jù)n 9.1.2 傳統(tǒng)圖計算解決方案的不足之處n 9.1.3 圖計算通用軟件n許多大數(shù)據(jù)都是以大規(guī)模圖或網(wǎng)絡(luò)的形式呈現(xiàn)n許多非圖結(jié)構(gòu)的大數(shù)據(jù),也常常會被轉(zhuǎn)換為圖模型后進(jìn)行分析n圖數(shù)據(jù)結(jié)構(gòu)很好地表達(dá)了數(shù)據(jù)之間的關(guān)聯(lián)性n關(guān)聯(lián)性計算是大數(shù)據(jù)計算的核心通過獲得數(shù)據(jù)的關(guān)聯(lián)性,可以從噪音很多的海量數(shù)
2、據(jù)中抽取有用的信息9.1.1 圖結(jié)構(gòu)數(shù)據(jù)9.1.2傳統(tǒng)圖計算解決方案的不足之處很多傳統(tǒng)的圖計算算法都存在以下幾個典型問題:(1)常常表現(xiàn)出比較差的內(nèi)存訪問局部性(2)針對單個頂點的處理工作過少(3)計算過程中伴隨著并行度的改變9.1.2傳統(tǒng)圖計算解決方案的不足之處針對大型圖(比如社交網(wǎng)絡(luò)和網(wǎng)絡(luò)圖)的計算問題,可能的解決方案及其不足之處具體如下:(1)為特定的圖應(yīng)用定制相應(yīng)的分布式實現(xiàn))為特定的圖應(yīng)用定制相應(yīng)的分布式實現(xiàn)(2)基于現(xiàn)有的分布式計算平臺進(jìn)行圖計算)基于現(xiàn)有的分布式計算平臺進(jìn)行圖計算(3)使用單機的圖算法庫)使用單機的圖算法庫:比如BGL、LEAD、NetworkX、JDSL、Sta
3、ndford GraphBase和FGL等(4)使用已有的并行圖計算系統(tǒng))使用已有的并行圖計算系統(tǒng):比如,Parallel BGL和CGM Graph,實現(xiàn)了很多并行圖算法n 針對大型圖的計算,目前通用的圖計算軟件主要包括兩種:第一種主要是基于遍歷算法基于遍歷算法的、的、實時的圖數(shù)據(jù)庫實時的圖數(shù)據(jù)庫,如Neo4j、OrientDB、DEX和 Infinite Graph第二種則是以圖頂點為中心的、基于消息傳遞批以圖頂點為中心的、基于消息傳遞批處理的并行引擎處理的并行引擎,如GoldenOrb、Giraph、Pregel和Hama,這些圖處理軟件主要是基于BSP模型實現(xiàn)的并行圖處理系統(tǒng)9.1.3
4、 圖計算通用軟件9.1.3 圖計算通用軟件一次BSP(Bulk Synchronous Parallel Computing Model,又稱“大同步”模型)計算過程包括一系列全局超步(所謂的超步就是計算中的一次迭代),每個超步主要包括三個組件:局部計算局部計算:每個參與的處理器都有自身的計算任務(wù)通訊通訊:處理器群相互交換數(shù)據(jù)柵欄同步柵欄同步(Barrier Synchronization):當(dāng)一個處理器遇到“路障”(或柵欄),會等到其他所有處理器完成它們的計算步驟圖9 1 一個超步的垂直結(jié)構(gòu)圖 9.2Pregel簡介谷歌公司在2003年到2004年公布了GFS、MapReduce和BigTa
5、ble谷歌在后Hadoop時代的新“三駕馬車”CaffeineDremelPregelPregel是一種基于BSP模型實現(xiàn)的并行圖處理系統(tǒng)為了解決大型圖的分布式計算問題,Pregel搭建了一套可擴展的、有容錯機制的平臺,該平臺提供了一套非常靈活的API,可以描述各種各樣的圖計算Pregel作為分布式圖計算的計算框架,主要用于圖遍歷、最短路徑、PageRank計算等等9.3 Pregel圖計算模型n 9.3.1 有向圖和頂點n 9.3.2 頂點之間的消息傳遞n 9.3.3 Pregel的計算過程n 9.3.4 實例9.3.1 有向圖和頂點Pregel計算模型以有向圖作為輸入有向圖的每個頂點都有一
6、個String類型的頂點ID每個頂點都有一個可修改的用戶自定義值與之關(guān)聯(lián)每條有向邊都和其源頂點關(guān)聯(lián),并記錄了其目標(biāo)頂點ID邊上有一個可修改的用戶自定義值與之關(guān)聯(lián)String類型的頂點ID可修改的用戶自定義值邊上有一個可修改的用戶自定義值邊e1頂點9.3.1 有向圖和頂點在每個超步S中,圖中的所有頂點都會并行執(zhí)行相同的用戶自定義函數(shù)每個頂點可以接收前一個超步(S-1)中發(fā)送給它的消息,修改其自身及其出射邊的狀態(tài),并發(fā)送消息給其他頂點,甚至是修改整個圖的拓?fù)浣Y(jié)構(gòu)在這種計算模式中,“邊”并不是核心對象,在邊上面不會運行相應(yīng)的計算,只有頂點才會執(zhí)行用戶自定義函數(shù)進(jìn)行相應(yīng)計算表示頂點表示發(fā)送消息9.3.
7、2 頂點之間的消息傳遞圖9 2 純消息傳遞模型圖 采用消息傳遞模型主要基于以下兩個原因:(1)消息傳遞具有足夠的表達(dá)能力,沒有必要使用遠(yuǎn)程讀取或共享內(nèi)存的方式(2)有助于提升系統(tǒng)整體性能9.3.3 Pregel的計算過程Pregel的計算過程是由一系列被稱為“超步”的迭代組成的在每個超步中,每個頂點上面都會并行執(zhí)行用戶自定義的函數(shù),該函數(shù)描述了一個頂點V在一個超步S中需要執(zhí)行的操作該函數(shù)可以讀取前一個超步(S-1)中其他頂點發(fā)送給頂點V的消息,執(zhí)行相應(yīng)計算后,修改頂點V及其出射邊的狀態(tài),然后沿著頂點V的出射邊發(fā)送消息給其他頂點,而且,一個消息可能經(jīng)過多條邊的傳遞后被發(fā)送到任意已知ID的目標(biāo)頂點
8、上去這些消息將會在下一個超步(S+1)中被目標(biāo)頂點接收,然后象上述過程一樣開始下一個超步(S+1)的迭代過程表示頂點表示發(fā)送消息1234561234561234569.3.3 Pregel的計算過程圖9 3 一個簡單的狀態(tài)機圖在Pregel計算過程中,一個算法什么時候可以結(jié)束,是由所有頂點的狀態(tài)決定的在第0個超步,所有頂點處于活躍狀態(tài)當(dāng)一個頂點不需要繼續(xù)執(zhí)行進(jìn)一步的計算時,就會把自己的狀態(tài)設(shè)置為“停機”,進(jìn)入非活躍狀態(tài)當(dāng)一個處于非活躍狀態(tài)的頂點收到來自其他頂點的消息時,Pregel計算框架必須根據(jù)條件判斷來決定是否將其顯式喚醒進(jìn)入活躍狀態(tài)當(dāng)圖中所有的頂點都已經(jīng)標(biāo)識其自身達(dá)到“非活躍(inact
9、ive)”狀態(tài),并且沒有消息在傳送的時候,算法就可以停止運行9.3.4 實例圖9 4 一個求最大值的Pregel計算過程圖 活躍非活躍ABCDABCDABCD36622166669.4Pregel的C+ APIPregel已經(jīng)預(yù)先定義好一個基類Vertex類:template class Vertex public:virtual void Compute(MessageIterator* msgs) = 0;const string& vertex_id() const;int64 superstep() const;const VertexValue& GetValue()
10、;VertexValue* MutableValue();OutEdgeIterator GetOutEdgeIterator();void SendMessageTo(const string& dest_vertex, const MessageValue& message);void VoteToHalt(); ;在Vetex類中,定義了三個值類型參數(shù),分別表示頂點、邊和消息。每一個頂點都有一個給定類型的值與之對應(yīng)編寫Pregel程序時,需要繼承Vertex類,并且覆寫Vertex類的虛函數(shù)Compute() 9.4Pregel的C+ APIn 9.4.1 消息傳遞機制n
11、 9.4.2 Combinern 9.4.3 Aggregatorn 9.4.4 拓?fù)涓淖僴 9.4.5 輸入和輸出9.4.1 消息傳遞機制n 頂點之間的通訊是借助于消息傳遞機制來實現(xiàn)的,每條消息都包含了消息值和需要到達(dá)的目標(biāo)頂點ID。用戶可以通過Vertex類的模板參數(shù)來設(shè)定消息值的數(shù)據(jù)類型n 在一個超步S中,一個頂點可以發(fā)送任意數(shù)量的消息,這些消息將在下一個超步(S+1)中被其他頂點接收n 一個頂點V通過與之關(guān)聯(lián)的出射邊向外發(fā)送消息,并且,消息要到達(dá)的目標(biāo)頂點并不一定是與頂點V相鄰的頂點,一個消息可以連續(xù)經(jīng)過多條連通的邊到達(dá)某個與頂點V不相鄰的頂點U,U可以從接收的消息中獲取到與其不相鄰的
12、頂點V的ID9.4.2 Combinern Pregel計算框架在消息發(fā)出去之前,Combiner可以將發(fā)往同一個頂點的多個整型值進(jìn)行求和得到一個值,只需向外發(fā)送這個“求和結(jié)果”,從而實現(xiàn)了由多個消息合并成一個消息,大大減少了傳輸和緩存的開銷n 在默認(rèn)情況下,Pregel計算框架并不會開啟Combiner功能n 當(dāng)用戶打算開啟Combiner功能時,可以繼承Combiner類并覆寫虛函數(shù)Combine()n 此外,通常只對那些滿足交換律和結(jié)合律的操作才可以去開啟Combiner功能圖9-5 Combiner應(yīng)用的例子9.4.3 Aggregatorn Aggregator提供了一種全局通信、監(jiān)
13、控和數(shù)據(jù)查看的機制n 在一個超步S中,每一個頂點都可以向一個Aggregator提供一個數(shù)據(jù),Pregel計算框架會對這些值進(jìn)行聚合操作產(chǎn)生一個值,在下一個超步(S+1)中,圖中的所有頂點都可以看見這個值n Aggregator的聚合功能,允許在整型和字符串類型上執(zhí)行最大值、最小值、求和操作,比如,可以定義一個“Sum”Aggregator來統(tǒng)計每個頂點的出射邊數(shù)量,最后相加可以得到整個圖的邊的數(shù)量n Aggregator還可以實現(xiàn)全局協(xié)同的功能,比如,可以設(shè)計“and” Aggregator來決定在某個超步中Compute()函數(shù)是否執(zhí)行某些邏輯分支,只有當(dāng)“and” Aggregator顯
14、示所有頂點都滿足了某條件時,才去執(zhí)行這些邏輯分支9.4.4 拓?fù)涓淖僴 Pregel計算框架允許用戶在自定義函數(shù)Compute()中定義操作,修改圖的拓?fù)浣Y(jié)構(gòu),比如在圖中增加(或刪除)邊或頂點n 對于全局拓?fù)涓淖?,Pregel采用了惰性協(xié)調(diào)機制n 對于本地的局部拓?fù)涓淖?,是不會引發(fā)沖突的,頂點或邊的本地增減能夠立即生效,很大程度上簡化了分布式編程9.4.5 輸入和輸出n 在Pregel計算框架中,圖的保存格式多種多樣,包括文本文件、關(guān)系數(shù)據(jù)庫或鍵值數(shù)據(jù)庫等n 在Pregel中,“從輸入文件生成得到圖結(jié)構(gòu)”和“執(zhí)行圖計算”這兩個過程是分離的,從而不會限制輸入文件的格式n 對于輸出,Pregel也
15、采用了靈活的方式,可以以多種方式進(jìn)行輸出9.5Pregel的體系結(jié)構(gòu)n9.5.1 Pregel的執(zhí)行過程n9.5.2 容錯性n9.5.3 Workern9.5.4 Mastern9.5.5 Aggregator9.5.1 Pregel的執(zhí)行過程圖9-6圖的劃分圖在Pregel計算框架中,一個大型圖會被劃分成許多個分區(qū),每個分區(qū)都包含了一部分頂點以及以其為起點的邊一個頂點應(yīng)該被分配到哪個分區(qū)上,是由一個函數(shù)決定的,系統(tǒng)默認(rèn)函數(shù)為hash(ID) mod N,其中,N為所有分區(qū)總數(shù),ID是這個頂點的標(biāo)識符;當(dāng)然,用戶也可以自己定義這個函數(shù)這樣,無論在哪臺機器上,都可以簡單根據(jù)頂點ID判斷出該頂點屬
16、于哪個分區(qū),即使該頂點可能已經(jīng)不存在了9.5.1 Pregel的執(zhí)行過程圖9-7 Pregel的執(zhí)行過程圖 在理想的情況下(不發(fā)生任何錯誤),一個Pregel用戶程序的執(zhí)行過程如下:(1)選擇集群中的多臺機器執(zhí)行圖計算任務(wù),有一臺機器會被選為Master,其他機器作為Worker(2)Master把一個圖分成多個分區(qū),并把分區(qū)分配到多個Worker。一個Worker會領(lǐng)到一個或多個分區(qū),每個Worker知道所有其他Worker所分配到的分區(qū)情況9.5.1 Pregel的執(zhí)行過程圖9-7 Pregel的執(zhí)行過程圖 (3)Master會把用戶輸入劃分成多個部分。然后,Master會為每個Worke
17、r分配用戶輸入的一部分。如果一個Worker從輸入內(nèi)容中加載到的頂點,剛好是自己所分配到的分區(qū)中的頂點,就會立即更新相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。否則,該Worker會根據(jù)加載到的頂點的ID,把它發(fā)送到其所屬的分區(qū)所在的Worker上。當(dāng)所有的輸入都被加載后,圖中的所有頂點都會被標(biāo)記為“活躍”狀態(tài)。9.5.1 Pregel的執(zhí)行過程圖9-7 Pregel的執(zhí)行過程圖 (4)Master向每個Worker發(fā)送指令,Worker收到指令后,開始運行一個超步。當(dāng)一個超步中的所有工作都完成以后,Worker會通知Master,并把自己在下一個超步還處于“活躍”狀態(tài)的頂點的數(shù)量報告給Master。上述步驟會被不斷重復(fù)
18、,直到所有頂點都不再活躍并且系統(tǒng)中不會有任何消息在傳輸,這時,執(zhí)行過程才會結(jié)束。(5)計算過程結(jié)束后,Master會給所有的Worker發(fā)送指令,通知每個Worker對自己的計算結(jié)果進(jìn)行持久化存儲9.5.2 容錯性n Pregel采用檢查點機制來實現(xiàn)容錯。在每個超步的開始,Master會通知所有的Worker把自己管轄的分區(qū)的狀態(tài)寫入到持久化存儲設(shè)備n Master會周期性地向每個Worker發(fā)送ping消息,Worker收到ping消息后會給Master發(fā)送反饋消息n 每個Worker上都保存了一個或多個分區(qū)的狀態(tài)信息,當(dāng)一個Worker發(fā)生故障時,它所負(fù)責(zé)維護(hù)的分區(qū)的當(dāng)前狀態(tài)信息就會丟失。
19、Master監(jiān)測到一個Worker發(fā)生故障“失效”后,會把失效Worker所分配到的分區(qū),重新分配到其他處于正常工作狀態(tài)的Worker集合上,然后,所有這些分區(qū)會從最近的某超步S開始時寫出的檢查點中,重新加載狀態(tài)信息9.5.3 Worker在一個Worker中,它所管轄的分區(qū)的狀態(tài)信息是保存在內(nèi)存中的。分區(qū)中的頂點的狀態(tài)信息包括:頂點的當(dāng)前值以該頂點為起點的出射邊列表,每條出射邊包含了目標(biāo)頂點ID和邊的值消息隊列,包含了所有接收到的、發(fā)送給該頂點的消息標(biāo)志位,用來標(biāo)記頂點是否處于活躍狀態(tài)在每個超步中,Worker會對自己所管轄的分區(qū)中的每個頂點進(jìn)行遍歷,并調(diào)用頂點上的Compute()函數(shù),在
20、調(diào)用時,會把以下三個參數(shù)傳遞進(jìn)去:該頂點的當(dāng)前值一個接收到的消息的迭代器一個出射邊的迭代器 n在Pregel中,為了獲得更好的性能,“標(biāo)志位”和輸入消息隊列是分開保存的n對于每個頂點而言,Pregel只保存一份頂點值和邊值,但是,會保存兩份“標(biāo)志位”和輸入消息隊列,分別用于當(dāng)前超步和下一個超步n如果一個頂點V在超步S接收到消息,那么,它表示V將會在下一個超步S+1中(而不是當(dāng)前超步S中)處于“活躍”狀態(tài)9.5.3 Workern當(dāng)一個Worker上的一個頂點V需要發(fā)送消息到其他頂點U時,該Worker會首先判斷目標(biāo)頂點U是否位于自己機器上n如果目標(biāo)頂點U在自己的機器上,就直接把消息放入到與目標(biāo)
21、頂點U對應(yīng)的輸入消息隊列中n如果發(fā)現(xiàn)目標(biāo)頂點U在遠(yuǎn)程機器上,這個消息就會被暫時緩存到本地,當(dāng)緩存中的消息數(shù)目達(dá)到一個事先設(shè)定的閾值時,這些緩存消息會被批量異步發(fā)送出去,傳輸?shù)侥繕?biāo)頂點所在的Worker上9.5.3 Worker9.5.4 MasterMaster主要負(fù)責(zé)協(xié)調(diào)各個Worker執(zhí)行任務(wù),每個Worker會借助于名稱服務(wù)系統(tǒng)定位到Master的位置,并向Master發(fā)送自己的注冊信息,Master會為每個Worker分配一個唯一的IDMaster維護(hù)著關(guān)于當(dāng)前處于“有效”狀態(tài)的所有Worker的各種信息,包括每個Worker的ID和地址信息,以及每個Worker被分配到的分區(qū)信息Ma
22、ster中保存這些信息的數(shù)據(jù)結(jié)構(gòu)的大小,只與分區(qū)的數(shù)量有關(guān),而與頂點和邊的數(shù)量無關(guān)n一個大規(guī)模圖計算任務(wù)會被Master分解到多個Worker去執(zhí)行,在每個超步開始時,Master都會向所有處于“有效”狀態(tài)的Worker發(fā)送相同的指令,然后等待這些Worker的回應(yīng)n如果在指定時間內(nèi)收不到某個Worker的反饋,Master就認(rèn)為這個Worker失效n如果參與任務(wù)執(zhí)行的多個Worker中的任意一個發(fā)生了故障失效,Master就會進(jìn)入恢復(fù)模式n在每個超步中,圖計算的各種工作,比如輸入、輸出、計算、保存和從檢查點中恢復(fù),都會在“路障(barrier)”之前結(jié)束9.5.4 Master9.5.4 M
23、asterMaster在內(nèi)部運行了一個HTTP服務(wù)器來顯示圖計算過程的各種信息用戶可以通過網(wǎng)頁隨時監(jiān)控圖計算執(zhí)行過程各個細(xì)節(jié)圖的大小關(guān)于出度分布的柱狀圖處于活躍狀態(tài)的頂點數(shù)量在當(dāng)前超步的時間信息和消息流量所有用戶自定義Aggregator的值9.5.5 Aggregatorn 每個用戶自定義的Aggregator都會采用聚合函數(shù)對一個值集合進(jìn)行聚合計算得到一個全局值n 每個Worker都保存了一個Aggregator的實例集,其中的每個實例都是由類型名稱和實例名稱來標(biāo)識的n 在執(zhí)行圖計算過程的某個超步S中,每個Worker會利用一個Aggregator對當(dāng)前本地分區(qū)中包含的所有頂點的值進(jìn)行歸約
24、,得到一個本地的局部歸約值n 在超步S結(jié)束時,所有Worker會將所有包含局部歸約值的Aggregator的值進(jìn)行最后的匯總,得到全局值,然后提交給Mastern 在下一個超步S+1開始時,Master就會將Aggregator的全局值發(fā)送給每個Worker9.6 Pregel的應(yīng)用實例單源最短路徑Dijkstra算法是解決單源最短路徑問題的貪婪算法Pregel非常適合用來解決單源最短路徑問題,實現(xiàn)代碼如下:1 class ShortestPathVertex2 : public Vertex 3 void Compute(MessageIterator* msgs) 4 int mindis
25、t = IsSource(vertex_id() ? 0 : INF;5 for (; !msgs-Done(); msgs-Next()6 mindist = min(mindist, msgs-Value();7 if (mindist GetValue() 8 *MutableValue() = mindist;9 OutEdgeIterator iter = GetOutEdgeIterator();10 for (; !iter.Done(); iter.Next()11 SendMessageTo(iter.Target(),12 mindist + iter.GetValue()
26、;13 14 VoteToHalt();15 16 ;9.6 Pregel的應(yīng)用實例單源最短路徑012340INFINFINFINFINF表表1 超步超步0開始時的頂點值開始時的頂點值每個頂點并行執(zhí)行Compute()函數(shù)1234010030無10表3 頂點0向其他頂點發(fā)送消息0123400INFINFINFINF表表2 超步超步0結(jié)束時的頂點值結(jié)束時的頂點值超步0結(jié)束時,所有頂點非活躍9.6 Pregel的應(yīng)用實例單源最短路徑9.6 Pregel的應(yīng)用實例單源最短路徑0123400INFINFINFINF表表5 超步超步1開始時的頂點值開始時的頂點值012340010030INF10表表6
27、超步超步1結(jié)束時的頂點值結(jié)束時的頂點值1234010030無10表表4 上一步(超步上一步(超步0)中發(fā)出的消息)中發(fā)出的消息超步1:頂點0:沒有收到消息,依然非活躍頂點1:收到消息100(唯一消息),被顯式喚醒,執(zhí)行計算,mindist變?yōu)?00,小于頂點值INF,頂點值修改為100,沒有出射邊,不需要發(fā)送消息,最后變?yōu)榉腔钴S頂點2:收到消息30,被顯式喚醒,執(zhí)行計算, mindist變?yōu)?0,小于頂點值INF,頂點值修改為30,有兩條出射邊,向頂點3發(fā)送消息90(即:30+60),向頂點1發(fā)送消息90(即:30+60),最后變?yōu)榉腔钴S頂點3:沒有收到消息,依然非活躍頂點4:收到消息10,被
28、顯式喚醒,執(zhí)行計算, mindist變?yōu)?0,小于頂點值INF,頂點值修改為10,向頂點3發(fā)送消息60(即:10+50),最后變?yōu)榉腔钴S剩余超步省略當(dāng)所有頂點非活躍,并且沒有消息傳遞,就結(jié)束9.7 Hama的安裝和使用9.7.1 Hama介紹9.7.2 安裝Hama的基本過程9.7.3 運行Hama實例PageRank9.7.1 Hama介紹n Hama是Google Pregel的開源實現(xiàn)n 與Hadoop適合于分布式大數(shù)據(jù)處理不同,Hama主要用于分布式的矩陣、graph、網(wǎng)絡(luò)算法的計算n Hama是在HDFS上實現(xiàn)的BSP(Bulk Synchronous Parallel)計算框架,彌
29、補Hadoop在計算能力上的不足9.7.2 安裝Hama的基本過程本實例中Hama具體運行環(huán)境如下: Ubuntu 14.04 Java JDK 1.7 Hadoop 2.6.0Hama (單機)安裝步驟如下:(1)安裝好合適版本的JDK和Hadoop(2)從官網(wǎng)下載Hama安裝文件,比如Hama 0.7.0版本(3)下載文件后,運用下面命令sudo tar -zxf /下載下載/hama-dist-0.7.0.tar.gz -C /usr/local 解壓至 /usr/local/hama ,再運用下面命令 sudo mv ./hama-0.7.0/ ./hama 修改目錄名稱方便使用(4)
30、進(jìn)入hama中的conf文件夾,修改hama-env.sh文件,在其中加入java的home路徑,即加入:export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd649.7.2 安裝Hama的基本過程9.7.2 安裝Hama的基本過程(5)修改 hama-site.xml文件,這是hama配置的核心文件,具體內(nèi)容如下: bsp.master.address local The address of the bsp master server. Either the literal string local or a host:port for distr
31、ibuted mode local The name of the default file system. Either the literal string local or a host:port for HDFS. 9.7.2 安裝Hama的基本過程 hama.zookeeper.quorum localhost Comma separated list of servers in the ZooKeeper Quorum. For example, ,. By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full lis
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保型包裝材料研發(fā)與市場銷售合同3篇
- 2025年度綠色有機大米直供采購合同3篇
- 2025年無證房買賣合同范本解讀與實施手冊6篇
- 二零二五年度裝配式建筑構(gòu)件安裝質(zhì)量保修合同3篇
- 現(xiàn)代文學(xué)史自考知識點:郭沫若的作品
- 二零二四年體育場館高空作業(yè)腳手架勞務(wù)分包合同2篇
- 2024版煙酒零售購銷協(xié)議樣本一
- 2025年度新型環(huán)保儲藏室設(shè)施買賣合同協(xié)議書3篇
- 2025年水渠工程水費結(jié)算與征收承包合同3篇
- 二零二五版生產(chǎn)線承包與智能化生產(chǎn)成本控制合同3篇
- GB/T 12914-2008紙和紙板抗張強度的測定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓(xùn)
- 家庭教養(yǎng)方式問卷(含評分標(biāo)準(zhǔn))
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
- 200m3╱h凈化水處理站設(shè)計方案
- 個體化健康教育記錄表格模板1
評論
0/150
提交評論