Menyesuaikan konfigurasi cluster dan aplikasi dengan AMI versi Amazon sebelumnya EMR - Amazon EMR

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

Menyesuaikan konfigurasi cluster dan aplikasi dengan AMI versi Amazon sebelumnya EMR

Amazon versi EMR rilis 4.0.0 memperkenalkan metode sederhana untuk mengkonfigurasi aplikasi menggunakan klasifikasi konfigurasi. Untuk informasi selengkapnya, lihat Konfigurasikan aplikasi. Saat menggunakan AMI versi, Anda mengonfigurasi aplikasi menggunakan tindakan bootstrap bersama dengan argumen yang Anda lewati. Misalnya, tindakan configure-hadoop dan configure-daemons bootstrap mengatur Hadoop dan properti lingkungan YARN spesifik seperti. --namenode-heap-size Dalam versi yang lebih baru, ini dikonfigurasi menggunakan hadoop-env dan yarn-env klasifikasi konfigurasi. Untuk tindakan bootstrap yang melakukan konfigurasi umum, lihat emr-bootstrap-actions repositori di Github.

Tabel berikut memetakan tindakan bootstrap ke klasifikasi konfigurasi dalam versi EMR rilis Amazon yang lebih baru.

Hadoop
Nama file aplikasi yang terdampak AMIversi tindakan bootstrap Klasifikasi konfigurasi
core-site.xml configure-hadoop -c core-site
log4j.properties configure-hadoop -l hadoop-log4j
hdfs-site.xml configure-hadoop -s hdfs-site
tidak berlaku T/A hdfs-encryption-zones
mapred-site.xml configure-hadoop -m mapred-site
yarn-site.xml configure-hadoop -y yarn-site
httpfs-site.xml configure-hadoop -t httpfs-site
capacity-scheduler.xml configure-hadoop -z capacity-scheduler
yarn-env.sh configure-daemons --resourcemanager-opts yarn-env
Hive
Nama file aplikasi yang terdampak AMIversi tindakan bootstrap Klasifikasi konfigurasi
hive-env.sh tidak berlaku hive-env
hive-site.xml hive-script --install-hive-site ${MY_HIVE_SITE_FILE} hive-site
hive-exec-log4j.properties tidak ada hive-exec-log4j
hive-log4j.properties tidak berlaku hive-log4j
EMRFS
Nama file aplikasi yang terdampak AMIversi tindakan bootstrap Klasifikasi konfigurasi
emrfs-site.xml configure-hadoop -e emrfs-site
tidak berlaku s3get -s s3://custom-provider.jar -d /usr/share/aws/emr/auxlib/ emrfs-site (dengan pengaturan baru fs.s3.cse.encryptionMaterialsProvider.uri)

Untuk daftar semua klasifikasi, lihat Konfigurasikan aplikasi.

Variabel lingkungan aplikasi

Saat menggunakan AMI versi, hadoop-user-env.sh skrip digunakan bersama dengan tindakan configure-daemons bootstrap untuk mengkonfigurasi lingkungan Hadoop. Skrip mencakup tindakan berikut:

#!/bin/bash export HADOOP_USER_CLASSPATH_FIRST=true; echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh

Di Amazon EMR release 4.x, Anda melakukan hal yang sama menggunakan klasifikasi hadoop-env konfigurasi, seperti yang ditunjukkan pada contoh berikut:

[       {          "Classification":"hadoop-env",          "Properties":{          },          "Configurations":[             {                "Classification":"export",                "Properties":{                   "HADOOP_USER_CLASSPATH_FIRST":"true",                   "HADOOP_CLASSPATH":"/path/to/my.jar"                }             }          ]       }    ]

Sebagai contoh lain, menggunakan configure-daemons dan melewati --namenode-heap-size=2048 dan --namenode-opts=-XX:GCTimeRatio=19 setara dengan klasifikasi konfigurasi berikut.

[       {          "Classification":"hadoop-env",          "Properties":{          },          "Configurations":[             {                "Classification":"export",                "Properties":{                   "HADOOP_DATANODE_HEAPSIZE": "2048", "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19"                }             }          ]       }    ]

Variabel lingkungan aplikasi lainnya tidak lagi didefinisikan dalam /home/hadoop/.bashrc. Sebaliknya, mereka terutama diatur dalam /etc/default file per komponen atau aplikasi, seperti /etc/default/hadoop. Skrip pembungkus yang /usr/bin/ diinstal oleh aplikasi juga RPMs dapat mengatur variabel lingkungan tambahan sebelum melibatkan skrip bin yang sebenarnya.

Port layanan

Saat menggunakan AMI versi, beberapa layanan menggunakan port khusus.

Perubahan dalam pengaturan port
Pengaturan AMIversi 3.x Default sumber terbuka
fs.default.name hdfs://IP: 9000 emrDetermined default (hdfs://emrDeterminedIP:8020)
dfs.datanode.address 0.0.0.0:9200 default (0.0.0.0:50010)
dfs.datanode.http.address 0.0.0.0:9102 default (0.0.0.0:50075)
dfs.datanode.https.address 0.0.0.0:9402 default (0.0.0.0:50475)
dfs.datanode.ipc.alamat 0.0.0.0:9201 default (0.0.0.0:50020)
dfs.http.address 0.0.0.0:9101 default (0.0.0.0:50070)
dfs.https.address 0.0.0.0:9202 default (0.0.0.0:50470)
dfs.secondary.http.address 0.0.0.0:9104 default (0.0.0.0:50090)
yarn.nodemanager.alamat 0.0.0.0:9103 default ($ {yarn.nodemanager.hostname}: 0)
yarn.nodemanager.localizer.alamat 0.0.0.0:9033 default ($ {yarn.nodemanager.hostname}: 8040)
yarn.nodemanager.webapp.address 0.0.0.0:9035 default ($ {yarn.nodemanager.hostname}: 8042)
yarn.resourcemanager.address emrDeterminedIP:9022 default (${yarn.resourcemanager.hostname}:8032)
yarn.resourcemanager.admin.address emrDeterminedIP:9025 default (${yarn.resourcemanager.hostname}:8033)
yarn.resourcemanager.resource-tracker.address emrDeterminedIP:9023 default (${yarn.resourcemanager.hostname}:8031)
yarn.resourcemanager.scheduler.address emrDeterminedIP:9024 default (${yarn.resourcemanager.hostname}:8030)
yarn.resourcemanager.webapp.address 0.0.0.0:9026 default (${yarn.resourcemanager.hostname}:8088)
yarn.web-proxy.address emrDeterminedIP:9046 default (no-value)
yarn.resourcemanager.hostname 0.0.0.0 (default) emrDeterminedIP
catatan

Bagian emrDeterminedIP adalah alamat IP yang dihasilkan oleh AmazonEMR.

Pengguna

Saat menggunakan AMI versi, pengguna hadoop menjalankan semua proses dan memiliki semua file. Di Amazon versi EMR rilis 4.0.0 dan yang lebih baru, pengguna ada di tingkat aplikasi dan komponen.

Urutan instalasi, artefak diinstal, dan lokasi file log

Saat menggunakan AMI versi, artefak aplikasi dan direktori konfigurasinya diinstal di /home/hadoop/application direktori. Misalnya, jika Anda menginstal Hive, direktori akan /home/hadoop/hive. Dalam EMR rilis Amazon 4.0.0 dan yang lebih baru, artefak aplikasi diinstal di direktori. /usr/lib/application Saat menggunakan AMI versi, file log ditemukan di berbagai tempat. Tabel di bawah daftar lokasi.

Perubahan di lokasi log di Amazon S3
Daemon atau aplikasi Lokasi direktori
Status instans node/instance-id/instance-state/
hadoop-hdfs-namenode daemon/instance-id/hadoop-hadoop-namenode.log
hadoop-hdfs-datanode daemon/instance-id/hadoop-hadoop-datanode.log
hadoop-benang () ResourceManager daemon/instance-id/yarn-hadoop-resourcemanager
hadoop-yarn (Server Proksi) daemon/instance-id/yarn-hadoop-proxyserver
mapred-historyserver daemon/instance-id/
httpfs daemon/instance-id/httpfs.log
hive-server node/instance-id/hive-server/hive-server.log
hive-metastore node/instance-id/apps/hive.log
Sarang CLI node/instance-id/apps/hive.log
YARNlog pengguna aplikasi dan log kontainer Percobaan tugas/
Mahout Tidak Berlaku
Pig Tidak Berlaku
spark-historyserver Tidak Berlaku
berkas riwayat pekerjaan mapreduce Pekerjaan/

Perintah

Saat menggunakan AMI versi, banyak skrip atau program, seperti/home/hadoop/contrib/streaming/hadoop-streaming.jar, tidak ditempatkan di lingkungan jalur login shell, jadi Anda perlu menentukan jalur lengkap saat Anda menggunakan file jar seperti command-runner.jar atau script-runner.jar untuk menjalankan skrip. command-runner.jarItu terletak di AMI sehingga tidak perlu tahu secara penuh URI seperti halnya denganscript-runner.jar.

Faktor replikasi

Faktor replikasi memungkinkan Anda mengonfigurasi kapan memulai JVM Hadoop. Anda dapat memulai Hadoop baru JVM untuk setiap tugas, yang menyediakan isolasi tugas yang lebih baik, atau Anda dapat berbagi JVMs antar tugas, memberikan overhead kerangka kerja yang lebih rendah. Jika Anda memproses banyak file kecil, masuk akal untuk menggunakan kembali JVM berkali-kali untuk mengamortisasi biaya start-up. Namun, jika setiap tugas membutuhkan waktu lama atau memproses sejumlah besar data, maka Anda mungkin memilih untuk tidak menggunakan kembali JVM untuk memastikan bahwa semua memori dibebaskan untuk tugas-tugas berikutnya. Saat menggunakan AMI versi, Anda dapat menyesuaikan faktor replikasi menggunakan tindakan configure-hadoop bootstrap untuk mengatur mapred.job.reuse.jvm.num.tasks properti.

Contoh berikut menunjukkan pengaturan faktor JVM penggunaan kembali untuk penggunaan kembali tak terbatasJVM.

catatan

Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

aws emr create-cluster --name "Test cluster" --ami-version 3.11.0 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge \ InstanceGroupType=CORE,InstanceCount=2,InstanceType=m3.xlarge \ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop,\ Name="Configuring infinite JVM reuse",Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"]