เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker

เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker

RStudio บน Amazon SageMaker เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ของ RStudio Workbench ที่มีการจัดการเต็มรูปแบบแห่งแรกของอุตสาหกรรมในระบบคลาวด์ คุณสามารถเรียกใช้ RStudio IDE ที่คุ้นเคยได้อย่างรวดเร็ว และเรียกเลขหมายขึ้นและลงทรัพยากรการประมวลผลพื้นฐานโดยไม่รบกวนการทำงานของคุณ ทำให้ง่ายต่อการสร้างการเรียนรู้ของเครื่อง (ML) และโซลูชันการวิเคราะห์ใน R ตามขนาด

เมื่อใช้ร่วมกับเครื่องมือต่างๆ เช่น RStudio บน SageMaker ผู้ใช้จะวิเคราะห์ แปลง และเตรียมข้อมูลจำนวนมากซึ่งเป็นส่วนหนึ่งของวิทยาการข้อมูลและเวิร์กโฟลว์ ML นักวิทยาศาสตร์ข้อมูลและวิศวกรข้อมูลใช้ Apache Spark, Hive และ Presto ที่ทำงานอยู่ อเมซอน EMR สำหรับการประมวลผลข้อมูลขนาดใหญ่ การใช้ RStudio บน SageMaker และ Amazon EMR ร่วมกัน คุณสามารถใช้ RStudio IDE เพื่อการวิเคราะห์และพัฒนาต่อไปได้ ในขณะที่ใช้คลัสเตอร์ที่มีการจัดการของ Amazon EMR สำหรับการประมวลผลข้อมูลขนาดใหญ่ขึ้น

ในโพสต์นี้ เราจะสาธิตวิธีการเชื่อมต่อ RStudio บนโดเมน SageMaker กับคลัสเตอร์ EMR

ภาพรวมโซลูชัน

เราใช้ไฟล์ อาปาเช่ ลิวี่ การเชื่อมต่อเพื่อส่ง ประกายไฟ งานจาก RStudio บน SageMaker ไปยังคลัสเตอร์ EMR สิ่งนี้แสดงให้เห็นในแผนภาพต่อไปนี้

ขอบเขตของการแก้ปัญหา
รหัสทั้งหมดที่แสดงในโพสต์มีอยู่ในของเรา พื้นที่เก็บข้อมูล GitHub. เราใช้สถาปัตยกรรมโซลูชันต่อไปนี้

เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เบื้องต้น

ก่อนปรับใช้ทรัพยากรใดๆ ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดทั้งหมดสำหรับการตั้งค่าและใช้งาน RStudio บน SageMaker และ Amazon EMR:

นอกจากนี้ เราจะสร้าง RStudio แบบกำหนดเองบนอิมเมจ SageMaker ดังนั้น ตรวจสอบให้แน่ใจว่าคุณได้ใช้งาน Docker และสิทธิ์ที่จำเป็นทั้งหมด สำหรับข้อมูลเพิ่มเติม โปรดดูที่ ใช้อิมเมจที่กำหนดเองเพื่อนำสภาพแวดล้อมการพัฒนาของคุณเองมาสู่ RStudio บน Amazon SageMaker.

สร้างทรัพยากรด้วย AWS CloudFormation

เราใช้ไฟล์ การก่อตัวของ AWS Cloud ซ้อนเพื่อสร้างโครงสร้างพื้นฐานที่จำเป็น

หากคุณมีโดเมน RStudio และคลัสเตอร์ EMR อยู่แล้ว คุณสามารถข้ามขั้นตอนนี้และเริ่มสร้าง RStudio แบบกำหนดเองบนอิมเมจ SageMaker แทนที่ข้อมูลของคลัสเตอร์ EMR และโดเมน RStudio แทนคลัสเตอร์ EMR และโดเมน RStudio ที่สร้างขึ้นในส่วนนี้

การเรียกใช้สแต็กนี้จะสร้างทรัพยากรต่อไปนี้:

  • เครือข่ายย่อยส่วนตัวสองเครือข่าย
  • EMR Spark คลัสเตอร์
  • AWS กาว ฐานข้อมูลและตาราง
  • โดเมน SageMaker กับ RStudio
  • โปรไฟล์ผู้ใช้ SageMaker RStudio
  • บทบาทบริการ IAM สำหรับโดเมน SageMaker RStudio
  • บทบาทบริการ IAM สำหรับโปรไฟล์ผู้ใช้ SageMaker RStudio

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างทรัพยากรของคุณ:

Choose เรียกใช้ Stack เพื่อสร้างกอง

เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

  1. เกี่ยวกับ สร้าง stack หน้าให้เลือก ถัดไป.
  2. เกี่ยวกับ ระบุรายละเอียดกอง ระบุชื่อสแต็กของคุณและปล่อยให้ตัวเลือกที่เหลือเป็นค่าเริ่มต้น จากนั้นเลือก ถัดไป.
  3. เกี่ยวกับ กำหนดค่าตัวเลือกสแต็ก หน้า ปล่อยให้ตัวเลือกเป็นค่าเริ่มต้นแล้วเลือก ถัดไป.
  4. เกี่ยวกับ หน้ารีวิวให้เลือก
  5. ฉันรับทราบว่า AWS CloudFormation อาจสร้างทรัพยากร IAM ด้วยชื่อที่กำหนดเอง และ
  6. ฉันรับทราบว่า AWS CloudFormation อาจต้องการความสามารถดังต่อไปนี้: CAPABILITY_AUTO_EXPAND.
  7. Choose สร้าง stack.

เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เทมเพลตสร้างห้ากอง

เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

หากต้องการดูคลัสเตอร์ EMR Spark ที่สร้างขึ้น ให้ไปที่คอนโซล Amazon EMR คุณจะเห็นกลุ่มที่สร้างขึ้นสำหรับคุณที่เรียกว่า sagemaker. นี่คือคลัสเตอร์ที่เราเชื่อมต่อผ่าน RStudio บน SageMaker

เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

สร้าง RStudio แบบกำหนดเองบนอิมเมจ SageMaker

เราได้สร้างอิมเมจแบบกำหนดเองที่จะติดตั้งการอ้างอิงทั้งหมดของ sparklyr และจะสร้างการเชื่อมต่อกับคลัสเตอร์ EMR ที่เราสร้างขึ้น

หากคุณใช้คลัสเตอร์ EMR และโดเมน RStudio ของคุณเอง ให้แก้ไขสคริปต์ตามนั้น

ตรวจสอบให้แน่ใจว่า Docker กำลังทำงานอยู่ เริ่มต้นด้วยการเข้าสู่ที่เก็บโครงการของเรา:

cd sagemaker-rstudio-emr/sparklyr-image
./build-r-image.sh

ตอนนี้เราจะสร้างอิมเมจ Docker และลงทะเบียนกับ RStudio บนโดเมน SageMaker

  1. บนคอนโซล SageMaker ให้เลือก โดเมน ในบานหน้าต่างนำทาง
  2. เลือกโดเมน select rstudio-domain.
  3. เกี่ยวกับ สิ่งแวดล้อม เลือกแท็บ แนบรูปภาพ
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
    ตอนนี้เราแนบภาพ sparklyr ที่เราสร้างขึ้นก่อนหน้านี้กับโดเมน
  4. สำหรับ เลือกแหล่งที่มาของภาพให้เลือก ภาพที่มีอยู่.
  5. เลือกภาพ sparklyr ที่เราสร้างขึ้น
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  6. สำหรับ คุณสมบัติของภาพปล่อยให้ตัวเลือกเป็นค่าเริ่มต้น
  7. สำหรับ ประเภทภาพให้เลือก ภาพ RStudio.
  8. Choose ส่ง.
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
    ตรวจสอบว่าเพิ่มรูปภาพในโดเมนแล้ว อาจใช้เวลาสองสามนาทีในการแนบรูปภาพจนสุด
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  9. เมื่อพร้อมใช้งาน ให้เข้าสู่ระบบ RStudio บนคอนโซล SageMaker โดยใช้ rstudio-user โปรไฟล์ที่สร้างขึ้น
  10. จากที่นี่ สร้างเซสชันด้วยภาพ sparklyr ที่เราสร้างไว้ก่อนหน้านี้
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
    ก่อนอื่น เราต้องเชื่อมต่อกับคลัสเตอร์ EMR ของเรา
  11. ในบานหน้าต่างการเชื่อมต่อ เลือก การเชื่อมต่อใหม่.
  12. เลือกข้อมูลโค้ดการเชื่อมต่อคลัสเตอร์ EMR และเลือก เชื่อมต่อกับ Amazon EMR Cluster.
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
    หลังจากเรียกใช้รหัสการเชื่อมต่อแล้ว คุณจะเห็นการเชื่อมต่อแบบ Spark ผ่าน Livy แต่ไม่มีตาราง
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  13. เปลี่ยนฐานข้อมูลเป็น credit_card:
    tbl_change_db(sc, “credit_card”)
  14. Choose รีเฟรชข้อมูลการเชื่อมต่อ.
    ตอนนี้คุณสามารถดูตารางได้แล้ว
    เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  15. ตอนนี้นำทางไปยัง rstudio-sparklyr-code-walkthrough.md ไฟล์

สิ่งนี้มีชุดการแปลง Spark ที่เราสามารถใช้ในชุดข้อมูลบัตรเครดิตของเราเพื่อเตรียมพร้อมสำหรับการสร้างแบบจำลอง รหัสต่อไปนี้เป็นข้อความที่ตัดตอนมา:

เถอะ count() จำนวนธุรกรรมที่อยู่ในตารางธุรกรรม แต่ก่อนอื่นเราต้องแคช ใช้การ tbl() ฟังก์ชัน

users_tbl <- tbl(sc, "users")
cards_tbl <- tbl(sc, "cards")
transactions_tbl <- tbl(sc, "transactions")

ลองนับจำนวนแถวสำหรับแต่ละตาราง

count(users_tbl)
count(cards_tbl)
count(transactions_tbl)

ตอนนี้มาลงทะเบียนตารางของเราเป็น Spark Data Frames และดึงข้อมูลเหล่านั้นเข้าสู่คลัสเตอร์ในหน่วยความจำแคชเพื่อประสิทธิภาพที่ดีขึ้น เราจะกรองส่วนหัวที่อยู่ในแถวแรกสำหรับแต่ละตารางด้วย

users_tbl <- tbl(sc, 'users') %>% filter(gender != 'Gender')
sdf_register(users_tbl, "users_spark")
tbl_cache(sc, 'users_spark')
users_sdf <- tbl(sc, 'users_spark') cards_tbl <- tbl(sc, 'cards') %>% filter(expire_date != 'Expires')
sdf_register(cards_tbl, "cards_spark")
tbl_cache(sc, 'cards_spark')
cards_sdf <- tbl(sc, 'cards_spark') transactions_tbl <- tbl(sc, 'transactions') %>% filter(amount != 'Amount')
sdf_register(transactions_tbl, "transactions_spark")
tbl_cache(sc, 'transactions_spark')
transactions_sdf <- tbl(sc, 'transactions_spark')

หากต้องการดูรายการคำสั่งทั้งหมด โปรดดูที่ rstudio-sparklyr-code-walkthrough.md ไฟล์

ทำความสะอาด

หากต้องการล้างทรัพยากรใดๆ เพื่อหลีกเลี่ยงค่าใช้จ่ายที่เกิดซ้ำ ให้ลบเทมเพลตรูท CloudFormation ลบทั้งหมดด้วย บริการไฟล์ Amazon Elastic (Amazon EFS) เมานต์ที่สร้างขึ้นและใดๆ บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon สร้างที่เก็บข้อมูลและวัตถุ (Amazon S3) แล้ว

สรุป

การผสานรวม RStudio บน SageMaker กับ Amazon EMR มอบโซลูชันอันทรงพลังสำหรับการวิเคราะห์ข้อมูลและงานสร้างโมเดลในระบบคลาวด์ ด้วยการเชื่อมต่อ RStudio บน SageMaker และสร้างการเชื่อมต่อ Livy กับ Spark บน EMR คุณสามารถใช้ประโยชน์จากทรัพยากรการประมวลผลของทั้งสองแพลตฟอร์มเพื่อการประมวลผลชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ RStudio ซึ่งเป็นหนึ่งใน IDE ที่ใช้กันอย่างแพร่หลายสำหรับการวิเคราะห์ข้อมูล ช่วยให้คุณใช้ประโยชน์จากโครงสร้างพื้นฐานที่มีการจัดการเต็มรูปแบบ การควบคุมการเข้าถึง เครือข่าย และความสามารถด้านความปลอดภัยของ SageMaker ในขณะเดียวกัน การเชื่อมต่อ Livy กับ Spark บน Amazon EMR ให้วิธีดำเนินการประมวลผลแบบกระจายและปรับขนาดงานประมวลผลข้อมูล

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการใช้เครื่องมือเหล่านี้ร่วมกัน โพสต์นี้จะทำหน้าที่เป็นจุดเริ่มต้น สำหรับข้อมูลเพิ่มเติม โปรดดูที่ RStudio บน Amazon SageMaker. หากคุณมีข้อเสนอแนะหรือการปรับปรุงคุณสมบัติ โปรดสร้างคำขอดึงบน GitHub repo ของเราหรือแสดงความคิดเห็นในโพสต์นี้!


เกี่ยวกับผู้เขียน

เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ไรอันการ์เนอร์ เป็นนักวิทยาศาสตร์ข้อมูลที่มีบริการระดับมืออาชีพของ AWS เขามีความกระตือรือร้นในการช่วยให้ลูกค้า AWS ใช้ R เพื่อแก้ปัญหาด้าน Data Science และ Machine Learning


เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
ราชปฏัก
 เป็นสถาปนิกอาวุโสด้านโซลูชันและเทคโนโลยีที่เชี่ยวชาญด้านบริการทางการเงิน (ประกันภัย การธนาคาร ตลาดทุน) และการเรียนรู้ของเครื่อง เขาเชี่ยวชาญด้าน Natural Language Processing (NLP), Large Language Models (LLM) และ Machine Learning โครงสร้างพื้นฐานและการดำเนินงานโครงการ (MLOps)


เชื่อมต่อ Amazon EMR และ RStudio บน Amazon SageMaker PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.สายิชา ผุดี
 เป็น Solutions Architect ที่ AWS ซึ่งตั้งอยู่ในเมืองดัลลัส รัฐเท็กซัส เขาอยู่กับ AWS มานานกว่า 3 ปีแล้ว ช่วยให้ลูกค้าได้รับศักยภาพที่แท้จริงของ AWS ด้วยการเป็นที่ปรึกษาที่เชื่อถือได้ เขามาจากพื้นฐานด้านการพัฒนาแอปพลิเคชัน มีความสนใจในวิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่อง

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS