O fabrică de socketuri SOCKS în configurația clientului Hadoop
Încărcați împreună punctul final SOCKS și clasa fabricii, apoi țineți cont de suprascrierile fabricii specifice protocolului din Hadoop.
Hadoop are nevoie atât de punctul final SOCKS, cât și de o fabrică de socketuri de client care îl citește. Adăugați ambele în core-site.xml încărcat pentru operațiune:
<property>
<name>hadoop.socks.server</name>
<value>proxy.example.net:1080</value>
</property>
<property>
<name>hadoop.rpc.socket.factory.class.default</name>
<value>org.apache.hadoop.net.SocksSocketFactory</value>
</property>În Hadoop 3.4.2, SocksSocketFactory citește punctul final host:port din Configuration-ul său și creează socketuri Java pe acea rută. Pentru un test TCP public permis fără autentificare de proxy, o intrare compatibilă din lista de proxy SOCKS poate furniza hadoop.socks.server; confirmați accesul la toate destinațiile și porturile de protocol necesare.
Înainte de a presupune că a fost selectată valoarea implicită, inspectați cheia specifică protocolului: NetUtils verifică mai întâi hadoop.rpc.socket.factory.class., apoi numele simplu al clasei de protocol. Folosește valoarea implicită doar când acea căutare nu selectează nicio fabrică.
Prin urmare, o valoare dintr-un alt fișier încărcat poate menține activă fabrica veche. Inspectați Configuration-ul efectiv al clientului, nu un singur fișier XML de pe un server.
Acest lucru se aplică acolo unde Hadoop folosește fabrica TCP respectivă. Ea păstrează comportamentul componentei privind adresa de destinație și DNS; alegerea proxy-ului nu este o instrucțiune de a inventa rezultate DNS de înlocuire.