شعار زيفيرنت

قم بتسريع استكشاف البيانات وتجريبها باستخدام مكتبة AWS Analytics Reference Architecture

التاريخ:

تستخدم المؤسسات بياناتها لحل المشكلات المعقدة عن طريق بدء تجارب صغيرة وإجراء تجارب تكرارية وتحسين الحل. على الرغم من أنه لا يمكن تجاهل قوة التجارب ، يجب على المؤسسات أن تكون حذرة بشأن فعالية التكلفة لمثل هذه التجارب. إذا تم إنفاق الوقت في إنشاء البنية التحتية الأساسية لتمكين التجارب ، فهذا يزيد التكلفة.

يحتاج المطورون إلى بيئة تطوير متكاملة (IDE) لاستكشاف البيانات وتصحيح أخطاء سير العمل ، وملفات تعريف حساب مختلفة لتشغيل مهام سير العمل هذه. إذا اخترت أمازون EMR لحالات الاستخدام هذه ، يمكنك استخدام IDE يسمى ستوديو أمازون إي إم آر لاستكشاف البيانات وتحويلها والتحكم في الإصدار وتصحيح الأخطاء وتشغيل مهام Spark لمعالجة حجم كبير من البيانات. النشر Amazon EMR على Amazon EKS يبسط الإدارة ويقلل التكاليف ويحسن الأداء. ومع ذلك ، يحتاج مهندس البيانات أو مسؤول تكنولوجيا المعلومات إلى قضاء بعض الوقت في إنشاء البنية التحتية الأساسية ، وتكوين الأمان ، وإنشاء نقطة نهاية مُدارة للمستخدمين للاتصال بها. هذا يعني أن مثل هذه المشاريع يجب أن تنتظر حتى يقوم هؤلاء الخبراء بإنشاء البنية التحتية.

في هذا المنشور ، نوضح كيف يمكن لمهندس بيانات أو مسؤول تكنولوجيا المعلومات استخدام ملف الهيكل المرجعي لتحليلات AWS (ARA) لتسريع نشر البنية التحتية ، مما يوفر لمؤسستك الوقت والمال الذي تنفقه على تجارب تحليلات البيانات هذه. نحن نستخدم المكتبة لنشر ملف أمازون كوبرنيتس المرنة (Amazon EKS) ، قم بتكوينها لاستخدام Amazon EMR على EKS ، ونشر ملف الكتلة الافتراضية ونقاط النهاية المدارة و EMR Studio. يمكنك بعد ذلك إما تشغيل المهام على الكتلة الافتراضية أو تشغيل تحليل البيانات الاستكشافية باستخدام دفاتر جوبيتر في Amazon EMR Studio و Amazon EMR على EKS. تمثل البنية أدناه البنية التحتية التي ستنشرها مع AWS Analytics Reference Architecture.

cdk-emr-eks-studio-architecture

المتطلبات الأساسية المسبقة

للمتابعة ، يجب أن يكون لديك حساب AWS يتم تمهيده بامتداد مجموعة تطوير سحابة AWS (AWS CDK). للحصول على تعليمات ، راجع إلباس الحذاء. يستخدم البرنامج التعليمي التالي TypeScript ، ويتطلب الإصدار 2 أو أحدث من AWS CDK. إذا لم يكن لديك AWS CDK مثبتًا ، فارجع إلى قم بتثبيت AWS CDK.

قم بإعداد مشروع AWS CDK

لنشر الموارد باستخدام ARA ، تحتاج أولاً إلى إعداد مشروع AWS CDK وتثبيت مكتبة ARA. أكمل الخطوات التالية:

  1. قم بإنشاء مجلد باسم emr-eks-app:
    mkdir emr-eks-app && cd emr-eks-app

  2. ابدأ مشروع AWS CDK في دليل فارغ وقم بتشغيل الأمر التالي:
    cdk init app --language typescript

  3. قم بتثبيت مكتبة ARA:
    npm install aws-analytics-reference-architecture --save

  4. في lib / emr-eks-app.ts ، قم باستيراد مكتبة ARA على النحو التالي. يستدعي السطر الأول مكتبة ARA ، بينما يحدد السطر الثاني سياسات AWS Identity and Access Management (IAM):
    import * as ara from 'aws-analytics-reference-architecture'; import * as iam from 'aws-cdk-lib/aws-iam';

إنشاء وتعريف مجموعة EKS وحساب القدرات

لإنشاء EMR على EKS الكتلة الافتراضية، تحتاج أولاً إلى نشر مجموعة EKS. تحدد مكتبة ARA بناء يسمى EmrEksCluster. بناء أحكام كتلة EKS ، تمكن أدوار IAM لحسابات الخدمة، وتنشر مجموعة من وحدات التحكم الداعمة مثل وحدة التحكم في إدارة الشهادات (التي تحتاجها نقطة النهاية المُدارة والمستخدمة بواسطة Amazon EMR Studio) بالإضافة إلى قشارة تلقائية للكتلة للحصول على مجموعة مرنة وتوفير التكلفة عند عدم تقديم أي مهمة إلى المجموعة .

In lib/emr-eks-app.ts، أضف السطر التالي:

const emrEks = ara.EmrEksCluster.getOrCreate(this,{ eksAdminRoleArn:ROLE_ARN;, eksClusterName:CLUSTER_NAME; autoscaling: Autoscaler.KARPENTER, });

لمعرفة المزيد حول الخصائص التي يمكنك تخصيصها ، ارجع إلى EmrEksClusterProps. هناك نوعان من المعلمات الإلزامية في EmrEksCluster البناء: الأول eksAdminRoleArn الدور إلزامي وهو الدور الذي تستخدمه للتفاعل مع مستوى التحكم Kubernetes. يجب أن يكون لهذا الدور أذونات إدارية لـ إنشاء أو تحديث الكتلة. المعلمة الثانية هي autoscaling، تتيح لك هذه المعلمة تحديد آلية القياس التلقائي أيضًا كاربنتر or Kubernetes Cluster Autoscaler الأصلي. في هذه المدونة ، سنستخدم Karpenter ونوصي باستخدامه نظرًا لتوسيع نطاق القياس التلقائي وإدارة العقدة المبسطة وتوفيرها. أنت الآن جاهز لتحديد سعة الحوسبة.

تتمثل إحدى طرق تحديد العقد العاملة في Amazon EKS في استخدام مجموعات العقد المُدارة. نستخدم مجموعة عقدة واحدة تسمى toolingالذي يستضيف ملف النوى, تحكم الدخول, مدير الشهادة, كاربنتر وأي حجرة أخرى ضرورية لتشغيل EMR على وظائف EKS أو ManagedEndpoint. نحدد أيضا الافتراضي Karpenter الممولين التي تحدد السعة التي يتعين استخدامها للوظائف المقدمة من قبل EMR على EKS. تم تحسين الموفرين لحالات استخدام Spark المختلفة (الوظائف الحرجة والوظيفة غير الحرجة والتجريب والجلسات التفاعلية). يسمح لك البناء أيضًا بإرسال الموفر الخاص بك المحدد بواسطة بيان Kubernetes من خلال طريقة تسمى addKarpenterProvisioner. دعونا نناقش مقدمي الخدمات المحددين مسبقًا.

تكوينات موفري الخدمة الافتراضية

تم تعيين الموفرين الافتراضيين للتجربة السريعة وهي دائمًا يتم إنشاؤه افتراضيًا. ومع ذلك ، إذا كنت لا ترغب في استخدامها ، فيمكنك تعيين ملف defaultNodeGroups المعلمة ل false في ال EmrEksCluster خصائص وقت الإنشاء. يتم تعريف الموفرين على النحو التالي ويتم إنشاؤهم في كل من الشبكات الفرعية التي تستخدمها Amazon EKS:

  • الموفر الحرج - إنه مكرس لدعم الوظائف ذات اتفاقيات مستوى الخدمة القوية وهي حساسة للوقت. يستخدم الموفر المثيلات عند الطلب ، والتي لم يتم إيقافها ، على عكس مثيلات Spot ، وتتبع دورة حياتها من خلال إحدى الوظائف. تستخدم العقد مخازن المثيل ، وهي أقراص NVMe متصلة فعليًا بالمضيف ، والتي توفر معدل نقل مرتفع للإدخال / الإخراج يسمح بأداء Spark أفضل ، لأنه يتم استخدامه كتخزين مؤقت لانسكاب القرص وخلطه. أنواع المثيل المستخدمة في العقدة هي من عائلة m6gd. تستخدم الأمثلة ملحق أوس جرافيتون المعالج الذي يقدم سعر / أداء أفضل من معالجات x86. لاستخدام هذا الموفر في وظائفك ، يمكنك استخدام ما يلي تكوين العينة، والذي تمت الإشارة إليه في ملف تجاوز التكوين من EMR على تقديم وظيفة EKS.
  • مزود غير حرج - يستفيد الموفر هذا من مثيلات Spot لتوفير تكاليف الوظائف غير الحساسة للوقت أو المهام المستخدمة في التجارب. تستخدم هذه العقدة مثيلات Spot لأن الوظائف ليست حرجة ويمكن مقاطعتها. يمكن إيقاف هذه الحالات إذا تم استرداد المثيل. أنواع المثيل المستخدمة في العقدة هي من عائلة m6gd ، وبرنامج التشغيل عند الطلب والمنفذين في حالات فورية.
  • مزود الكمبيوتر المحمول - الموفر مخصص لتشغيل نقاط النهاية المُدارة التي تستخدمها Amazon EMR Studio لاستكشاف البيانات باستخدام Amazon EMR على EKS. الحالات هي من عائلة t3 وهي عند الطلب للسائق ومثيلات Spot للمنفذين للحفاظ على التكلفة منخفضة. إذا تم إيقاف مثيلات المنفذ ، فسيتم بدء حالات جديدة بواسطة Karpenter. إذا تم إيقاف مثيلات المنفذ كثيرًا ، يمكنك تحديد مثيلاتك التي تستخدم مثيلات عند الطلب.

ما يلي الصفحة يوفر مزيدًا من التفاصيل حول كيفية تعريف كل من الموفر. خاصية الاستيراد التي تم تحديدها في Provisioners الافتراضي هي واحدة لكل AZ. هذا مهم لأنه يسمح لك بتقليل تكلفة النقل بين الشبكات من الألف إلى الياء عندما يقوم Spark بتشغيل خلط ورق اللعب.

بالنسبة لهذا المنشور ، نستخدم مقدمي الخدمات الافتراضيين ، لذلك لا تحتاج إلى إضافة أي أسطر من التعليمات البرمجية لهذا القسم. إذا كنت تريد إضافة موفري الخدمة الخاصين بك ، يمكنك الاستفادة من هذه الطريقة addKarpenterProvisioner لتطبيق البيانات الخاصة بك. يمكنك استخدام الطرق المساعدة في Utils مثل الطبقة readYamlDocument لقراءة مستند YAML و loadYaml تحميل ملفات YAML وتمريرها كوسيطات إلى addKarpenterProvisioner الأسلوب.

نشر الكتلة الافتراضية ودور التنفيذ

الكتلة الظاهرية هي مساحة اسم Kubernetes تم تسجيل Amazon EMR بها ؛ عند تقديمك لوظيفة ما ، يتم تشغيل قرص التشغيل والمنفذ في مساحة الاسم المرتبطة. ال EmrEksCluster يقدم البناء طريقة تسمى addEmrVirtualCluster، مما يؤدي إلى إنشاء الكتلة الافتراضية من أجلك. الطريقة تأخذ EmrVirtualClusterOptions كمعامل ، والتي لها السمات التالية:

  • الاسم - اسم المجموعة الافتراضية الخاصة بك.
  • إنشاء مساحة الاسم - حقل اختياري يُنشئ مساحة اسم EKS. هذا من النوع Boolean ولا يُنشئ افتراضيًا مساحة اسم EKS منفصلة ، لذلك يتم إنشاء الكتلة الافتراضية في مساحة الاسم الافتراضية.
  • مساحة الاسم - اسم مساحة الاسم EKS المراد ربطها بمجموعة EMR الافتراضية. إذا لم يتم توفير مساحة اسم ، فسيستخدم الإنشاء مساحة الاسم الافتراضية.
  1. In lib/emr-eks-app.ts، أضف السطر التالي لإنشاء المجموعة الافتراضية الخاصة بك:
    const virtualCluster = emrEks.addEmrVirtualCluster(this,{ name:'my-emr-eks-cluster', eksNamespace: ‘batchjob’, createNamespace: true });

    نقوم الآن بإنشاء دور التنفيذ ، وهو دور IAM يستخدمه السائق والمنفذ للتفاعل مع خدمات AWS. قبل أن نتمكن من إنشاء دور التنفيذ لـ Amazon EMR ، نحتاج أولاً إلى إنشاء ملف ManagedPolicy. لاحظ أنه في الكود التالي ، قمنا بإنشاء سياسة للسماح بالوصول إلى حاوية Amazon Simple Storage Service (Amazon S3) وسجلات Amazon CloudWatch.

  2. In lib/emr-eks-app.ts، أضف السطر التالي لإنشاء السياسة:
    const emrEksPolicy = new iam.ManagedPolicy(this,'managed-policy',
    { statements: [ new iam.PolicyStatement({ effect: iam.Effect.ALLOW, actions:['s3:PutObject','s3:GetObject','s3:ListBucket'], resources:['YOUR-DATA-S3-BUCKET'] }), new iam.PolicyStatement({ effect: iam.Effect.ALLOW, actions:['logs:PutLogEvents','logs:CreateLogStream','logs:DescribeLogGroups','logs:DescribeLogStreams'], resources:['arn:aws:logs:*:*:*'] }) ] });

    إذا كنت ترغب في استخدام AWS Glue Data Catalog ، فأضف الإذن الخاص به في السياسة السابقة.

    نقوم الآن بإنشاء دور التنفيذ لـ Amazon EMR على EKS باستخدام السياسة المحددة في الخطوة السابقة باستخدام createExecutionRole طريقة المثيل. يمكن للسائق والمنفذ بعد ذلك تولي هذا الدور للوصول إلى البيانات ومعالجتها. يتم تحديد نطاق الدور بطريقة لا يمكن أن تتحمله إلا البودات الموجودة في مساحة اسم الكتلة الظاهرية. لمعرفة المزيد حول الشرط الذي تم تنفيذه بواسطة هذه الطريقة لتقييد الوصول إلى الدور على البودات التي تم إنشاؤها بواسطة Amazon EMR على EKS في مساحة اسم المجموعة الافتراضية ، ارجع إلى استخدام أدوار تنفيذ المهام مع Amazon EMR على EKS.

  3. In lib/emr-eks-app.ts، أضف السطر التالي لإنشاء دور التنفيذ:
    const role = emrEks.createExecutionRole(this,'emr-eks-execution-role', emrEksPolicy, ‘batchjob’,’ execRoleJob’);

    ينتج عن الكود السابق دور IAM يسمى execRoleJob مع سياسة IAM المحددة في emrekspolicy ونطاق إلى مساحة الاسم dataanalysis.

  4. أخيرًا ، نقوم بإخراج المعلمات المهمة لتشغيل الوظيفة:
// Virtual cluster Id to reference in jobs
new cdk.CfnOutput(this, 'VirtualClusterId', { value: virtualCluster.attrId }); // Job config for each nodegroup
new cdk.CfnOutput(this, 'CriticalConfig', { value: emrEks.criticalDefaultConfig }); // Execution role arn
new cdk.CfnOutput(this, 'ExecRoleArn', { value: role.roleArn });

انشر Amazon EMR Studio وقم بتوفير المستخدمين

لنشر EMR Studio لاستكشاف البيانات وتأليف الوظائف ، تحتوي مكتبة ARA على بنية تسمى NotebookPlatform. تسمح لك هذه البنية بنشر أكبر عدد تريده من استوديوهات EMR (ضمن حد الحساب) وإعدادها باستخدام وضع المصادقة المناسب لك وتعيين المستخدمين لهم. لمعرفة المزيد حول أوضاع المصادقة المتوفرة في Amazon EMR Studio ، ارجع إلى اختر وضع المصادقة لـ Amazon EMR Studio.

ينشئ البناء جميع الأدوار والسياسات اللازمة لإدارة الهوية والإنترنت التي يحتاجها Amazon EMR Studio. كما أنه ينشئ حاوية S3 حيث يتم تخزين جميع أجهزة الكمبيوتر المحمولة بواسطة Amazon EMR Studio. الحاوية مشفرة بامتداد مفتاح يديره العميل (CMK) تم إنشاؤه بواسطة مكدس AWS CDK. توضح لك الخطوات التالية كيفية إنشاء استوديو EMR الخاص بك باستخدام البنية.

يأخذ بناء منصة الكمبيوتر المحمول NotebookPlatformProps كخاصية تسمح لك بتعريف EMR Studio الخاص بك ومساحة الاسم واسم EMR Studio ووضع المصادقة الخاص به.

  1. In lib/emr-eks-app.ts، أضف السطر التالي:
    const notebookPlatform = new ara.NotebookPlatform(this, 'platform-notebook', {
    emrEks: emrEks,
    eksNamespace: 'dataanalysis',
    studioName: 'platform',
    studioAuthMode: ara.StudioAuthMode.IAM,
    });

    بالنسبة لهذا المنشور ، نستخدم مستخدمي IAM بحيث يمكنك إعادة إنتاجه بسهولة في حسابك الخاص. ومع ذلك ، إذا كان لديك اتحاد IAM أو تسجيل دخول واحد (SSO) بالفعل ، فيمكنك استخدامها بدلاً من مستخدمي IAM. NotebookPlatformProps، تشير إلى NotebookPlatformProps.

    بعد ذلك ، نحتاج إلى إنشاء المستخدمين وتعيينهم في Amazon EMR Studio. لهذا ، فإن للبناء طريقة تسمى addUser يأخذ قائمة المستخدمين ويقوم إما بتعيينهم إلى Amazon EMR Studio في حالة الدخول الموحد أو يقوم بتحديث سياسة IAM للسماح بالوصول إلى Amazon EMR Studio لمستخدمي IAM المقدمين. يمكن أن يكون لدى المستخدم أيضًا عدة نقاط نهاية مُدارة ، ويمكن لكل مستخدم تحديد إصدار Amazon EMR الخاص به. يمكنهم استخدام مجموعة مختلفة من مثيلات Amazon Elastic Compute Cloud (Amazon EC2) وأذونات مختلفة باستخدام أدوار تنفيذ المهام.

  2. In lib/emr-eks-app.ts، أضف السطر التالي:
    notebookPlatform.addUser([{
    identityName:<NAME-OF-EXISTING-IAM-USER>,
    notebookManagedEndpoints: [{
    emrOnEksVersion: 'emr-6.8.0-latest',
    executionPolicy: emrEksPolicy,
    managedEndpointName: ‘myendpoint’
    }],
    }]);

    في الكود السابق ، من أجل الإيجاز ، نعيد استخدام نفس سياسة IAM التي أنشأناها في دور التنفيذ.

    لاحظ أن البناء يُحسن عدد نقاط النهاية المُدارة التي تم إنشاؤها. إذا كان لنقطتي نهاية بنفس الاسم ، فسيتم إنشاء واحدة فقط.

  3. الآن بعد أن حددنا انتشارنا ، يمكننا نشره:
 npm run build && cdk deploy

يمكنك العثور على نموذج مشروع يحتوي على جميع خطوات الجولة في GitHub التالية مستودع.

عند اكتمال النشر ، يحتوي الإخراج على حاوية S3 التي تحتوي على أصول podTemplateوالرابط الخاص بـ EMR Studio ومعرّف المجموعة الافتراضية لـ EMR Studio. تُظهر لقطة الشاشة التالية إخراج AWS CDK بعد اكتمال النشر.

إخراج CDK
إرسال الوظائف

نظرًا لأننا نستخدم مزودي الخدمة الافتراضيين ، فسنستخدم امتداد podTemplate التي يتم تحديدها من خلال البناء المتاح على مستودع ARA GitHub. يتم تحميلها لك بواسطة البنية إلى حاوية S3 تسمى <clustername>-emr-eks-assets؛ ما عليك سوى الرجوع إليهم في وظيفة Spark الخاصة بك. في هذه المهمة ، يمكنك أيضًا استخدام معلمات الوظيفة في الإخراج في نهاية نشر AWS CDK. تسمح لك هذه المعلمات باستخدام AWS Glue Data Catalog وتطبيق Spark على أفضل ممارسات Kubernetes مثل dynamicAllocation وترتيب البودات. في نهاية cdk deploy ستقوم ARA بإخراج تكوينات عينة الوظيفة مع أفضل الممارسات المدرجة قبل ذلك والتي يمكنك استخدامها لتقديم وظيفة. يمكنك تقديم وظيفة على النحو التالي.

تشغيل المهمة هو وحدة عمل مثل ملف Spark JAR الذي يتم إرساله إلى EMR على مجموعة EKS. نبدأ العمل باستخدام start-job-run أمر. لاحظ أنه يمكنك استخدام ملفات SparkSubmitParameters لتحديد مسار Amazon S3 لقالب pod ، كما هو موضح في الأمر التالي:

aws emr-containers start-job-run --virtual-cluster-id <CLUSTER-ID> --name <SPARK-JOB-NAME> --execution-role-arn <ROLE-ARN> --release-label emr-6.8.0-latest --job-driver '{ "sparkSubmitJobDriver": { "entryPoint": ""<S3URI-SPARK-JOB>"
}
}' --configuration-overrides '{ "applicationConfiguration": [
{ "classification": "spark-defaults", "properties": { "spark.hadoop.hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory", "spark.sql.catalogImplementation": "hive", "spark.dynamicAllocation.enabled":"true", "spark.dynamicAllocation.minExecutors": "8", "spark.dynamicAllocation.maxExecutors": "40", "spark.kubernetes.allocation.batch.size": "8", "spark.executor.cores": "8", "spark.kubernetes.executor.request.cores": "7", "spark.executor.memory": "28G", "spark.driver.cores": "2", "spark.kubernetes.driver.request.cores": "2", "spark.driver.memory": "6G", "spark.dynamicAllocation.executorAllocationRatio": "1", "spark.dynamicAllocation.shuffleTracking.enabled": "true", "spark.dynamicAllocation.shuffleTracking.timeout": "300s", "spark.kubernetes.driver.podTemplateFile": s3://<EKS-CLUSTER-NAME>-emr-eks-assets-<ACCOUNT-ID>-<REGION> /<EKS-CLUSTER-NAME>/pod-template/critical-driver.yaml ", "spark.kubernetes.executor.podTemplateFile": s3://<EKS-CLUSTER-NAME>-emr-eks-assets-<ACCOUNT-ID>-<REGION> /<EKS-CLUSTER-NAME>/pod-template/critical-executor.yaml "
}
}
], "monitoringConfiguration": { "cloudWatchMonitoringConfiguration": { "logGroupName": ""<Log_Group_Name>", "logStreamNamePrefix": "<Log_Stream_Prefix>"
}
}'

يأخذ الرمز القيم التالية:

  • - معرف الكتلة الافتراضية EMR
  • - اسم وظيفتك في Spark
  • - دور التنفيذ الذي قمت بإنشائه
  • - عنوان Amazon S3 URI لوظيفة Spark الخاصة بك
  • - Amazon S3 URI لقالب جراب برنامج التشغيل ، الذي تحصل عليه من إخراج AWS CDK
  • - عنوان Amazon S3 URI لقالب جراب المنفذ
  • - اسم مجموعة سجل CloudWatch الخاص بك
  • - بادئة تدفق سجل CloudWatch الخاص بك

يمكنك الانتقال إلى وحدة تحكم Amazon EMR للتحقق من حالة وظيفتك وعرض السجلات. يمكنك أيضًا التحقق من الحالة عن طريق تشغيل ملف describe-job-run أمر:

aws emr-containers describe-job-run --<CLUSTER-ID> cluster-id --id <JOB-RUN-ID>

استكشف البيانات باستخدام Amazon EMR Studio

في هذا القسم ، نوضح كيف يمكنك إنشاء مساحة عمل في Amazon EMR Studio والاتصال بنقطة النهاية المُدارة من Amazon EKS من مساحة العمل. من الإخراج ، استخدم الرابط إلى Amazon EMR Studio للانتقال إلى نشر EMR Studio. يجب عليك تسجيل الدخول باستخدام IAM اسم المستخدم قدمته في addUser الأسلوب.

قم بإنشاء مساحة عمل

لإنشاء مساحة عمل ، أكمل الخطوات التالية:

  1. سجّل الدخول إلى EMR Studio الذي تم إنشاؤه بواسطة AWS CDK.
  2. اختار قم بإنشاء مساحة عمل.
  3. أدخل اسم مساحة العمل ووصفًا اختياريًا.
  4. أختار السماح التعاون في مساحة العمل إذا كنت ترغب في العمل مع مستخدمي Studio آخرين في مساحة العمل هذه في الوقت الفعلي.
  5. اختار قم بإنشاء مساحة عمل.

إنشاء-emr-studio-workspace

بعد إنشاء مساحة العمل ، اخترها من قائمة مساحات العمل لفتح بيئة JupyterLab.
emr studio workspace قيد التشغيل

توضح لقطة الشاشة التالية كيف تبدو المحطة. لمزيد من المعلومات حول واجهة المستخدم ، ارجع إلى فهم واجهة مستخدم مساحة العمل.

عرض مساحة عمل EMR Studio

اتصل بـ EMR على نقطة النهاية المُدارة بواسطة EKS

يمكنك الاتصال بسهولة بـ EMR على نقطة النهاية المُدارة بواسطة EKS من مساحة العمل.

  1. في جزء التنقل ، في ملف مجموعات القائمة، حدد مجموعة EMR على EKS For نوع الكتلة.
    تظهر المجموعات الافتراضية في EMR Cluster في القائمة المنسدلة EKS ، وتظهر نقطة النهاية في القائمة المنسدلة نقطة النهاية. إذا كانت هناك نقاط نهاية متعددة ، فستظهر هنا ، ويمكنك التبديل بسهولة بين نقاط النهاية من مساحة العمل.
  2. حدد نقطة النهاية المناسبة واختر إرفاق.
    إرفاق بنقطة نهاية مُدارة

العمل مع جهاز كمبيوتر محمول

يمكنك الآن فتح دفتر ملاحظات والاتصال بنواة مفضلة للقيام بمهامك. على سبيل المثال ، يمكنك تحديد نواة PySpark ، كما هو موضح في لقطة الشاشة التالية.
حدد النواة

استكشف بياناتك

تتمثل الخطوة الأولى في تمرين استكشاف البيانات في إنشاء جلسة Spark ثم تحميل مجموعة بيانات سيارات الأجرة في نيويورك من دلو S3 إلى إطار البيانات. استخدم كتلة التعليمات البرمجية التالية لتحميل البيانات في إطار بيانات. انسخ Amazon S3 URI للموقع حيث توجد مجموعة البيانات في Amazon S3.

	from pyspark.sql import SparkSession from pyspark.sql.functions import * from datetime import datetime spark = SparkSession.builder.appName("SparkEDAA").getOrCreate()

بعد تحميل البيانات في إطار بيانات ، نستبدل بيانات ملف current_date عمود بالتاريخ الحالي الفعلي ، واحسب عدد الصفوف ، واحفظ البيانات في ملف باركيه:

print("Total number of records: " + str(updatedNYTaxi.count()))
updatedNYTaxi.write.parquet("<YOUR-S3-PATH>")

تُظهر لقطة الشاشة التالية نتيجة تشغيل الكمبيوتر الدفتري الخاص بنا على Amazon EMR Studio ومع PySpark الذي يعمل على Amazon EMR على EKS.
تنفيذ دفتر الملاحظات

تنظيف

للتنظيف بعد هذا المنشور ، قم بتشغيل cdk destroy.

وفي الختام

في هذا المنشور ، أوضحنا كيف يمكنك استخدام ARA لنشر البنية التحتية لتحليل البيانات بسرعة والبدء في تجربة بياناتك. يمكنك العثور على المثال الكامل المشار إليه في هذا المنشور في ملف مستودع جيثب. تنفذ البنية المرجعية لـ AWS Analytics نمط التحليلات المشترك وأفضل ممارسات AWS لتوفر لك استعدادًا لاستخدام التركيبات في تجاربك. أحد الأنماط هو شبكة البيانات ، والتي يمكنك الرجوع إلى كيفية استخدامها في هذا بلوق وظيفة.

يمكنك أيضا استكشاف أخرى البنى المعروضة في هذه المكتبة لتجربة خدمات AWS Analytics قبل نقل عبء العمل للإنتاج.


حول المؤلف

المؤلف المشارك -1لطفي مهيب هو مهندس حلول أقدم يعمل مع فريق القطاع العام مع Amazon Web Services. يساعد عملاء القطاع العام في منطقة أوروبا والشرق الأوسط وإفريقيا على إدراك أفكارهم وبناء خدمات جديدة والابتكار للمواطنين. في أوقات فراغه ، يستمتع لطفي بركوب الدراجات والجري.

سانديبان بوميك هو مهندس حلول متخصص في التحليلات ومقره لندن. لقد عمل مع عملاء في صناعات مختلفة مثل الخدمات المصرفية والمالية والرعاية الصحية والطاقة والمرافق والتصنيع والتجزئة لمساعدتهم على حل التحديات المعقدة باستخدام منصات البيانات واسعة النطاق. يركز في AWS على الحسابات الإستراتيجية في المملكة المتحدة وأيرلندا ويساعد العملاء على تسريع رحلتهم إلى السحابة والابتكار باستخدام تحليلات AWS وخدمات التعلم الآلي. يحب لعب كرة الريشة وقراءة الكتب.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة