2014-05-10 60 views
0

使用我自己製作的Vagrant配置腳本在我提供的本地VirtualBox中安裝Cloudera集羣。供應方是在這裏:Cloudera Hadoop在EC2上使用Vagrant - 如何設置主機,IP和網絡?

https://github.com/theclue/cdh5-vagrant

一切工作正常在我當地的環境,但我現在面臨着如何添加EC2供應商的問題。由於提供者烘焙了大量人工調整的Cloudera羣集,因此使用Whirr來完成任務是沒有意義的。我會盡力堅持我心愛的流浪者。

的問題是網絡。羣集中的每個節點在子網10.10.50中共享一個私有IP。* - 這確保了節點之間可以相互通信,並且不能從外部訪問。

然後,我就硬編碼的/ etc這些私人IP地址/ hosts文件中的每個節點。該文件是每個節點的相同,它是這樣的:

10.10.50.5 CDH主 10.10.50.6 CDH節點1 10.10.50.7 CDH節點2

在供應過程中編輯的所有Hadoop配置文件階段,我使用了FQHN。

此外,masternode有一個第二個網絡接口,通過DHCP在我的真實LAN上橋接,因此以公共IP形式192.168.1。* 這是我虛擬集羣外部世界的大門。

但是當我建立EC2實例,我不知道無論是IP地址,也沒有提前FQHNs,我不認爲我可以設置機器有一個專用網絡接口。

這是設置UO網絡在這種條件下命名的最佳方式?

回答

0

EC2實例可以使用實例元數據服務(curl -s http://169.254.165.254/latest/meta-data/local-ipv4)查詢自己的IP,你可以設置專用網絡接口(ENIS)。另一種方法是使用標籤和AWS CLI查詢您的羣集配置。

爲了避免這種複雜性,可以考慮使用AWS彈性的Map Reduce到提供Hadoop集羣。

看到:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html https://aws.amazon.com/elasticmapreduce/

+0

這是非常好的!但我不確定它會解決我的問題。由於流浪節點是按順序創建的,因此當啓動並提供masternode時,數據節點尚未創建,因此我無法使用從節點的IP和主機名編輯主節點的配置文件。首先是雞還是雞蛋? –

+0

我可能已經解決了部分問題。我需要先設置主節點,然後從slave節點查詢master本身的主機名,然後從slave [n] ssh到master以更新conf/masters和conf/slave。這樣我就不需要節點之間的專用網絡,但實際上只有一些防火牆開放 - 很多開放 –

相關問題