SOCKS სოკეტის ფაბრიკა Hadoop-ის კლიენტის კონფიგურაციაში
ჩატვირთეთ 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 host:port ბოლო წერტილს კითხულობს საკუთარი Configuration-იდან და ქმნის Java სოკეტებს ამ მარშრუტით. პროქსის ავთენტიფიკაციის გარეშე დაშვებული საჯარო TCP ტესტისთვის SOCKS პროქსების სიიდან თავსებადი ჩანაწერმა შეიძლება მოგვცეს hadoop.socks.server; დაადასტურეთ წვდომა ყველა საჭირო პროტოკოლურ დანიშნულებასა და პორტზე.
სანამ ჩათვლით, რომ ნაგულისხმევია არჩეული, შეამოწმეთ პროტოკოლის სპეციფიკური გასაღები: NetUtils ჯერ ამოწმებს hadoop.rpc.socket.factory.class.-ს, შემდეგ პროტოკოლის კლასის მარტივ სახელს. ნაგულისხმევს იყენებს მხოლოდ მაშინ, როცა ეს ძიება ვერცერთ ფაბრიკას არ ირჩევს.
ამიტომ სხვა ჩატვირთული ფაილიდან მიღებულმა მნიშვნელობამ შეიძლება ძველი ფაბრიკა აქტიურად შეინარჩუნოს. შეამოწმეთ კლიენტის ეფექტური Configuration და არა ერთი XML ფაილი სერვერზე.
ეს ეხება იმ ადგილებს, სადაც Hadoop ამ TCP ფაბრიკას იყენებს. ის ინარჩუნებს კომპონენტის დანიშნულების მისამართისა და DNS-ის ქცევას; პროქსის არჩევა არ არის მითითება ჩანაცვლებითი DNS შედეგების გამოგონებისთვის.