รวบรวมบันทึกแอปพลิเคชัน Apache Spark และเมตริกโดยใช้ Azure Event Hubs (ตัวอย่าง)
ส่วนขยาย emitter ของ Fabric Apache Spark คือไลบรารีที่ช่วยให้แอปพลิเคชัน Apache Spark สามารถปล่อยไฟล์บันทึก บันทึกเหตุการณ์ และเมตริกไปยังปลายทางต่าง ๆ รวมถึง Azure Log Analytics, Azure Storage และ Azure Event Hubs
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการใช้ส่วนขยายตัวปล่อยการวินิจฉัย Fabric Apache Spark เพื่อส่งบันทึกแอปพลิเคชัน Apache Spark บันทึกเหตุการณ์ และเมตริกไปยัง Azure Event Hubs ของคุณ
รวบรวมบันทึกและเมตริกไปยัง Azure Event Hubs
ขั้นตอนที่ 1: สร้างอินสแตนซ์ Azure Event Hubs
เพื่อรวบรวมบันทึกการวินิจฉัยและเมตริก คุณสามารถใช้อินสแตนซ์ Azure Event Hubs ที่มีอยู่ได้ ถ้าคุณไม่มี คุณสามารถสร้าง ฮับเหตุการณ์
ขั้นตอนที่ 2: สร้างสิ่งประดิษฐ์สภาพแวดล้อมผ้าด้วยการกําหนดค่า Apache Spark
ตัวเลือกที่ 1: กําหนดค่าด้วยสตริงการเชื่อมต่อ Azure Event Hubs
สร้างสิ่งประดิษฐ์สภาพแวดล้อม Fabric ใน Fabric
เพิ่มคุณสมบัติ Spark ต่อไปนี้ด้วยค่าที่เหมาะสมลงในสิ่งประดิษฐ์สภาพแวดล้อม หรือเลือก เพิ่มจาก.yml ในริบบอน เพื่อดาวน์โหลดไฟล์ yaml ตัวอย่างซึ่งมีคุณสมบัติต่อไปนี้อยู่แล้ว
spark.synapse.diagnostic.emitters: MyEventHub spark.synapse.diagnostic.emitter.MyEventHub.type: "AzureEventHub" spark.synapse.diagnostic.emitter.MyEventHub.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyEventHub.secret: <connection-string> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
กรอกพารามิเตอร์ใน
<connection-string>
ไฟล์การกําหนดค่า สําหรับข้อมูลเพิ่มเติม ดู การกําหนดค่า Azure Event Hubs
ตัวเลือกที่ 2: กําหนดค่าด้วย Azure Key Vault
หมายเหตุ
ปัญหาที่ทราบแล้ว: ไม่สามารถเริ่มเซสชันโดยใช้ตัวเลือกที่ 2 ในการเตรียมใช้งาน ในปัจจุบัน การจัดเก็บข้อมูลลับในชุดเก็บคีย์จะป้องกันไม่ให้เซสชัน Spark เริ่มทํางาน โปรดจัดลําดับความสําคัญของการกําหนดค่าโดยใช้วิธีการที่ระบุไว้ในตัวเลือกที่ 1
ตรวจสอบให้แน่ใจว่าผู้ใช้ที่ส่งแอปพลิเคชัน Apache Spark จะได้รับสิทธิ์ในการอ่านข้อมูลลับ สําหรับข้อมูลเพิ่มเติม ดู ให้การเข้าถึงคีย์ชุดเก็บคีย์ ใบรับรอง และข้อมูลลับด้วยการควบคุมการเข้าถึงตามบทบาทของ Azure
วิธีการกําหนดค่า Azure Key Vault สําหรับการจัดเก็บคีย์พื้นที่ทํางาน:
สร้างและไปที่ Key Vault ของคุณในพอร์ทัล Azure
บนหน้าการตั้งค่าสําหรับชุดเก็บคีย์ เลือกข้อมูลลับ จากนั้นสร้าง/นําเข้า
บนหน้าจอ สร้างข้อมูลลับ ให้เลือกค่าต่อไปนี้:
- ชื่อ: ป้อนชื่อสําหรับข้อมูลลับ
- ค่า: ป้อน
<connection-string>
สําหรับข้อมูลลับ - ปล่อยค่าอื่นๆ ไว้เป็นค่าเริ่มต้น จากนั้น เลือก สร้าง
สร้างสิ่งประดิษฐ์สภาพแวดล้อม Fabric ใน Fabric
เพิ่มคุณสมบัติ Spark ต่อไปนี้ หรือเลือก เพิ่มจาก.yml บนริบบอน เพื่อดาวน์โหลด ไฟล์ yaml ตัวอย่าง ซึ่งรวมถึงคุณสมบัติ Spark ต่อไปนี้
spark.synapse.diagnostic.emitters: MyEventHub spark.synapse.diagnostic.emitter.MyEventHub.type: "AzureEventHub" spark.synapse.diagnostic.emitter.MyEventHub.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyEventHub.secret.keyVault: <AZURE_KEY_VAULT_NAME> spark.synapse.diagnostic.emitter.MyEventHub.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
กรอกพารามิเตอร์ต่อไปนี้ในไฟล์การกําหนดค่า:
<AZURE_KEY_VAULT_NAME>
<AZURE_KEY_VAULT_SECRET_KEY_NAME>
สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับพารามิเตอร์เหล่านี้ ดูที่ การกําหนดค่า Azure Event Hubsบันทึกและเผยแพร่การเปลี่ยนแปลง
ขั้นตอนที่ 3: แนบวัตถุสภาพแวดล้อมกับสมุดบันทึกหรือข้อกําหนดงาน Spark หรือตั้งค่าเป็นค่าเริ่มต้นของพื้นที่ทํางาน
เมื่อต้องการแนบสภาพแวดล้อมเข้ากับข้อกําหนดงานของสมุดบันทึกหรือ Spark:
- นําทางไปยังสมุดบันทึกหรือข้อกําหนดงาน Spark ที่ระบุใน Fabric
- เลือก เมนู สภาพแวดล้อม บนแท็บ หน้าแรก และเลือกสภาพแวดล้อมที่มีคุณสมบัติ Spark การวินิจฉัยที่กําหนดค่าไว้
- การกําหนดค่าจะถูกนําไปใช้เมื่อคุณเริ่ม เซสชัน Spark
วิธีตั้งค่าสภาพแวดล้อมเป็นค่าเริ่มต้นของพื้นที่ทํางาน:
- นําทางไปยังการตั้งค่าพื้นที่ทํางานใน Fabric
- ค้นหาการตั้งค่า Spark ในการตั้งค่าพื้นที่ทํางานของคุณ (การตั้งค่าพื้นที่ทํางาน -> วิศวกรข้อมูล ing/วิทยาศาสตร์ -> การตั้งค่า Spark)
- เลือกแท็บ สภาพแวดล้อม และเลือกสภาพแวดล้อมที่มีการกําหนดค่าคุณสมบัติ Spark การวินิจฉัย แล้วคลิก บันทึก
หมายเหตุ
เฉพาะผู้ดูแลระบบพื้นที่ทํางานเท่านั้นที่สามารถจัดการการกําหนดค่าพื้นที่ทํางานได้ การเปลี่ยนแปลงที่ทําไว้ที่นี่จะนําไปใช้กับสมุดบันทึกทั้งหมดและข้อกําหนดงาน Spark ที่แนบมากับการตั้งค่าพื้นที่ทํางาน สําหรับข้อมูลเพิ่มเติม ดู การตั้งค่าพื้นที่ทํางานของ Fabric
การกําหนดค่าที่พร้อมใช้งาน
การกำหนดค่า | คำอธิบาย |
---|---|
spark.synapse.diagnostic.emitters |
จำเป็น ชื่อปลายทางที่คั่นด้วยจุลภาคของตัวปล่อยการวินิจฉัย |
spark.synapse.diagnostic.emitter.<destination>.type |
จำเป็นต้องใช้ ประเภทปลายทางที่มีอยู่ภายใน เมื่อต้องการเปิดใช้งานปลายทาง Azure Event Hubs ค่าควรเป็นAzureEventHub |
spark.synapse.diagnostic.emitter.<destination>.categories |
เลือกได้ ประเภทไฟล์บันทึกที่เลือกที่ใช้จุลภาคเป็นตัวคั่น ค่าที่พร้อมใช้งานประกอบด้วย DriverLog , ExecutorLog , EventLog Metrics ถ้าไม่ได้ตั้งค่า ค่าเริ่มต้นคือประเภททั้งหมด |
spark.synapse.diagnostic.emitter.<destination>.secret |
เลือกได้ อินสแตนซ์ Azure Event Hubs สายอักขระการเชื่อมต่อ เขตข้อมูลนี้ควรตรงกับรูปแบบนี้ Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
จําเป็นถ้า .secret ไม่ได้ระบุไว้ ชื่อชุดเก็บคีย์ของ Azure ที่จัดเก็บข้อมูลลับ (สายอักขระการเชื่อมต่อ) |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
จําเป็น ถ้ามี .secret.keyVault การระบุ ชื่อลับชุดเก็บคีย์ของ Azure ที่จัดเก็บข้อมูลลับ (สายอักขระการเชื่อมต่อ) |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
เลือกได้ ชื่อเหตุการณ์ Spark ที่คั่นด้วยจุลภาค คุณสามารถระบุเหตุการณ์ที่จะรวบรวมได้ ตัวอย่าง: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
เลือกได้ ชื่อตัวบันทึก Log4j ที่คั่นด้วยจุลภาค คุณสามารถระบุบันทึกที่จะรวบรวมได้ ตัวอย่าง: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
เลือกได้ ส่วนต่อท้ายของชื่อเมตริก Spark ที่คั่นด้วยจุลภาค คุณสามารถระบุเมตริกที่จะรวบรวมได้ ตัวอย่าง: jvm.heap.used |
หมายเหตุ
อินสแตนซ์ Azure Eventhub สายอักขระการเชื่อมต่อ ควรประกอบด้วย EntityPath
ซึ่งคือชื่อของอินสแตนซ์ Azure Event Hubs
ตัวอย่างข้อมูลบันทึก
นี่คือตัวอย่างบันทึกระเบียนในรูปแบบ JSON:
{
"timestamp": "2024-09-06T03:09:37.235Z",
"category": "Log|EventLog|Metrics",
"fabricLivyId": "<fabric-livy-id>",
"applicationId": "<application-id>",
"applicationName": "<application-name>",
"executorId": "<driver-or-executor-id>",
"fabricTenantId": "<my-fabric-tenant-id>",
"capacityId": "<my-fabric-capacity-id>",
"artifactType": "SynapseNotebook|SparkJobDefinition",
"artifactId": "<my-fabric-artifact-id>",
"fabricWorkspaceId": "<my-fabric-workspace-id>",
"fabricEnvId": "<my-fabric-environment-id>",
"executorMin": "<executor-min>",
"executorMax": "<executor-max>",
"isHighConcurrencyEnabled": "true|false",
"properties": {
// The message properties of logs, events and metrics.
"timestamp": "2024-09-06T03:09:37.235Z",
"message": "Initialized BlockManager: BlockManagerId(1, vm-04b22223, 34319, None)",
"logger_name": "org.apache.spark.storage.BlockManager",
"level": "INFO",
"thread_name": "dispatcher-Executor"
//...
}
}
พื้นที่ทํางานผ้าที่มีเครือข่ายเสมือนที่มีการจัดการ
สร้างจุดปลายทางส่วนตัวที่มีการจัดการสําหรับ Azure Event Hubs เป้าหมาย สําหรับคําแนะนําโดยละเอียด โปรดดูที่สร้างและใช้จุดสิ้นสุดส่วนตัวที่มีการจัดการใน Microsoft Fabric - Microsoft Fabric
เมื่อปลายทางส่วนตัวที่ได้รับการจัดการได้รับการอนุมัติ ผู้ใช้สามารถเริ่มปล่อยบันทึกและเมตริกไปยังเป้าหมาย Azure Event Hubs ได้