也許有更好的辦法,但我們使用腳本來執行同步日誌,以每5秒
#!/bin/sh
# This scripts syncs executor log files to S3.
while [[ $# > 1 ]]; do
key="$1"
case $key in
-l|--log-uri)
LOG_BUCKET="$2"
shift
;;
*)
echo "Unknown option: ${key}"
exit 1;
esac
shift
done
set -u
JOB_FLOW_ID=$(cat /mnt/var/lib/info/job-flow.json | grep jobFlowId | sed -e 's,.*"\(j-.*\)".*,\1,g')
# Start background process that syncs every 5 seconds.
while true; do aws s3 sync /home/hadoop/spark/work ${LOG_BUCKET}/${JOB_FLOW_ID}/executors/`hostname`/; sleep 5; done &
我們啓動腳本(存儲在S3在同步executor-文件名爲S3 logs.sh)在自舉動作
--bootstrap-actions Path=s3://path/to/my/script/sync-executor-logs.sh,Name=Sync-executor-logs,Args=[-l,s3://path/to/logfiles]
謝謝,這是一個很好的解決方案!現在我們大多運行在YARN上,而YARN爲日誌文件提供了一些處理。雖然我還沒有完全想到如何配置它,但它也解決了我們的許多問題。 –