เปลี่ยน IP ที่ถูกผูกไว้ที่ทำงานบนพอร์ต 7077 - Apache Spark

สามารถกำหนดค่า Spark เพื่อให้สามารถผูกเข้ากับที่อยู่ 127.0.1.1 สำหรับพอร์ต 7077 แทนการเชื่อมโยงกับ 0.0.0.0 แทนได้ เช่นเดียวกับพอร์ต 8080 ที่ถูกผูกไว้:

netstat -pln
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:7077          0.0.0.0:*               LISTEN      2864/java
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      2864/java
tcp        0      0 127.0.1.1:6066          0.0.0.0:*               LISTEN      2864/java
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -
udp        0      0 192.168.192.22:123      0.0.0.0:*                           -
udp        0      0 127.0.0.1:123           0.0.0.0:*                           -
udp        0      0 0.0.0.0:123             0.0.0.0:*                           -
udp        0      0 0.0.0.0:21415           0.0.0.0:*                           -
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     7195     -                   /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     SEQPACKET  LISTENING     405      -                   /run/udev/control

เหตุผลที่ฉันถามสิ่งนี้ก็คือ ฉันไม่สามารถเชื่อมต่อผู้ปฏิบัติงานกับโหนดหลักได้ และฉันคิดว่าปัญหาคือไม่สามารถค้นพบ IP ต้นแบบได้

เกิดข้อผิดพลาดเมื่อพยายามเชื่อมต่อทาสกับมาสเตอร์:

15/04/02 21:58:18 WARN Remoting: Tried to associate with unreachable remote address [akka.tcp://sparkMaster@raspberrypi:7077]. Address is now gated for 5000 ms, all messages to this address will be delivered to dead letters. Reason: Connection refused: raspberrypi/192.168.192.22:7077
15/04/02 21:58:18 INFO RemoteActorRefProvider$RemoteDeadLetterActorRef: Message [org.apache.spark.deploy.DeployMessages$RegisterWorker] from Actor[akka://sparkWorker/user/Worker#1677101765] to Actor[akka://sparkWorker/deadLetters] was not delivered. [10] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.

person blue-sky    schedule 02.04.2015    source แหล่งที่มา


คำตอบ (1)


ใน spark-env.sh คุณสามารถตั้งค่า SPARK_MASTER_IP=<ip>

ชื่อโฮสต์ก็ใช้งานได้ดีเช่นกัน (ผ่าน SPARK_STANDALONE_MASTER=<hostname>) เพียงตรวจสอบให้แน่ใจว่าผู้ปฏิบัติงานเชื่อมต่อกับชื่อโฮสต์เดียวกันกับที่มาสเตอร์ผูกไว้ทุกประการ (เช่น ที่อยู่ spark:// ที่แสดงใน Spark master UI)

person Marius Soutier    schedule 02.04.2015
comment
คุณหมายถึงเพิ่มในรูปแบบนี้ (ไม่รวมเครื่องหมายคำพูด) : SPARK_MASTER_IP ‹MASTER_ADDRESS› ? - person blue-sky; 03.04.2015
comment
ฉันได้ลองตั้งชื่อโฮสต์ด้วยตนเองโดยใช้ ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://192.168.192.22:7077 แต่เนื่องจากต้นแบบไม่ยอมรับการเชื่อมต่อกับ IP นี้ดังที่เห็นได้ในคำถาม มันไม่ได้เชื่อมต่อ - person blue-sky; 03.04.2015
comment
ขอบคุณมาก. ฉันเพิ่ม Export SPARK_STANDALONE_MASTER=raspberrypi Export SPARK_MASTER_IP=192.168.192.22 ไปยัง /conf/start-env.sh บนโหนดหลัก จากนั้นโหนดหลักที่ลงทะเบียน Spark จะเชื่อมต่อกับ UI เป็น URL: spark://192.168.192.22:7077 คำสั่งที่ใช้ ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://192.168.192.22:7077 เพื่อเชื่อมต่อกับต้นแบบจากผู้ปฏิบัติงาน ดูดีเลย ขอบคุณอีกครั้ง สิ่งนี้ทำให้ฉันดีขึ้นจริงๆ ไม่แน่ใจว่าฉันต้องการทั้งสองพารามิเตอร์ใน start-env.sh หรือไม่ แต่จะคงไว้เหมือนเดิม ขอบคุณ - person blue-sky; 03.04.2015