Blockdit Logo
Blockdit Logo (Mobile)
สำรวจ
ลงทุน
คำถาม
เข้าสู่ระบบ
มีบัญชีอยู่แล้ว?
เข้าสู่ระบบ
หรือ
ลงทะเบียน
PythonSnippets
•
ติดตาม
22 ต.ค. 2021 เวลา 04:58 • การศึกษา
ลองตั้ง Master (ก่อนที่จะจำลอง Spark cluster ต่อไป) ลองเขียน Python module ชื่อ quickstart03_tools ซึ่งมีฟังก์ชันสำหรับ start และ stop Master ดังกล่าว (เนื้อหาของโพสต์นี้เป็นภาพรวมยังไม่มีคำอธิบายแต่ละบรรทัด)
การตั้ง Master ด้วยการใช้ฟังก์ชัน run_cmd และ get_cmd_path ในโมดูล quickstart03_tools ซึ่งได้ถูก import มาใช้ในชื่อ ts
วิธีตั้ง Master ก็คือ รัน spark-class ที่ Windows Command Prompt
(เมื่อได้ติดตั้งแพ็กเกจ pyspark เรียบร้อยแล้ว จะมี spark-class พร้อมให้ใช้อยู่ในไดเรกทอรี bin ขั้นตอนการติดตั้ง pyspark ได้ทำลิงก์ไว้ที่การอ้างอิงท้ายโพสต์)
วิธีใช้ spark-class เพื่อตั้ง Master
ในที่นี้ไม่ต้องการจะเปิด terminal ของ Windows Command Prompt แต่ต้องการจะตั้ง Master ผ่านทาง Python app
ขั้นที่ 1 คือ สร้างไฟล์ cmd ขึ้นมาก่อน
ไฟล์ quickstart03_startmaster.cmd
ขั้นที่ 2 คือ สร้างโมดูลที่มีฟังก์ชันที่สามารถรันไฟล์ cmd ได้
(ฟังก์ชันนั้นจะอยู่ภายใต้โมดูลโดยตรง หรือจะอยู่ภายใต้ class ก็ได้)
โมดูล quickstart03_tools (ทั้งหมด 70 บรรทัด ส่วนใหญ่เป็น try except บรรทัดหลักๆมีอยู่ไม่กี่บรรทัด)
ขั้นที่ 3 เขียนไฟล์นามสกุล py เพื่อทดสอบโมดูลที่สร้างขึ้น
ไฟล์ quickstart03.py
ผลการทดสอบโมดูลที่สร้างขึ้น ยังไม่พบปัญหา(อย่างน้อยก็ในตอนนี้)
1. เกิด process แรกเริ่มเวลา 20:06:19 (ขณะรันบรรทัดที่ 21 ของไฟล์ quickstart03_tools.py)
2. มี process เกิดตามมาอีกทั้งหมด 3 processes รอดูอยู่ 10 วินาทีก็ไม่มี process เกิดเพิ่มขึ้นอีก (ถ้ารันนอก Spyder จะไม่มี process ชื่อ conhost.exe)
3. การพิมพ์ครั้งที่ 1 เริ่มเมื่อ 20:06:29 สมควรแก่เวลาที่จะรายงานว่าการตั้ง Master ทำให้เกิด process อะไรบ้าง
4. การพิมพ์ครั้งที่ 2 เริ่มเมื่อ 20:06:30 อีก 1 วินาทีถัดมา รีบปิด process ทุกๆ process ที่เปิดขึ้นมา (บรรทัดที่ 56-61 ของไฟล์ quickstart03_tools.py)
5. process ที่ชื่อ java.exe ต้องเกี่ยวกับ JVM ทางใดทางหนึ่ง เพราะเคยอ่านมาว่า PySpark ต้องใช้ Py4J และ JVM (Java Virtual Machine)
ผลการรันไฟล์ quickstart03.py
หมายเหตุ
1. โพสต์นี้รัน Python ภายใต้ environment ชื่อ xyz เพราะว่าได้มีการติดตั้งแพ็กเกจ psutil ไว้แล้ว
2. โพสต์ก่อนหน้านี้รัน Python ภายใต้ environment ชื่อ abc ซึ่งในขณะนี้ยังไม่ได้ติดตั้งแพ็กเกจ psutil
3. ในเวลานี้ pyspark ที่ใช้ในเพจนี้เป็นเวอร์ชัน 2.4.5 ทั้ง environment xyz และ abc
จะสำรวจ/ทดลองอะไรต่อจากนี้
ตอนนี้เข้าใจว่า/คาดว่า การตั้ง Master เป็นก้าวแรกไปสู่การใช้คอมพิวเตอร์จำนวนมากในลักษณะ cluster เมื่อตั้ง Master ได้แล้ว จะสามารถตั้ง Worker และเพิ่ม Worker ได้เรื่อยๆใน cluster ทำให้ Spark รองรับการประมวลผลข้อมูลระดับ Big Data
จากนี้ไปจะหาประสบการณ์ในการใช้ cluster และหากมีโอกาสจะก้าวเข้าสู่เรื่องการประมวลผลข้อมูลต่อไป
การอ้างอิง
ขอบคุณ Jacek Laskowski สำหรับวิธีตั้ง Master ด้วย spark-class
https://stackoverflow.com/a/44438359
วิธีใช้ class psutil.Process ของแพ็กเกจ psutil
https://psutil.readthedocs.io/en/latest/#process-class
การติดตั้ง pyspark (ตั้งแต่เริ่มสร้าง environment จนถึงใช้งานได้)
https://www.blockdit.com/series/60a655f711b2bf39d2d9ff1b
python
bigdata
บันทึก
ดูเพิ่มเติมในซีรีส์
Step-by-Step toward PySpark Application
โฆษณา
ดาวน์โหลดแอปพลิเคชัน
© 2024 Blockdit
เกี่ยวกับ
ช่วยเหลือ
คำถามที่พบบ่อย
นโยบายการโฆษณาและบูสต์โพสต์
นโยบายความเป็นส่วนตัว
แนวทางการใช้แบรนด์ Blockdit
Blockdit เพื่อธุรกิจ
ไทย