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 חלופיות.

מאמרים קשורים