После некоторого исследования я придумал следующее:
Создан файл modify_ntp_config.sh
на S3:
#!/bin/bash set -eEu ntp_config_file="$" echo "Removing 'server 10.*' entries from \"$ntp_config_file\"" sudo sed -i -e '/server 10.*/d' $ntp_config_file echo "Reinitialize ntp" sudo service ntpd stop sudo ntpdate -s time.nist.gov sudo service ntpd start
Скопировал этот файл в s3:
$ aws s3 cp /var/tmp/modify_ntp_config.sh \ s3://<s3-bucket-name>/data/scripts/modify_ntp_config.sh
А затем с помощью aws-tools
:
aws emr create-cluster --name "..." [...cluster create options ...] \ --steps \ Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://<region>.elasticmapreduce/libs/script-runner/script-runner.jar,\ Args=["s3://<s3-bucket-name>/data/scripts/modify_ntp_config.sh","/etc/ntp.conf"]
Результаты в следующем выводе журнала (скопированы с s3 на локальный диск)
$ aws s3 cp --recursive s3://<s3-bucket-name>/log/<cluster-id>/steps/<step-id>/ /var/tmp/5HKO7 download: s3://[...]/stdout.gz to ../../var/tmp/5HKO7/stdout.gz download: s3://[...]/stderr.gz to ../../var/tmp/5HKO7/stderr.gz download: s3://[...]/controller.gz to ../../var/tmp/5HKO7/controller.gz $ zcat /var/tmp/5HKO7/stdout.gz Downloading 's3://<s3-bucket-name>/data/scripts/modify_ntp_config.sh' to '/mnt/var/lib/hadoop/steps/[...]/.' Removing 'server 10.*' entries from "/etc/ntp.conf" Reinitialize ntp Shutting down ntpd: [ OK ] Starting ntpd: [ OK ] $ zcat /var/tmp/5HKO7/stderr.gz Command exiting with ret '0'
ПРИМЕЧАНИЕ. Другой способ - использовать его на уже запущенном кластере emr aws emr add-steps
.
$ aws emr add-steps --cluster-id "j-<emr_cluster_id>"\ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://<region>.elasticmapreduce/libs/script-runner/script-runner.jar,\ Args=["s3://<s3-bucket-name>/data/scripts/modify_ntp_config.sh","/etc/ntp.conf"]
Ссылки: https://docs.aws.amazon.com/emr/latest/DeveloperGuide//emr-hadoop-script.html https://docs.aws.amazon.com/cli/latest/reference/emr/add- steps.html https://askubuntu.com/questions/254826/how-to-force-a-clock-update-using-ntp https://unix.stackexchange.com/questions/158802/how-to-update- нтп-без выключения-погружного НТП-демон