2015-05-29 57 views
0

我試圖使用AWS作爲可伸縮的分析工具。我使用apache zeppelin作爲Spark羣集的交互式外殼,並嘗試使用一縷陰謀。這是一個問題,因爲一縷陰謀的繪圖方法是根據我認爲是碼頭服務器的情況啓動一個Web應用程序。這在我的本地機器上運行良好,但在AWS上它不起作用,因爲它提取私有IP地址而不是公用的IP地址。在AWS上使用來自java的公共IP getCanonicalHostName方法

在一縷之內,它使用java.net.InetAddress.getLocalHost.getCanonicalHostName 來檢索機器的IP地址。這總是返回私人FQDN地址。如何讓java函數返回公開IP地址或AWS提供的FQDN,而無需在每次啓動集羣並重建時都進行硬編碼?

我試着改變/ etc/hosts和/ etc/hostname,但都沒有效果。我不知道java.net.InetAddress.getLocalHost.getCanonicalHostName 從哪裏得到它的地址。

任何幫助或建議非常感謝。

院長

回答

0

我是個白癡。這是一個端口問題。看起來,儘管顯示私有IP,它仍然可以在公共IP上使用。

關掉內部防火牆sudo ufw disable(在ubuntu vm上,無論如何,請查找替代命令爲你的味道)。

接下來,轉到您的帳戶的AWS EC2管理頁面,然後單擊您實例的安全組。

在安全組頁面上,編輯入站規則並添加自定義tcp規則。

在端口下,放入'1 - 65536',放在源'0.0.0.0/0'下。請注意,您剛剛完成的操作是打開您實例上的所有端口,以接收來自任何地方的所有傳入流量。你剛剛放下了一個歡迎墊到互聯網。我不建議長期這樣做,這是非常愚蠢的。它爲我設立的原則證明起到了作用,而這正是我所要做的。我現在正在研究如何確保安全。

感謝大家的剋制,不嘲笑我做白癡。