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

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

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

Rilis Amazon EMR versi 4.0.0 memperkenalkan metode sederhana untuk mengkonfigurasi aplikasi menggunakan klasifikasi konfigurasi. Untuk informasi selengkapnya, lihat Konfigurasikan aplikasi. Bila menggunakan versi AMI, Anda mengkonfigurasi aplikasi menggunakan tindakan bootstrap bersama dengan argumen yang Anda lulus. Misalnya, configure-hadoop dan configure-daemons tindakan bootstrap mengatur Hadoop dan Yarn—properti lingkungan khusus 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 pada Github.

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

Hadoop
Nama file aplikasi yang terdampak Tindakan bootstrap versi AMI 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 tidak ada 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 Tindakan bootstrap versi AMI 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 ada hive-log4j
EMRFS
Nama file aplikasi yang terdampak Tindakan bootstrap versi AMI 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

Bila menggunakan versi AMI, hadoop-user-env.sh digunakan bersama dengan configure-daemons tindakan 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 rilis 4.x, Anda melakukan hal yang sama menggunakan hadoop-env klasifikasi konfigurasi, seperti yang ditunjukkan dalam 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 di /usr/bin/ diinstal oleh aplikasi RPM juga dapat mengatur variabel lingkungan tambahan sebelum melibatkan script bin yang sebenarnya.

Port layanan

Saat menggunakan versi AMI, beberapa layanan menggunakan port kustom.

Perubahan dalam pengaturan port
Pengaturan AMI versi 3.x Default sumber terbuka
fs.default.name hdfs://emrDeterminedIP:9000 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.alamat emrDeterminedIP:9046 default (tidak ada nilai)
yarn.resourcemanager.hostname 0.0.0.0 (default) emrDeterminedIP
catatan

Parameter emrDeterminedIP adalah alamat IP yang dihasilkan oleh Amazon EMR.

Pengguna

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

Urutan instalasi, artefak diinstal, dan lokasi file log

Ketika menggunakan versi AMI, artefak aplikasi dan direktori konfigurasi mereka diinstal di /home/hadoop/application direktori. Misalnya, jika Anda menginstal Hive, direktori akan /home/hadoop/hive. Di Amazon EMR rilis 4.0.0 dan kemudian, artefak aplikasi diinstal di /usr/lib/application direktori. Bila menggunakan versi AMI, 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 Simdu/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
server hive Simdu/instance-id/hive-server/hive-server.log
hive-metastore node/instance-id/apps/hive.log
Hive CLI node/instance-id/apps/hive.log
aplikasi BEARN log pengguna dan log kontainer Percobaan tugas/
Mahout Tidak Berlaku
Pig Tidak Berlaku
spark-historyserver Tidak Berlaku
berkas riwayat pekerjaan mapreduce Pekerjaan/

Perintah

Saat menggunakan versi AMI, banyak skrip atau program, seperti /home/hadoop/contrib/streaming/hadoop-streaming.jar, tidak ditempatkan pada lingkungan path login shell, sehingga Anda perlu menentukan path lengkap ketika Anda menggunakan file jar seperti command-runner.jar atau script-runner.jar untuk mengeksekusi script. Parameter command-runner.jar terletak di AMI sehingga tidak perlu mengetahui URI lengkap seperti halnya dengan script-runner.jar.

Faktor replikasi

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

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

catatan

Karakter kelanjutan baris Linux (\) disertakan untuk memudahkan pembacaan. 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"]