Menjalankan pekerjaan Spark ETL dengan waktu startup yang berkurang - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menjalankan pekerjaan Spark ETL dengan waktu startup yang berkurang

AWS Glueversi 2.0 dan yang lebih baru menyediakan infrastruktur yang ditingkatkan untuk menjalankan pekerjaan Apache Spark ETL (ekstrak, transformasi, dan muat) AWS Glue dengan waktu startup yang berkurang. Dengan berkurangnya waktu tunggu, insinyur data dapat lebih produktif dan meningkatkan interaktivitas mereka dengan AWS Glue. Varians yang berkurang dalam waktu mulai tugas dapat membantu Anda memenuhi atau melampaui SLA Anda dalam membuat data tersedia untuk analitik.

Untuk menggunakan fitur ini dengan pekerjaan AWS Glue ETL Anda, pilih 2.0 atau versi yang lebih baru untuk Glue version saat membuat pekerjaan Anda.

Fitur baru yang didukung

Bagian ini menjelaskan fitur baru yang didukung dengan AWS Glue versi 2.0 dan yang lebih baru.

Support untuk menentukan modul Python tambahan di tingkat pekerjaan

AWS Glueversi 2.0 dan yang lebih baru juga memungkinkan Anda menyediakan modul Python tambahan atau versi berbeda di tingkat pekerjaan. Anda dapat menggunakan --additional-python-modules dengan daftar modul Python yang dipisahkan koma untuk menambahkan modul baru atau mengubah versi dari modul yang ada.

Misalnya untuk memperbarui atau menambahkan modul scikit-learn baru menggunakan nilai/kunci berikut: "--additional-python-modules", "scikit-learn==0.21.3".

Selain itu, dalam opsi --additional-python-modules Anda dapat menentukan path Amazon S3 ke modul roda Python. Misalnya:

--additional-python-modules s3://aws-glue-native-spark/tests/j4.2/ephem-3.7.7.1-cp37-cp37m-linux_x86_64.whl,s3://aws-glue-native-spark/tests/j4.2/fbprophet-0.6-py3-none-any.whl,scikit-learn==0.21.3

AWS Glue menggunakan Python Package Installer (pip3) untuk menginstal modul tambahan. Anda dapat melewati opsi tambahan yang ditentukan oleh python-modules-installer-option ke pip3 untuk memasang modul. Ketidakcocokan atau batasan apa pun dari pip3 akan berlaku.

Modul Python sudah disediakan di versi 2.0 AWS Glue

AWS Glue versi 2.0 mendukung modul python berikut secara siap pakai:

  • setuptools—45.2.0

  • subprocess32—3.5.4

  • ptvsd—4.3.2

  • pydevd—1.9.0

  • PyMySQL—0.9.3

  • docutils—0.15.2

  • jmespath—0.9.4

  • six—1.14.0

  • python_dateutil—2.8.1

  • urllib3—1.25.8

  • botocore—1.15.4

  • s3transfer—0.3.3

  • boto3—1.12.4

  • certifi—2019.11.28

  • chardet—3.0.4

  • idna—2.9

  • requests—2.23.0

  • pyparsing—2.4.6

  • enum34—1.1.9

  • pytz—2019.3

  • numpy—1.18.1

  • cycler—0.10.0

  • kiwisolver—1.1.0

  • scipy—1.4.1

  • pandas—1.0.1

  • pyarrow—0.16.0

  • matplotlib—3.1.3

  • pyhocon—0.3.54

  • mpmath—1.1.0

  • sympy—1.5.1

  • patsy—0.5.1

  • statsmodels—0.11.1

  • fsspec—0.6.2

  • s3fs—0.4.0

  • Cython—0.29.15

  • joblib—0.14.1

  • pmdarima—1.5.3

  • scikit-learn—0.22.1

  • tbats—1.0.9

Perilaku logging

AWS Glueversi 2.0 dan yang lebih baru mendukung perilaku logging default yang berbeda. Perbedaannya meliputi:

  • Pencatatan log terjadi secara realtime.

  • Ada pengaliran terpisah untuk driver dan pelaksana.

  • Untuk setiap driver dan pelaksana ada dua pengaliran, yanitu pengaliran output dan pengaliran kesalahan.

Aliran driver dan eksekutor

Pengaliran driver diidentifikasi berdasarkan ID eksekusi tugas. Pengaliran pelaksana diidentifikasi berdasarkan <id eksekusi tugas>_<id pelaksana tugas>. Misalnya:

  • "logStreamName": "jr_8255308b426fff1b4e09e00e0bd5612b1b4ec848d7884cebe61ed33a31789..._g-f65f617bd31d54bd94482af755b6cdf464542..."

Aliran keluaran dan kesalahan

Pengaliran output memiliki output standar (stdout) dari kode Anda. Pengaliran kesalahan memiliki pesan log dari kode/perpustakaan Anda.

  • Pengaliran log:

    • Pengaliran log driver memiliki <jr>, dimana <jr> adalah ID eksekusi tugas.

    • Pengaliran log pelaksana memiliki <jr>_<g>, dimana <g> adalah ID tugas untuk pelaksana. Anda dapat mencari ID tugas pelaksana di log kesalahan driver.

Grup log default untuk AWS Glue versi 2.0 adalah sebagai berikut:

  • /aws-glue/jobs/logs/output untuk output

  • /aws-glue/jobs/logs/error untuk kesalahan

Ketika konfigurasi keamanan disediakan, nama grup log berubah menjadi:

  • /aws-glue/jobs/<security configuration>-role/<Role Name>/output

  • /aws-glue/jobs/<security configuration>-role/<Role Name>/error

Pada konsol, tautan Log mengarahkan ke grup log output dan tautan Kesalahan mengarahkan ke grup log kesalahan. Ketika pencatatan log terus menerus diaktifkan, tautan Log mengarahkan ke grup log terus menerus, dan tautan Output mengarahkan ke grup log output.

Aturan pencatatan

catatan

Nama grup log default untuk pencatatan log terus-menerus adalah /aws-glue/jobs/logs-v2.

Di AWS Glue versi 2.0 dan yang lebih baru, logging berkelanjutan memiliki perilaku yang sama seperti di AWS Glue versi 1.0:

  • Grup log default: /aws-glue/jobs/logs-v2

  • Pengaliran log driver: <jr>-driver

  • Pengaliran log pelaksana: <jr>-<ID pelaksana>

    Nama grup log dapat diubah dengan mengatur --continuous-log-logGroupName

    Nama pengaliran log dapat menggunakan prefiks dengan mengatur --continous-log-logStreamPrefix

Fitur tidak didukung

Fitur AWS Glue berikut tidak didukung:

  • Titik akhir pengembangan

  • AWS Glueversi 2.0 dan yang lebih baru tidak berjalan di Apache YARN, jadi pengaturan YARN tidak berlaku

  • AWS Glueversi 2.0 dan yang lebih baru tidak memiliki Hadoop Distributed File System (HDFS)

  • AWS Glueversi 2.0 dan yang lebih baru tidak menggunakan alokasi dinamis, oleh karena itu ExecutorAllocationManager metrik tidak tersedia

  • Untuk AWS Glue versi 2.0 atau pekerjaan yang lebih baru, Anda menentukan jumlah pekerja dan jenis pekerja, tetapi tidak menentukanmaxCapacity.

  • AWS Glueversi 2.0 dan yang lebih baru tidak mendukung di s3n luar kotak. Kami merekomendasikan penggunaan s3 atau s3a. Jika tugas perlu menggunakan s3n untuk alasan apapun, Anda dapat memberikan argumen tambahan berikut:

    --conf spark.hadoop.fs.s3n.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem