azkaban 中對於任務執行日誌的處理

2021-10-10 04:35:23 字數 2309 閱讀 9579

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 欄位名是否必須 允...