z kluczowych podmiotów żądań klienta HDFS obchodzenia.
Jeżeli wniosek ten pierwszy? Chodzi mi o to, w jaki sposób klient wie, który numerenena jest aktywny?
Dla klienta/sterownika nie ma znaczenia, który numer węzłowy jest aktywny. ponieważ kwerendujemy na HDFS z identyfikatorem nameservice zamiast nazwą hosta namenode. nameservice automatycznie przeniesie żądania klientów do aktywnego Namenode.
Przykład: hdfs://nameservice_id/rest/of/the/hdfs/path
Objaśnienie:
jak to hdfs://nameservice_id/
prace i jakie są confs uczestniczące w nim?
W hdfs-site.xml
plik
Tworzenie Nazw dodając id do niego (tutaj nameservice_id
jest mycluster
)
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
<description>Logical name for this new nameservice</description>
</property>
Teraz określić identyfikatory namenode celu ustalenia namenodes w klastrze
dfs.ha.namenodes.[$nameservice ID]
:
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
<description>Unique identifiers for each NameNode in the nameservice</description>
</property>
następnie połączyć identyfikatory namenode z gospodarzami namenode
dfs.namenode.rpc-address.[$nameservice ID].[$name node ID]
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>machine1.example.com:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>machine2.example.com:8020</value>
</property>
Następnie określ klasy Java że HDFS klienci używają do kontaktu Active NameNode tak, że klient DFS używa tej klasy aby określić, który NameNode aktualnie obsługuje żądania klientów.
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
W końcu adres URL HDFS będzie taki po zmianie konfiguracji.
hdfs://mycluster/<file_lication_in_hdfs>
Aby odpowiedzieć na to pytanie Brałem tylkokilka konfiguracji. sprawdź, czy detailed documentation zawiera informacje o tym, jak maszyny Namenodes, Journalnodes i Zookeeper tworzą Namenode HA w HDFS.
Myślę, że nie zrozumiałeś poprawnie mojego pytania. Używam aplikacji java do żądania.Moje pytanie, na którym namenode wykonuję moje żądania. W tym celu muszę wiedzieć, który identyfikator jest aktywny – user2846382
@ user2846382: musisz ustawić konfigurację w klasie sterownika. Odśwież zaktualizowaną odpowiedź. –
, Wielkie dzięki za cenną odpowiedź. To działa dla mnie .. – user2846382