0
쉘 스크립트가 HDFS
입니다. HDFS에서만이 스크립트의 로그를 수집하려고합니다. 스크립트의쉘 스크립트의 로그 파일을 HDFS에 저장하는 방법
내용은 다음과 같습니다 로그 파일에 추가되지 않습니다
#!/bin/bash
TIMESTAMP=`date "+%Y-%m-%d"`
hdfs dfs -touchz /user/$USER/logs/`date "+%Y-%m-%d"`/${TIMESTAMP}.success_log
hdfs dfs -touchz /user/$USER/logs/`date "+%Y-%m-%d"`/${TIMESTAMP}.fail_log
success_logs=/user/$USER/logs/`date "+%Y-%m-%d"`/${TIMESTAMP}.success_log
failed_logs=/user/$USER/logs/`date "+%Y-%m-%d"`/${TIMESTAMP}.fail_log
function log_status
{
status=$1
message=$2
if [ "$status" -ne 0 ]; then
echo "`date +\"%Y-%m-%d %H:%M:%S\"` [ERROR] $message [Status] $status : failed" | tee -a "${failed_logs}"
#echo "Please find the attached log file for more details"
exit 1
else
echo "`date +\"%Y-%m-%d %H:%M:%S\"` [INFO] $message [Status] $status : success" | tee -a "${success_logs}"
fi
}
. 파일 만 생성됩니다.
어떻게 파일이 로그 파일에 추가되지 않습니다 HDFS
로컬로 먼저 쓰고 HDFS로 업로드하는 것이 어떨까요? – franklinsijo
이것은 바로 쉘 액션이 될 것입니까? 이 경우 로컬 파일 시스템에 로그 파일을 작성할 수 있습니다. – franklinsijo
예, 로컬 파일 시스템입니다. 그렇지 않으면 예외가 발생합니까? 어쨌든 HDFS에 파일을 추가하는 솔루션을 제공 할 것입니다. 최종 통화는 할 수 있습니다. 로컬에 로그를 작성하고 마지막에 HDFS에 업로드하거나 HDFS에서 직접 로그 파일에 추가 할 수 있습니다. 나는 첫번째를 선호한다. – franklinsijo