2011-11-07 183 views
0

我試圖在亞馬遜雲上進行設置以運行一些hadoop MapReduce作業,但我努力成功地創建一個集羣。我已經下載了ec2文件,有我的證書和密鑰對文件,但我相信這是AMI導致我的麻煩。如果我試圖運行帶有主節點和n個從節點的羣集,則使用標準兼容AMI啓動n + 1個實例,然後在終端中運行代碼「hadoop-ec2啓動羣集名稱n」。主節點成功,但從節點開始啓動時出現錯誤,說「缺少參數-h(缺少AMI)」,但我不完全確定如何進展。亞馬遜雲上的Hadoop

此外,我的一些工作將需要改變hadoops參數設置(特別是mapred-site.xml配置文件),是否有可能改變這個文件,如果有,我該如何獲得訪問權限? hadoop已經安裝在亞馬遜機器上了,這個文件可以訪問和修改嗎?

感謝

回答

1

你試過Amazon Elastic MapReduce?這是一個簡單的API,可根據需要調用指定大小的Hadoop集羣。

然後手動創建自己的羣集比較容易。

但是,一旦工作流程默認完成,它會關閉集羣,並將輸出保留在S3上。如果你需要的只是簡單的搗鼓,那麼這可能是一條路。

如果您需要永久存儲HDFS內容(例如,如果您在Hadoop之上運行HBase),您實際上可能需要在EC2上擁有自己的羣集。在這種情況下,您可能會發現Cloudera爲Amazon EC2分發Hadoop很有用。

上的節點

塗改Hadoop配置,將開始可能使用EC2引導操作

問:如何配置我的工作流的Hadoop設置?

Elastic MapReduce默認Hadoop配置適用於大多數工作負載。但是,根據您的作業流程的具體內存和處理要求,調整這些設置可能是適當的。例如,如果您的作業流程任務需要大量內存,您可以選擇每個核心使用更少的任務,並減少作業跟蹤器堆大小。對於這種情況,可以使用預定義的引導操作來配置啓動時的作業流程。有關配置詳細信息和使用說明,請參閱開發人員指南中的配置內存強化引導操作。還提供了一個額外的預定義引導操作,允許您將羣集設置自定義爲您所選擇的任何值。有關使用說明,請參閱開發者指南中的Configure Hadoop Bootstrap Action

關於要啓動集羣的方式,請澄清:

如果我試圖運行具有主節點和n個從節點的羣集,我開始使用標準的n + 1個實例然後在終端中運行代碼「hadoop-ec2啓動集羣名稱n」。主節點成功,但從節點開始啓動時出現錯誤,說「缺少參數-h(缺少AMI)」,但我不完全確定如何進展。

你究竟如何嘗試啓動它?你使用的是什麼AMI?

+0

首先我使用了我能找到的任何AMIs。我在終端上運行一段代碼,比如「ec2-describe-images -o amazon」,然後選擇AMI工作的任何一個;然後使用「ec2-run-instances amixxxxxx -n 5 -k keypair」啓動具有此AMI的實例,最後嘗試啓動具有「hadoop-ec2啓動集羣名稱4」的集羣(這是針對具有4個從集羣的集羣節點)。說實話,我對雲很陌生,並不知道自己在做什麼。 –

+0

我希望改變的參數是hadoop的工作參數,如io.sort.mb(用於在映射和縮小階段之間進行排序的緩衝區內存量)等...它們通過更改文件(mapred -site.xml)存儲在hadoop文件夾中。 –

+0

@Jonathan Viccary好的,我看到,您正在使用Hadoop的src/contrib/ec2/bin中的「hadoop-ec2」腳本。如果你想以這種方式啓動hadoop集羣......我看了看腳本,發現它自動啓動實例 - 你不必手動調用ec2-run-instances。但你必須配置它:http://wiki.apache.org/hadoop/AmazonEC2#Setting_up –