Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan Nvidia Spark-Rapids Accelerator untuk Spark
Dengan Amazon EMR rilis versi 6.2.0 dan kemudian, Anda dapat menggunakan JERAM
Bagian berikut memandu Anda melalui konfigurasi cluster EMR Anda untuk menggunakan Plugin Spark-Rapids untuk Spark.
Pilih jenis instans
Untuk menggunakan plugin Nvidia Spark-Rapids untuk Spark, kelompok inti dan contoh tugas harus menggunakan jenis contoh GPU EC2 yang memenuhi Persyaratan perangkat keras
Mengatur konfigurasi aplikasi untuk cluster
1. Aktifkan Amazon EMR untuk menginstal plugin di cluster baru Anda
Untuk menginstal plugin, menyediakan konfigurasi berikut saat membuat cluster Anda:
{ "Classification":"spark", "Properties":{ "enableSparkRapids":"true" } }
2. Configure YARN para usar
Untuk rincian tentang penggunaan GPU di BEARN, lihat Menggunakan GPU pada BEARN
{ "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.resource-plugins":"yarn.io/gpu", "yarn.resource-types":"yarn.io/gpu", "yarn.nodemanager.resource-plugins.gpu.allowed-gpu-devices":"auto", "yarn.nodemanager.resource-plugins.gpu.path-to-discovery-executables":"/usr/bin", "yarn.nodemanager.linux-container-executor.cgroups.mount":"true", "yarn.nodemanager.linux-container-executor.cgroups.mount-path":"/sys/fs/cgroup", "yarn.nodemanager.linux-container-executor.cgroups.hierarchy":"yarn", "yarn.nodemanager.container-executor.class":"org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor" } }, { "Classification":"container-executor", "Properties":{ }, "Configurations":[ { "Classification":"gpu", "Properties":{ "module.enabled":"true" } }, { "Classification":"cgroups", "Properties":{ "root":"/sys/fs/cgroup", "yarn-hierarchy":"yarn" } } ] }
3. Configurar Spark para usar
Berikut adalah konfigurasi yang diperlukan untuk mengaktifkan Spark untuk menggunakan RAPIDS Plugin:
{ "Classification":"spark-defaults", "Properties":{ "spark.plugins":"com.nvidia.spark.SQLPlugin", "spark.sql.sources.useV1SourceList":"", "spark.executor.resource.gpu.discoveryScript":"/usr/lib/spark/scripts/gpu/getGpusResources.sh", "spark.executor.extraLibraryPath":"/usr/local/cuda/targets/x86_64-linux/lib:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/compat/lib:/usr/local/cuda/lib:/usr/local/cuda/lib64:/usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native:/docker/usr/lib/hadoop/lib/native:/docker/usr/lib/hadoop-lzo/lib/native" } }
Perpustakaan XGBoost4J-spark
{ "Classification":"spark-defaults", "Properties":{ "spark.submit.pyFiles":"/usr/lib/spark/jars/xgboost4j-spark_3.0-1.0.0-0.2.0.jar" } }
Untuk konfigurasi Spark tambahan yang dapat Anda gunakan untuk menyetel cluster EMR GPU-Accelerated, silakan lihat Accelerator Rapids para apache Spark
4. Konfigurasi Penjadwalan Kapasitas
DominantResourceCalculator
harus dikonfigurasi untuk mengaktifkan penjadwalan dan isolasi GPU. Untuk informasi lebih lanjut, lihat: Menggunakan GPU pada BEARN
{ "Classification":"capacity-scheduler", "Properties":{ "yarn.scheduler.capacity.resource-calculator":"org.apache.hadoop.yarn.util.resource.DominantResourceCalculator" } }
5. Buat File JSON untuk Sertakan Semua Konfigurasi Anda
Anda dapat membuat file JSON yang berisi konfigurasi Anda untuk menggunakan plugin RAPIDS untuk cluster Spark Anda. Anda menyediakan file kemudian ketika meluncurkan cluster Anda.
File dapat disimpan secara lokal atau di S3. Untuk informasi selengkapnya tentang cara menyediakan konfigurasi aplikasi untuk kluster Anda, lihat Konfigurasikan aplikasi.
Berikut ini adalah file sampel bernama my-configurations.json
. Anda dapat menggunakannya sebagai template untuk mulai membangun konfigurasi Anda sendiri.
[ { "Classification":"spark", "Properties":{ "enableSparkRapids":"true" } }, { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.resource-plugins":"yarn.io/gpu", "yarn.resource-types":"yarn.io/gpu", "yarn.nodemanager.resource-plugins.gpu.allowed-gpu-devices":"auto", "yarn.nodemanager.resource-plugins.gpu.path-to-discovery-executables":"/usr/bin", "yarn.nodemanager.linux-container-executor.cgroups.mount":"true", "yarn.nodemanager.linux-container-executor.cgroups.mount-path":"/sys/fs/cgroup", "yarn.nodemanager.linux-container-executor.cgroups.hierarchy":"yarn", "yarn.nodemanager.container-executor.class":"org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor" } }, { "Classification":"container-executor", "Properties":{ }, "Configurations":[ { "Classification":"gpu", "Properties":{ "module.enabled":"true" } }, { "Classification":"cgroups", "Properties":{ "root":"/sys/fs/cgroup", "yarn-hierarchy":"yarn" } } ] }, { "Classification":"spark-defaults", "Properties":{ "spark.plugins":"com.nvidia.spark.SQLPlugin", "spark.sql.sources.useV1SourceList":"", "spark.executor.resource.gpu.discoveryScript":"/usr/lib/spark/scripts/gpu/getGpusResources.sh", "spark.executor.extraLibraryPath":"/usr/local/cuda/targets/x86_64-linux/lib:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/compat/lib:/usr/local/cuda/lib:/usr/local/cuda/lib64:/usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native:/docker/usr/lib/hadoop/lib/native:/docker/usr/lib/hadoop-lzo/lib/native", "spark.submit.pyFiles":"/usr/lib/spark/jars/xgboost4j-spark_3.0-1.0.0-0.2.0.jar", "spark.rapids.sql.concurrentGpuTasks":"1", "spark.executor.resource.gpu.amount":"1", "spark.executor.cores":"2", "spark.task.cpus":"1", "spark.task.resource.gpu.amount":"0.5", "spark.rapids.memory.pinnedPool.size":"0", "spark.executor.memoryOverhead":"2G", "spark.locality.wait":"0s", "spark.sql.shuffle.partitions":"200", "spark.sql.files.maxPartitionBytes":"512m" } }, { "Classification":"capacity-scheduler", "Properties":{ "yarn.scheduler.capacity.resource-calculator":"org.apache.hadoop.yarn.util.resource.DominantResourceCalculator" } } ]
Menambahkan tindakan bootstrap untuk cluster Anda
Untuk menggunakan YARN pada GPU, Anda perlu membuka izin cgroups ke BEARN di cluster Anda, yang dapat dilakukan dengan menggunakan skrip tindakan bootstrap EMR.
Untuk informasi lebih lanjut tentang cara menyediakan skrip tindakan bootstrap saat membuat cluster Anda, lihat Dasar tindakan bootstrap di Amazon EMR.
Berikut ini adalah contoh skrip bernama my-bootstap-action.sh
:
#!/bin/bash set -ex sudo chmod a+rwx -R /sys/fs/cgroup/cpu,cpuacct sudo chmod a+rwx -R /sys/fs/cgroup/devices
Luncurkan cluster Anda
Langkah terakhir adalah meluncurkan cluster Anda dengan konfigurasi cluster yang disebutkan di atas. Berikut adalah contoh perintah untuk meluncurkan cluster melalui EMR CLI:
aws emr create-cluster \ --release-label emr-6.2.0 \ --applications Name=Hadoop Name=Spark \ --service-role EMR_DefaultRole \ --ec2-attributes KeyName=my-key-pair,InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.4xlarge \ InstanceGroupType=CORE,InstanceCount=1,InstanceType=g4dn.2xlarge \ InstanceGroupType=TASK,InstanceCount=1,InstanceType=g4dn.2xlarge \ --configurations file:///my-configurations.json \ --bootstrap-actions Name='My Spark Rapids Bootstrap action',Path=s3://my-bucket/my-bootstrap-action.sh