ใช้เซิร์ฟเวอร์ประวัติ Apache Spark แบบขยายเพื่อแก้จุดบกพร่องและวินิจฉัยแอปพลิเคชัน Apache Spark

บทความนี้ให้คําแนะนําเกี่ยวกับวิธีการใช้เซิร์ฟเวอร์ประวัติ Apache Spark แบบขยายเพื่อแก้ไขจุดบกพร่องและวินิจฉัยว่าเสร็จสมบูรณ์และเรียกใช้แอปพลิเคชัน Apache Spark

เข้าถึงเซิร์ฟเวอร์ประวัติ Apache Spark

เซิร์ฟเวอร์ประวัติ Apache Spark เป็นส่วนติดต่อผู้ใช้เว็บสําหรับแอปพลิเคชัน Spark ที่เสร็จสมบูรณ์และเรียกใช้ คุณสามารถเปิดอินเทอร์เฟสผู้ใช้เว็บ Apache Spark (UI) จากสมุดบันทึกตัวบ่งชี้ความคืบหน้าหรือหน้ารายละเอียดแอปพลิเคชัน Apache Spark ได้

เปิด UI ของเว็บ Spark จากสมุดบันทึกตัวบ่งชี้ความคืบหน้า

เมื่อทริกเกอร์งาน Apache Spark ปุ่มเพื่อเปิด Spark web UI จะอยู่ภายใน ตัวเลือกการดําเนินการ เพิ่มเติมในตัวบ่งชี้ความคืบหน้า เลือก Spark web UI และรอสองสามวินาที จากนั้นหน้า Spark UI จะปรากฏขึ้น

สกรีนช็อตที่แสดงการเปิด UI ของเว็บ Spark จากสมุดบันทึกตัวบ่งชี้ความคืบหน้า

เปิด UI ของเว็บ Spark จากหน้ารายละเอียดแอปพลิเคชัน Apache Spark

นอกจากนี้ คุณยังสามารถเปิด UI ของเว็บ Spark ผ่านหน้ารายละเอียดแอปพลิเคชัน Apache Spark ได้ เลือก ฮับ การตรวจสอบทางด้านซ้ายของหน้า จากนั้นเลือกแอปพลิเคชัน Apache Spark หน้ารายละเอียดของแอปพลิเคชันจะปรากฏขึ้น

สกรีนช็อตที่แสดงการเปิด UI ของเว็บ Spark จากหน้ารายละเอียดแอปพลิเคชัน Apache Spark

สําหรับแอปพลิเคชัน Apache Spark ที่มีสถานะกําลังทํางาน ปุ่มจะแสดง Spark UI เลือก Spark UI และหน้า Spark UI จะปรากฏขึ้น

สกรีนช็อตที่แสดงปุ่มแสดง ui ของ Spark ในสถานะทํางาน

สําหรับแอปพลิเคชัน Apache Spark ที่มีสถานะสิ้นสุดลง สถานะสิ้นสุดสามารถหยุด ได้ล้มเหลว ยกเลิก หรือเสร็จสมบูรณ์ ปุ่มจะแสดง เซิร์ฟเวอร์ประวัติ Spark เลือก เซิร์ฟเวอร์ ประวัติ Spark และหน้า Spark UI จะปรากฏขึ้น

สกรีนช็อตที่แสดงปุ่มแสดง ui ของ Spark ในสถานะสิ้นสุด

แท็บกราฟในเซิร์ฟเวอร์ประวัติ Apache Spark

เลือก ID งานสําหรับงานที่คุณต้องการดู จากนั้นเลือก กราฟ บนเมนูเครื่องมือเพื่อดูมุมมองกราฟงาน

ภาพรวม

คุณสามารถดูภาพรวมของงานของคุณในกราฟงานที่สร้างขึ้นได้ ตามค่าเริ่มต้น กราฟจะแสดงงานทั้งหมด คุณสามารถกรองมุมมองนี้ตาม ID งาน

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและ ID งานกราฟงาน

การแสดงผล

ตาม ค่าเริ่มต้น การแสดงความคืบหน้า จะถูกเลือกไว้ คุณสามารถตรวจสอบโฟลว์ข้อมูลได้โดยการเลือก อ่าน หรือ เขียน ในรายการดรอปดาวน์ แสดงผล

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและการแสดงกราฟงาน

โหนดกราฟจะแสดงสีที่แสดงในคําอธิบายแผนภูมิความร้อน

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและแผนที่ความร้อนของกราฟงาน

เล่น

เมื่อต้องการเล่นงาน ให้เลือก เล่น คุณสามารถเลือก หยุด เมื่อใดก็ได้เพื่อหยุด สีของงานจะแสดงสถานะที่แตกต่างกันเมื่อเล่น:

สี ความหมาย
สีเขียว สําเร็จแล้ว: งานเสร็จสมบูรณ์แล้ว
สีส้ม ลองใหม่อีกครั้ง: อินสแตนซ์ของงานที่ล้มเหลวแต่ไม่มีผลต่อผลลัพธ์สุดท้ายของงาน งานเหล่านี้มีอินสแตนซ์ที่ซ้ํากันหรือลองใหม่ซึ่งอาจสําเร็จในภายหลัง
น้ำเงิน กําลังเรียกใช้: งานกําลังทํางานอยู่
ชนผิวขาว กําลังรอหรือข้าม: งานกําลังรอเรียกใช้ หรือมีการข้ามลําดับขั้น
สีแดง ล้มเหลว: งานล้มเหลว

รูปภาพต่อไปนี้แสดงสีสถานะสีเขียว สีส้ม และสีน้ําเงิน

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและตัวอย่างกราฟสีของงานที่กําลังทํางาน

รูปต่อไปนี้แสดงสีสถานะสีเขียวและสีขาว

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและตัวอย่างกราฟสีของงาน ข้าม

รูปต่อไปนี้แสดงสีแดง และสีเขียวสีสถานะ

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและตัวอย่างกราฟสีของงาน ล้มเหลว

หมายเหตุ

เซิร์ฟเวอร์ประวัติ Apache Spark ช่วยให้การเล่นสําหรับแต่ละงานที่เสร็จสมบูรณ์ (แต่ไม่อนุญาตให้เล่นงานที่ไม่สมบูรณ์)

Zoom

ใช้เมาส์เลื่อนเพื่อย่อและขยายในกราฟงาน หรือเลือก ย่อ/ขยายเพื่อให้ พอดีกับหน้าจอ

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและการซูมกราฟงานให้พอดี

คำแนะนำเครื่องมือ

วางเมาส์บนโหนดกราฟเพื่อดูคําแนะนําเครื่องมือเมื่อมีงานที่ล้มเหลวและเลือกขั้นตอนเพื่อเปิดหน้าลําดับขั้น

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและคําแนะนําเครื่องมือของกราฟงาน

บนแท็บกราฟงาน ขั้นจะมีคําแนะนําเครื่องมือและไอคอนขนาดเล็กปรากฏขึ้นหากงานมีงานที่ตรงตามเงื่อนไขต่อไปนี้:

สภาวะ คำอธิบาย
การเบ้ข้อมูล ขนาด > การอ่านข้อมูลเฉลี่ยของขนาดการอ่านข้อมูลของงานทั้งหมดภายในลําดับขั้นนี้ * 2 และขนาด > การอ่านข้อมูล 10 MB
เวลาไม่เบ้ เวลา > การดําเนินการเฉลี่ยของงานทั้งหมดภายในลําดับขั้นนี้ * 2 และเวลา > การดําเนินการ 2 นาที

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและไอคอนกราฟงานที่เบ้

คําอธิบายโหนดกราฟ

โหนดกราฟงานแสดงข้อมูลต่อไปนี้ของแต่ละขั้นตอน:

  • ID
  • ชื่อหรือคําอธิบาย
  • หมายเลขงานทั้งหมด
  • ข้อมูลที่อ่าน: ผลรวมของขนาดอินพุตและขนาดการอ่านแบบสลับ
  • การเขียนข้อมูล: ผลรวมของขนาดเอาต์พุตและขนาดการเขียนแบบสลับ
  • เวลาดําเนินการ: เวลาระหว่างเวลาเริ่มต้นของความพยายามครั้งแรกและเวลาเสร็จสิ้นของความพยายามครั้งล่าสุด
  • จํานวนแถว: ผลรวมของระเบียนข้อมูลป้อนเข้า ระเบียนผลลัพธ์ ระเบียนแบบสลับ อ่านและสลับการเขียนระเบียน
  • ความคืบหน้า

หมายเหตุ

ตามค่าเริ่มต้น โหนดกราฟงานจะแสดงข้อมูลจากความพยายามสุดท้ายของแต่ละขั้นตอน (ยกเว้นเวลาการดําเนินการของขั้นตอน) อย่างไรก็ตาม ในระหว่างการเล่น โหนดกราฟจะแสดงข้อมูลของแต่ละความพยายาม

ขนาดข้อมูลของการอ่านและเขียนคือ 1MB = 1000 KB = 1000 * 1000 ไบต์

แสดงความคิดเห็น

ส่งคําติชมเกี่ยวกับปัญหาโดยการเลือก ส่งคําติชมถึงเรา

สกรีนช็อตที่แสดงแอปพลิเคชันแบบประกายไฟและคําติชมกราฟงาน

ขีดจํากัดหมายเลขลําดับขั้น

สําหรับการพิจารณาประสิทธิภาพการทํางาน ตามค่าเริ่มต้น กราฟจะพร้อมใช้งานเมื่อแอปพลิเคชัน Spark มีน้อยกว่า 500 ขั้นตอน ถ้ามีลําดับขั้นมากเกินไป จะล้มเหลวด้วยข้อผิดพลาดดังนี้:

The number of stages in this application exceeds limit (500), graph page is disabled in this case.

สําหรับการแก้ปัญหาเฉพาะหน้า ก่อนที่จะเริ่มแอปพลิเคชัน Spark โปรดใช้การกําหนดค่า Spark นี้เพื่อเพิ่มขีดจํากัด:

spark.ui.enhancement.maxGraphStages 1000

แต่โปรดสังเกตว่านี่อาจทําให้เกิดประสิทธิภาพการทํางานที่ไม่ดีของหน้าและ API เนื่องจากเนื้อหาอาจมีขนาดใหญ่เกินไปสําหรับเบราว์เซอร์ที่จะดึงและแสดง

สํารวจแท็บการวินิจฉัยในเซิร์ฟเวอร์ประวัติ Apache Spark

หากต้องการเข้าถึงแท็บ การวินิจฉัย ให้เลือก ID งาน จากนั้นเลือก การวินิจฉัย บนเมนูเครื่องมือเพื่อรับมุมมอง การวินิจฉัยงาน แท็บการวินิจฉัยประกอบด้วย Data Skew, Time Skew และ Executor Usage Analysis

ตรวจสอบ Data Skew, Time Skew และ Executor Usage Analysis โดยการเลือกแท็บตามลําดับ

สกรีนช็อตที่แสดงแท็บการเบ้ข้อมูลการวินิจฉัย SparkUI อีกครั้ง

การเบ้ข้อมูล

เมื่อคุณเลือกแท็บ การเบ้ ข้อมูล งานแบบเบ้ที่สอดคล้องกันจะปรากฏขึ้นตามพารามิเตอร์ที่ระบุ

  • ระบุพารามิเตอร์ - ส่วนแรกจะแสดงพารามิเตอร์ซึ่งใช้เพื่อตรวจหา Data Skew กฎเริ่มต้นคือ: การอ่านข้อมูลงานมากกว่าสามเท่าของข้อมูลงานเฉลี่ยที่อ่านและข้อมูลงานที่อ่านได้มีมากกว่า 10 MB ถ้าคุณต้องการกําหนดกฎของคุณเองสําหรับงานที่เบื้องหน้า คุณสามารถเลือกพารามิเตอร์ของคุณได้ ส่วน ลําดับขั้นและเครื่องหมายการวาดจะถูกรีเฟรชตามลําดับ

  • ขั้นตอนที่ เบ้ - ส่วนที่สองแสดงขั้นตอนซึ่งมีงานเบ้ที่ตรงตามเกณฑ์ที่ระบุไว้ก่อนหน้านี้ ถ้ามีงานที่บิดเบื้องมากกว่าหนึ่งงานในหนึ่งขั้นตอน ตารางลําดับขั้นแบบเบ้จะแสดงเฉพาะงานที่มีการเบ้มากที่สุดเท่านั้น (ตัวอย่างเช่น ข้อมูลที่ใหญ่ที่สุดสําหรับข้อมูลเบ้)

    สกรีนช็อตที่แสดงแท็บการเบ้ข้อมูลการวินิจฉัย ui ของ Spark

  • แผนภูมิ เบ้ - เมื่อแถวในตารางขั้นตอนการเบ้ถูกเลือก แผนภูมิแบบเบ้แสดงรายละเอียดการกระจายงานเพิ่มเติมตามข้อมูลที่อ่านและเวลาการดําเนินการ งานที่เบ้ถูกทําเครื่องหมายเป็นสีแดงและงานปกติจะถูกทําเครื่องหมายเป็นสีน้ําเงิน แผนภูมิแสดงงานตัวอย่างสูงสุด 100 งาน และรายละเอียดงานจะแสดงในบานหน้าต่างด้านล่างขวา

    สกรีนช็อตที่แสดงแผนภูมิ Spark ui Skew สําหรับลําดับขั้นที่ 10

เวลาไม่บิด

แท็บ เวลาการวาด จะแสดงงานที่เบื้องหน้าตามเวลาการดําเนินการของงาน

  • ระบุพารามิเตอร์ - ส่วนแรกจะแสดงพารามิเตอร์ซึ่งใช้เพื่อตรวจหาการเบ้เวลา เกณฑ์เริ่มต้นในการตรวจหาเวลาการเบ้คือ: เวลาการดําเนินการงานมากกว่าสามครั้งโดยเฉลี่ยแล้ว และเวลาการดําเนินการงานมากกว่า 30 วินาที คุณสามารถเปลี่ยนพารามิเตอร์ตามความต้องการของคุณได้ ลําดับ ขั้น แบบเบ้และ แผนภูมิ แบบเบ้จะแสดงลําดับขั้นและข้อมูลงานที่สอดคล้องกันเช่นเดียวกับแท็บ การเบ้ข้อมูล ดังที่อธิบายไว้ก่อนหน้านี้

  • เลือกเวลาการบิดเบื้อง จากนั้นผลลัพธ์ที่กรองแล้วจะแสดงในส่วนลําดับขั้นแบบเบ้ตามพารามิเตอร์ที่ตั้งค่าไว้ในส่วนระบุพารามิเตอร์ เลือกหนึ่งรายการในส่วน ลําดับขั้น การวาด จากนั้นแผนภูมิที่สอดคล้องกันจะร่างในส่วนที่ 3 และรายละเอียดงานจะแสดงในบานหน้าต่างด้านล่างขวา

    สกรีนช็อตที่แสดงส่วนเวลาการวินิจฉัย Spark ui

การวิเคราะห์การใช้งานของตัวดําเนินการ

คุณลักษณะนี้ได้ถูกเลิกใช้ใน Fabric แล้วในขณะนี้ ถ้าคุณยังคงต้องการใช้สิ่งนี้เป็นการแก้ไขปัญหาชั่วคราว โปรดเข้าถึงหน้าโดยการเพิ่ม "/executorusage" ที่อยู่เบื้องหลังเส้นทาง "/diagnostic" อย่างชัดเจนใน URL ดังนี้:

สกรีนช็อตที่แสดงการปรับเปลี่ยน url