2015-12-21 58 views
2

我想在使用Docker的多裸集羣中使用Hadoop 2.3.0。我有一個主容器和一個從容器(在第一個設置中)。當Master和Slave容器位於同一個主機(因此,同一個Flannel子網)時,Hadoop可以很好地工作。但是,如果主設備和從設備位於不同的裸機節點(因此,不同的絨布子網),它根本不起作用(我得到一個連接拒絕錯誤)。兩個容器都可以ping通並彼此通信,所以沒有連通性問題。出於某種原因,hadoop似乎需要羣集中的所有節點都位於同一個子網中。有沒有辦法繞過這個?分佈在不同子網中的Hadoop集羣(Docker + Flannel)

謝謝

回答

1

ssh和ping是不夠的。如果你有iptables或其他防火牆,你需要禁用或打開端口。只要主機可以互相通信並且端口已打開,您就可以設置羣集。運行telnet <namenode> <port>以確保主機在所需的端口上進行通信。

1

我認爲讓單獨的絨布子網中的節點引入一些導致此類問題的NAT相關規則。

參見下面的鏈接似乎有解決類似問題的 Re: Networking Problem in creating HDFS cluster.

Hadoop的使用一束用於節點之間的通信的其它端口,在上述假定這些端口解除阻塞。