azkaban是將任務的執行日誌儲存在mysql 表中的,根據任務的exec_id
,name
,attempt
,即可獲取對應任務的日誌,當日誌檔案比較大時,日誌將按照50kb的規格來進行分段儲存,每一段日誌都插入一條資料,詳細內容如下文。
mysql表的schema如下:
create
table
`execution_logs`
(`exec_id`
int(11)
notnull
,`name`
varchar
(640
)not
null
,`attempt`
int(11)
notnull
,`enc_type`
tinyint(4
)default
null
,`start_byte`
int(11)
notnull
,`end_byte`
int(11)
default
null
,`log`
longblob
,`upload_time`
bigint(20
)default
null
,primary
key(
`exec_id`
,`name`
,`attempt`
,`start_byte`),
key`ex_log_attempt`
(`exec_id`
,`name`
,`attempt`),
key`ex_log_index`
(`exec_id`
,`name`),
key`ex_log_upload_time`
(`upload_time`))
engine
=innodb
default
charset
=utf8;
private
void
uploadlogfile
(final databasetransoperator transoperator,
final
int execid,
final string name,
final
int attempt,
final file[
] files,
final encodingtype enctype)
throws sqlexception
else
size = bufferedstream.
read
(buffer, pos, length);}
}finally
}// final commit of buffer.
if(pos >0)
}catch
(final sqlexception e)
catch
(final ioexception e)
}
private
void
uploadlogpart
(final databasetransoperator transoperator,
final
int execid,
final string name,
final
int attempt,
final
int startbyte,
final
int endbyte,
final encodingtype enctype,
final
byte
buffer,
final
int length)
throws sqlexception, ioexception
else
if(length < buf.length)
transoperator.
update
(insert_execution_logs, execid, name, attempt,
enctype.
getnumval()
, startbyte, startbyte + length, buf, datetime.
now().
getmillis()
);}
Linux中後台執行任務
執行時,可以在命令最後新增 使其後台執行,但是其輸出依然會顯示,而且其執行是和當前shell繫結的 如果指令碼已經執行,可以使用ctrl z暫停,然後使用 bg 讓其轉入後台,再 disown 解除關聯,例如 z 1 stopped make j2 tomcat n00 master bg 1 ma...
hbase中執行mr任務
1.檢視hbase的mr任務的執行 bin hbase mapredcp 2.環境 永久生效,在 etc profile vi etc profile export hbase home opt hbase export hadoop home opt hadoop 並在hadoop env.sh中...
golang中執行定時任務
cron 定時任務 按照約定的時間,定時的執行特定的任務 job cron 表示式表達了這種約定。格式一 cron表示式是乙個字串,字串分為6個域,中間以空格隔開,每個域代表乙個含義 seconds minutes hours dayofmonth month dayofweek 欄位名是否必須 允...