Hadoop ਦੇ ਕਲਾਇੰਟ ਕਨਫਿਗਰੇਸ਼ਨ ਵਿੱਚ SOCKS ਸਾਕਟ ਫੈਕਟਰੀ
SOCKS ਐਂਡਪੁਆਇੰਟ ਅਤੇ ਫੈਕਟਰੀ ਕਲਾਸ ਨੂੰ ਇਕੱਠੇ ਲੋਡ ਕਰੋ, ਫਿਰ Hadoop ਦੇ ਪ੍ਰੋਟੋਕੋਲ-ਵਿਸ਼ੇਸ਼ ਫੈਕਟਰੀ ਓਵਰਰਾਈਡਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ।
Hadoop ਨੂੰ SOCKS ਐਂਡਪੁਆਇੰਟ ਅਤੇ ਇਸਨੂੰ ਪੜ੍ਹਨ ਵਾਲੀ ਕਲਾਇੰਟ ਸਾਕਟ ਫੈਕਟਰੀ ਦੋਵੇਂ ਚਾਹੀਦੀਆਂ ਹਨ। ਦੋਵਾਂ ਨੂੰ ਕਾਰਵਾਈ ਲਈ ਲੋਡ ਕੀਤੀ core-site.xml ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ:
<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>Hadoop 3.4.2 ਵਿੱਚ, SocksSocketFactory ਆਪਣੀ Configuration ਤੋਂ host:port ਐਂਡਪੁਆਇੰਟ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਉਸ ਰਸਤੇ ਨਾਲ Java ਸਾਕਟ ਬਣਾਉਂਦਾ ਹੈ। ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ TCP ਟੈਸਟ ਲਈ, SOCKS ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਦੀ ਕੋਈ ਅਨੁਕੂਲ ਐਂਟਰੀ hadoop.socks.server ਦੇ ਸਕਦੀ ਹੈ; ਸਾਰੇ ਲੋੜੀਂਦੇ ਪ੍ਰੋਟੋਕੋਲ ਟਿਕਾਣਿਆਂ ਅਤੇ ਪੋਰਟਾਂ ਤੱਕ ਪਹੁੰਚ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।
ਡਿਫ਼ੌਲਟ ਚੁਣਿਆ ਗਿਆ ਮੰਨਣ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰੋਟੋਕੋਲ-ਵਿਸ਼ੇਸ਼ ਕੁੰਜੀ ਦੀ ਜਾਂਚ ਕਰੋ: NetUtils ਪਹਿਲਾਂ hadoop.rpc.socket.factory.class. ਫਿਰ ਪ੍ਰੋਟੋਕੋਲ ਕਲਾਸ ਦਾ ਸਧਾਰਨ ਨਾਮ ਵੇਖਦਾ ਹੈ। ਇਹ ਡਿਫ਼ੌਲਟ ਸਿਰਫ਼ ਤਦ ਵਰਤਦਾ ਹੈ ਜਦੋਂ ਉਹ ਖੋਜ ਕੋਈ ਫੈਕਟਰੀ ਨਹੀਂ ਚੁਣਦੀ।
ਇਸ ਲਈ ਕਿਸੇ ਹੋਰ ਲੋਡ ਕੀਤੀ ਫਾਈਲ ਦਾ ਮੁੱਲ ਪੁਰਾਣੀ ਫੈਕਟਰੀ ਨੂੰ ਸਰਗਰਮ ਰੱਖ ਸਕਦਾ ਹੈ। ਸਰਵਰ ਉੱਤੇ ਇੱਕ XML ਫਾਈਲ ਦੀ ਬਜਾਏ ਪ੍ਰਭਾਵੀ ਕਲਾਇੰਟ Configuration ਦੀ ਜਾਂਚ ਕਰੋ।
ਇਹ ਉੱਥੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ ਜਿੱਥੇ Hadoop ਉਹ TCP ਫੈਕਟਰੀ ਵਰਤਦਾ ਹੈ। ਇਹ ਹਿੱਸੇ ਦੇ ਟਿਕਾਣਾ-ਪਤੇ ਅਤੇ DNS ਵਿਵਹਾਰ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦਾ ਹੈ; ਪ੍ਰੌਕਸੀ ਚੁਣਨਾ ਬਦਲਵੇਂ DNS ਨਤੀਜੇ ਘੜਨ ਦਾ ਨਿਰਦੇਸ਼ ਨਹੀਂ ਹੈ।