2014-10-17 79 views
1

我正在嘗試使Oryx在Google Compute Engine上運行並運行。我創建了一個新的實例,並通過安裝羚羊:在Google Compute Engine上成功安裝Oryx?

git clone https://github.com/cloudera/oryx.git 
cd oryx 
mvn -DskipTests install 

,並保存此安裝作爲谷歌計算引擎(「羚羊圖像」)的圖像。

發現Oryx和Google文件系統的問題(Hadoop 2.4.1 and Google Cloud Storage connector for Hadoop)我一直在使用hdfs://作爲默認文件系統。

查找使用默認的Hadoop包在谷歌計算引擎啓動的問題(例如,沒有斯納皮庫,這些庫所需默認羚羊配置),我也嘗試創建包括我自己的Hadoop 2.4.1壓縮包與斯納皮遵循這些指令:How to enable Snappy/Snappy Codec over hadoop cluster for Google Compute Engine (旁註:這裏描述的jdk版本足以支持oryx?)。然後我用我的安裝羚羊保存的圖像(「羚羊形象」):

./bdutil --bucket <some-bucket> --image oryx-image -n $number \ 
    --env_var_files hadoop2_env.sh --default_fs hdfs 

和我保存的Hadoop tar包:

# File: hadoop2_env.sh 
HADOOP_TARBALL_URI="gs://<some-bucket>/hadoop-2.4.1.tar.gz" 

部署Hadoop的2.4.1(與斯納皮)集羣(默認文件系統= hdfs://)在Google Compute Engine上。仍然沒有運氣。

我可以成功運行在GCE測試Hadoop作業,測試在GCE斯納皮實現(見second link),並從主節點上測試GCE 本地羚羊工作:

# File: oryx.conf 
model.local-data = true 
model.local-computation = true 

唯一的問題是如何Oryx可以在Google Compute Engine上成功運行,其中包含hdfs://或gs://中的數據。

我已經找到了環境變量的變化等許多不同的指令,我不知道哪些是必要的,哪些可能導致更多的問題。我想知道是否有關於在GCE上安裝/運行oryx的文檔。也許有人已經經歷過相同的過程,並且可以提供指導和/或至少確認成功安裝?

與斯納皮GCE上的Hadoop安裝的2.4.1說明(second link找到)是一流的。我希望能找到一些關於所有步驟的詳細信息,以便讓oryx從頭開始在GCE上工作。

謝謝!

回答

2

我不知道這是一個直接的答案,但我可以在這裏談幾點意見。我認爲很多問題都是在GCE上啓動並運行標準的Hadoop安裝。

我從來沒有在GCE運行它,但這不應該直接也罷,它運行在裸機或GCE或EC2。它只是使用Hadoop。是的,它確實假設Hadoop和HDFS。 (我認爲硬編碼hdfs://可以被刪除,當然;我不知道這是否會使它與非HDFS文件系統一起工作)。因此,如果GCE默認有不同的文件系統,那麼您最好的選擇是是使用HDFS。

我想,我想斯納皮作爲一個Hadoop安裝的必要組成部分。如果你手動安裝Hadoop,是的,我認爲你必須採取更多的步驟。這就是爲什麼我會推薦一個(免費的,開源的)發行版爲您提供幫助。

它也應該爲你設置諸如HADOOP_CONF_DIR之類的東西,呃,我也傾向於認爲Hadoop設置的必要部分,至少在客戶端。

任何版本的Java 6或更高版本都可以。

是否可以嘗試發行?它可能不那麼痛苦。對不起,我沒有在這裏進一步的說明,但它似乎是一個GCE < - > Hadoop問題更多,Hadoop < - > Oryx。如果應用程序可以改變方式,使其更好地適應GCE,我可以做到這一點。

+0

感謝您的輸入!我在單個GCE虛擬機上以僞分佈模式安裝CDH5,並取得了成功。因此GCE <-> Hadoop診斷可能是正確的。我面臨的問題是讓GCE啓動一個具有適當版本的Hadoop的集羣來與Oryx一起工作。你是否知道oryx用戶社區中的任何人都能成功?當然,修改Oryx以使用GCE提供的默認版本的Hadoop 2.4.1也可以解決我的問題! – Rich 2014-10-20 21:12:43

+0

你看到什麼問題?它適用於任何合理的Hadoop版本,儘管與任何Hadoop應用程序一樣,Hadoop 1.x-ish版本與Hadoop 2.x-ish版本也需要不同的版本。你可能有錯誤的構建。我目前在Hadoop 2.5.1中使用它。 – 2014-10-20 22:27:42

+0

當前錯誤以Oryx-/user/rich-0-BuildTreesStep開頭:Text(hdfs:// total-cdh -m:8020/user/rich/00000/inbound)+ dis ... ID = 1(1/1)(1):Job failed!... com.cloudera.oryx.computation.common.JobException:Oryx-/user/rich-0-BuildTreesStep在狀態爲FAILED失敗。 **一個基本問題:**谷歌部署了一個集羣,主節點和工作節點,並安裝了Hadoop。如果我從主節點運行oryx作業,必須在所有**節點上安裝oryx還是隻安裝master?即我知道oryx在分佈式hadoop系統上運行,但是oryx安裝是否需要跨集羣進行分佈? – Rich 2014-10-22 16:09:18

0

我發現了一個不太典雅的「解決方案」來解決這個問題。谷歌計算引擎提供的標準問題Hadoop-2.4.1確實有實際上有活潑的庫,它們只是不在「正確」的地方。因此,我將所有快速庫文件從其默認位置(/ usr/lib /)複製到java庫目錄。顯然,只需要這些線路之一,但我還沒有花時間去發現哪一個是正確的:

sudo cp /usr/lib/lib* /usr/local/lib 
sudo cp /usr/lib/lib* /usr/java/jdk1.7.0_55/lib/amd64/jli 
sudo cp /usr/lib/lib* /usr/java/jdk1.7.0_55/lib/amd64 
sudo cp /usr/lib/lib* /usr/java/jdk1.7.0_55/lib 

當然這與其說是作爲一個解決方案,因爲周圍的工作。我想將快速庫目錄添加到正確的路徑也會起作用。

相關問題