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 ଫଳାଫଳ ତିଆରି କରିବାର ନିର୍ଦ୍ଦେଶ ନୁହେଁ।