自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何讓你的作業(yè)在Hadoop集群中真正實現(xiàn)分布式運行?

運維 系統(tǒng)運維 分布式 Hadoop
搭建過hadoop之后,如何讓程序在hadoop集群中分布式運行成了一件令人頭痛的事。如何讓你的作業(yè)在Hadoop集群中真正實現(xiàn)分布式運行?本文有解決方案,敬請關(guān)注!

 搭建過hadoop之后,如何讓程序在hadoop集群中分布式運行成了一件令人頭痛的事。

  可能有人會說在eclipse的類文件中右鍵點擊-》“run on hadoop”不就行了嘛,注意:eclipse中的“run on hadoop”默認只是運行在單機上的,因為要想在集群中讓程序分布式運行還要經(jīng)歷上傳類文件、分發(fā)到各個節(jié)點等過程的,一個簡單的“run on hadoop”只是啟動了本地hadoop類庫來運行你的程序而已,在Hadoop JobTracker的web管理頁面(http://localhost:50030)上是看不到任何作業(yè)信息的,因為你的作業(yè)根本就沒有運行在集群上。

  《Hadoop:the Definitive Guide 3rd edition》上介紹的是使用打jar包的方式,然后用hadoop腳本命令的jar選項來運行分布式程序。如下所示:

 hadoop jar hadoop-examples.jar v3.MaxTemperatureDriver -conf conf/hadoop-cluster.xml input/ncdc/all max-temp

  但問題是這本書里面是使用maven來編譯類文件的,通過pom.xml他很容易就解決了jar包的依賴問題,這讓我等平常使用eclipse來編程的灰常依賴IDE的程序猿們情何以堪啊,maven的配置及使用方法到現(xiàn)在還沒搞懂,索性不學了,自己打jar包吧

  自己打jar包就要解決類文件引用的問題,以我在程序中使用的Hbase的jar包(hbase-0.94.3.jar)為例,我先后嘗試了各種試圖解決類文件引用及打jar包的方法,無論如何,總會提示我找不到org.apache.hadoop.hbase.util.Bytes class文件(它就在hbase-0.94.3.jar中),以下為我嘗試的各種方法:

1.設(shè)置classpath到hbase-0.94.3.jar
2.設(shè)置HADOOP_CLASSPATH到hbase-0.94.3.jar
3.設(shè)置HADOOP_CLASSPATH到HBASE_HOME
4.把hbase-0.94.3.jar打包到運行的jar包中(其中包括了1.直接打進jar包;2.放入lib文件夾再打入jar包;3.通過manifest文件設(shè)置Class-Path選項指向hbase-0.94.3.jar)
5.把hbase-0.94.3.jar復(fù)制到HADOOP_HOME/lib下面

直至這個時候我已要接近崩潰了,要知道光是解決這個問題已花費了我接近三天的時間,仍是一無所獲,索性不做了改弄其他東西,如此10多天過去了。

  等忙完這10多天,另一個解決問題的角度出現(xiàn)了,既然自己在命令行下打包不行,為何不使用eclipse呢(說到底還是屈服于IDE了,我鄙視我自己?。?。剛開始是直接把整個項目導(dǎo)出成jar包,但這樣只是包含了自己編寫的源文件及l(fā)ib文件夾下的依賴jar包,并沒有包含hadoop-core之類的引用第三方j(luò)ar包,按著這個思路就去google了下如何完整的把引用的第三方j(luò)ar包也包含進來的打包方式,還真給找到了:Fat-jar!(下載地址

  下載之后解壓縮,會得到一個名為net.sf.fjep.fatjar_0.0.31.jar(版本不同,名字可能不同)的jar包,把它拷到eclipse_home/plugins中然后重啟eclipse,如果在Windows=>prefernce=>fat jar preference看到它就說明已經(jīng)安裝成功了。

  接下來,在需要導(dǎo)出的Java項目上右擊,選擇“導(dǎo)出”,選擇”其他”中的”Fat Jar EXporter”,即可進行打包操作。注意選擇好”Main-class”以及需要打包的文件。“finish”之后你就會得到一個完整的jar包了,這樣便可以在任何地方通過hadoop jar命令來運行了,以我的程序為例:

 hadoop jar HDG3.jar cf/RateDataImporter  //HDG3.jar為我的jar包的名字,共64Mb,cf/RateDataImporter為我要運行的類文件名字

  在jobtracker的web管理界面可以很清楚的看到此作業(yè)的信息,以及正在運行的進度、狀態(tài)等,感覺很爽的有木有(雖然我的集群只有兩個節(jié)點)!

  

  至此,折騰了許久的hadoop集群運行分布式作業(yè)問題終于解決!

責任編輯:黃丹 來源: 博客
相關(guān)推薦

2017-08-10 10:17:32

Hadoop分布式搭建

2019-09-26 15:43:52

Hadoop集群防火墻

2010-06-03 14:42:47

Hadoop分布式集群

2018-07-17 15:05:34

京東Hadoop集群分布式資源管理

2024-02-20 09:50:02

Redis分布式

2010-06-03 19:46:44

Hadoop

2018-08-28 15:47:03

人工智能深度學習機器學習

2022-03-21 19:44:30

CitusPostgreSQ執(zhí)行器

2012-09-19 14:09:20

Hadoop開源

2017-12-07 15:24:10

Hadoop大數(shù)據(jù)服務(wù)器

2012-09-06 09:36:17

谷歌NatiShalom數(shù)據(jù)處理

2023-08-21 19:10:34

Redis分布式

2011-09-28 11:22:52

Hadoop

2012-05-21 16:28:29

LinuxHadoop

2012-05-21 10:19:31

Hadoop

2011-12-22 09:21:04

云計算Hadoop大數(shù)據(jù)

2024-01-31 09:54:51

Redis分布式

2017-02-28 09:48:30

2022-10-27 10:44:14

分布式Zookeeper

2014-07-15 11:15:44

hadoop分布式部署
點贊
收藏

51CTO技術(shù)棧公眾號