หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
การทํางานพร้อมกันสูง (HC) ใน Fabric Livy API ช่วยให้สามารถดําเนินการ Spark แบบขนานที่ปรับขนาดได้สําหรับปริมาณงานที่เน้นระบบอัตโนมัติเป็นอันดับแรก แอปพลิเคชันไคลเอ็นต์สามารถเรียกใช้คําสั่ง Spark หลายรายการพร้อมกันในขณะที่ Fabric จัดการการนําเซสชันกลับมาใช้ใหม่ การแยก การตรวจสอบ และการเรียกเก็บเงิน
เซสชัน Livy ที่มีอยู่และปริมาณงานแบตช์ยังคงทํางานต่อไปโดยไม่มีการแก้ไข
เมื่อใดควรใช้การทํางานพร้อมกันสูง
การใช้งาน Livy มาตรฐานได้รับการปรับให้เหมาะสมสําหรับการดําเนินการตามลําดับหรือการทํางานพร้อมกันต่ํา เมื่อสถานการณ์ระบบอัตโนมัติเติบโตขึ้น คุณต้อง:
- การดําเนินการ Spark แบบขนาน
- การใช้ทรัพยากรที่คาดการณ์ได้
- การแยกระหว่างปริมาณงานที่เกิดขึ้นพร้อมกัน
- โมเดลการทํางานพร้อมกันที่มีการจัดการที่รวมเข้ากับการรักษาความปลอดภัย การตรวจสอบ และการเรียกเก็บเงินของ Fabric
หากไม่มีการสนับสนุน HC คุณต้องสร้างและจัดการเซสชัน Livy หลายเซสชันด้วยตนเองในฝั่งไคลเอ็นต์ สิ่งนี้จะเพิ่มความซับซ้อนและลดความสามารถในการสังเกต
โมเดลการดําเนินการพร้อมกันสูง
รูปแบบการดําเนินการ HC ทํางานดังนี้:
- ลูกค้าได้รับเซสชัน HC
- ระบบจะสร้างหรือนําเซสชัน Livy พื้นฐานมาใช้ซ้ํา และสร้าง Spark REPL (Read-Eval-Print Loop)
- ไคลเอ็นต์ ดําเนินการคําสั่ง Spark ภายในเซสชัน HC
- เซสชัน HC หลายเซสชันสามารถดําเนินการคําสั่งพร้อมกันได้
- ไคลเอ็นต์สามารถ ดึงข้อมูลยกเลิก หรือ ลบ เซสชัน HC ได้อย่างอิสระ
แต่ละเซสชัน HC:
- แมปไปยัง Spark REPL
- สามารถดําเนินการคําสั่ง Spark ได้อย่างอิสระ
- แยกจากความล้มเหลวหรือการยกเลิกในเซสชัน HC อื่นๆ
การนําเซสชันกลับมาใช้ใหม่และ sessionTag
เมื่อคุณได้รับเซสชัน HC คุณสามารถเลือกระบุsessionTag
เปิดใช้งานsessionTagการบรรจุเซสชันฝั่งเซิร์ฟเวอร์:
- ถ้าเซสชัน Livy ที่ใช้งานอยู่สําหรับมี
sessionTagอยู่และมีความจุที่พร้อมใช้งาน บริการจะสร้าง Spark REPL ใหม่ภายในเซสชันนั้น - หากไม่มีเซสชันที่เหมาะสม เซอร์วิสจะสร้างเซสชัน Livy พื้นฐานใหม่
สังเกตลักษณะสําคัญดังต่อไปนี้:
- การได้มาซึ่งเซสชัน HC ไม่ใช่ idempotent
- คําขอรับหลายรายการที่มีเหมือนกันจะ
sessionTagส่งคืนรหัสเซสชัน HC ที่แตกต่างกัน - เซสชัน Livy พื้นฐานเดียวกันอาจยังคงสนับสนุนเซสชัน HC หลายเซสชัน
แนวคิดหลัก
รายการต่อไปนี้อธิบายพารามิเตอร์หลัก:
- HC ID: ตัวระบุ Fabric สําหรับเซสชันการทํางานพร้อมกันระดับ REPL สูง API ส่งคืน GUID ที่ระบบสร้างขึ้น
- รหัสเซสชัน Livy: เซสชัน Spark/Livy พื้นฐานที่สามารถโฮสต์ REPL ได้หลายรายการ
- รหัส REPL: ตัวระบุของ REPL ภายในเซสชัน Livy รหัส REPL แต่ละรหัสจะแมปกับ HC ID
-
sessionTag(ไม่บังคับ): คําใบ้ที่ใช้ในการบรรจุ REPL ลงในเซสชัน Livy ที่มีอยู่เมื่อเป็นไปได้ - ขีดจํากัด: ปัจจุบันบริการรองรับ REPL สูงสุดห้ารายการต่อเซสชัน Livy การเรียกใช้พร้อมกันอย่างรวดเร็วไปยัง API การรับเซสชัน HC อาจสร้างเซสชัน Livy หลายเซสชัน
รับเซสชัน Spark พร้อมกันสูง
หากมีเซสชัน Livy ที่ใช้งานอยู่แล้วและมี sessionTag สล็อต REPL ที่พร้อมใช้งาน เซอร์วิสจะสร้าง REPL ภายในเซสชันนั้น มิฉะนั้น บริการจะสร้างเซสชัน Livy ใหม่ที่มี REPL อยู่ภายใน
เพย์โหลดคําขอ (HighConcurrencySessionRequest)
เนื้อหาคําขอสําหรับการรับเซสชันการทํางานพร้อมกันสูงประกอบด้วยพารามิเตอร์ต่อไปนี้:
{
"artifactName": "string",
"sessionTag": "string",
"tags": { "key": "value" },
"name": "string",
"file": "string",
"className": "string",
"args": ["string"],
"jars": ["string"],
"files": ["string"],
"pyFiles": ["string"],
"archives": ["string"],
"conf": { "spark.some.config": "value" },
"driverMemory": "string",
"driverCores": 1,
"executorMemory": "string",
"executorCores": 1,
"numExecutors": 2
}
โปรดสังเกตสิ่งต่อไปนี้เกี่ยวกับพารามิเตอร์คําขอ:
- (lakehouse
artifactName) ใช้สําหรับแสดงงาน HC ในศูนย์กลางการตรวจสอบเป็นHC_<LakehouseName>_<LIVY_SESSION_ID> - เป็น
sessionTagคําใบ้สําหรับการบรรจุ มันไม่ใช่การล็อคที่เข้มงวด คําขอ POST พร้อมกันอย่างรวดเร็วพร้อมสิ่งเดียวกันsessionTagอาจสร้างเซสชัน Livy หลายเซสชัน - API เป็น nonidempotent โดยค่าเริ่มต้น คําขอ POST หลายรายการสามารถให้รหัส HC และ REPL ที่แตกต่างกันได้
เพย์โหลดการตอบสนอง (HighConcurrencySessionResponse)
เนื้อหาการตอบกลับประกอบด้วยฟิลด์ต่อไปนี้:
{
"id": "string",
"state": "string",
"fabricSessionStateInfo": { "state": "string", "errorMessage": null },
"sessionId": "string | null",
"workspaceId": "string",
"artifactId": "string | null",
"creatorId": "string",
"createdAt": "ISO 8601",
"replId": "string | null",
"sessionTag": "string | null"
}
รหัสตอบกลับ HTTP ที่เป็นไปได้: 200, 400, 401, 404, 409, 500
สําหรับข้อมูลจําเพาะ OpenAPI แบบเต็ม โปรดดู Livy API swagger define ในที่เก็บตัวอย่าง Fabric
Monitoring
งาน HC ปรากฏในฮับการมอนิเตอร์ด้วยชื่อ HC_<LakehouseName>_<LivySessionId> เพื่อรักษาความสอดคล้องกับชนิดงานอื่นๆ รูปแบบการตั้งชื่อนี้ให้การมองเห็นระดับบนสุด แต่จํากัดการยกเลิกระดับ REPL จากพอร์ทัล Fabric
แนวทางปฏิบัติที่ดีที่สุด
พิจารณาแนวทางปฏิบัติที่ดีที่สุดต่อไปนี้เมื่อใช้เซสชันการทํางานพร้อมกันสูง:
- ใช้เพื่อ
sessionTagบรรจุงานที่เกี่ยวข้องลงในเซสชัน Livy ที่ใช้ร่วมกันเมื่อยอมรับได้ - สํารวจตําแหน่งข้อมูล GET ของเซสชัน HC เพื่อกําหนดว่าเมื่อใด
stateisIdleและ bothsessionIdreplIdและ มีการเติมข้อมูล