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 جایگزین نیست.

مقالات مرتبط