從hadoop 要刪除字串匹配指定的任務

2021-09-07 01:58:07 字數 2084 閱讀 8475

我們都知道,假設

hadoop job -list
獲取當前正在執行的hadoop 任務,返回的結果例如以下:

返回的任務中不包含任務的名稱, 可是通過hadoop 管理頁面是能夠檢視到job 的名稱的。

可是現實情況是我們可能須要依據任務的名稱來刪除任務。

我的實現方案是這種

1. 通過獲取 網頁

2. 解析網頁獲取任務名稱 + job_id 的任務列表

3. 過濾出指定名稱的job 

4. 最後呼叫hadoop job -kill  來殺死任務

**例如以下:

parse.py  使用python 自帶的html 解析模組

from htmlparser import htmlparser

class myhtmlparser(htmlparser):

def __init__(self):

htmlparser.__init__(self)

# self.current_tag = none

self.flag = false

self.name_flag = false

def handle_starttag(self, tag, attrs):

if tag == 'td':

for name,value in attrs:

if name == 'id' and value.startswith("job_"):

self.flag = true

self.name_flag = false

break

elif name == 'id' and value.startswith("name_"):

self.flag = true

self.name_flag = true

break

def handle_endtag(self, tag):

self.flag = false

def handle_data(self, data):

if self.flag:

print data,

if self.name_flag:

print ' '

if __name__ == '__main__':

fp = open("./jobtracker.jsp")

data = fp.read()

my = myhtmlparser()

my.feed(data)

主程式  kill_job.sh

用shell 實現  

# 過濾待刪除的任務

keyword=$1

if [ -z "$keyword" ] ; then

echo "引數不能為空"

echo "使用方法: bash kill_job.sh "

exit

ficurl -o

python parse.py | grep $keyword |sort| tee job.tmp

echo "---------------- start kill -------------------"

# 執行刪除動作

cat ./job.tmp |sort| while read line

do #echo $line

job_id=`echo $line|awk -f " " ''| tr -d ' '`

echo "kill job -- $"

hadoop job -kill "$job_id"

done

執行方法:

bash kill_job.sh merge_sl
merge_sl 是job 的名稱

jQuery從字串中刪除字串

可以這麼說,這就是使用jquery從字串中刪除字串的方法。以下示例有望闡明我的意思。它使用了jquery.grep 這是乙個非常酷的搜尋功能 有點像php子字串 總之。與往常一樣,只需複製,貼上,使用firebug執行即可進行測試和試驗。function join console.log resul...

字串匹配

題目描述 讀入資料string 然後讀入乙個短字串。要求查詢string 中和短字串的所有匹配,輸出行號 匹配字串。匹配時不區分大小寫,並且可以有乙個用中括號表示的模式匹配。如 aa 123 bb 就是說aa1bb aa2bb aa3bb都算匹配。輸入 輸入有多組資料。每組資料第一行輸入n 1 n ...

字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...