最近在做分析程序優化過程中,需要增加分析程序日志,但是在hadoop上運行時,是需要使用hadoop自身的log4j來進行日志輸出,若想要將自定義的log4j日志內容輸出獨立的日志文件,需要修改hadoop自身log4j配置文件,並需要重啟hadoop集群,這、、有點攤上大事的趕腳,所以還是需要其他方法來實現,后來想到后台運行可以導出日志到指定位置,但是每次會將原文件覆蓋,對於查看分析任務是否正常運行也足夠了。
開始想直接在sh中使用nohup運行
nohup hadoop jar analysis_v4_test_args.jar -1 8 8 >/dev/null 1>logs&
但是試過以后發現在nohup以后 需要再次按回車才能生效,這對於cron配置的定時任務來說……費點勁,后來就想在sh中增加回車換行操作,中間也經歷了不少彎路,網上的東西好多問題的說,最后經修改,完成功能。以后終於可以查看分析日志了……代碼如下
1 #!/bin/bash 2 str=$"\n" 3 nohup hadoop jar analysis_v4_test_args.jar -1 8 8 >/dev/null 1>logs& 4 sstr=$(echo -e $str) 5 echo $sstr 6 tail -20 logs