有時候會想不要等到第一個指令做完才執行第二個指令,
就必須讓第一個指令變成在backgroud 做,
方法很簡單, 只要在指令後面加上 & 就行了,
Example:
$ bin/hadoop jar hadoop-examples-<version>.jar grep input output 'g' &
此時這個hadoop job就會在background執行,
而不用等他做完就可以先執行下一個指令
2012年4月25日 星期三
shell script - ssh and forwarding command
想說執行shell script file, 讓他自動ssh連線到另一台server
並執行一些指令如下:
---test.sh---
ssh user1@server1
mkdir testFolder
exit
---
但發現會停在連線過去的部份, 也就是只做了ssh user1@server1,
剩下的指令都不會自動作, 要自己再額外手打,
後來上網查了一些, 發現別人在作類似的事情時,
會在ssh 指令後面加上 <<EOI
及在exit 後面加上 EOI
然後嘗試:
---test.sh---
ssh user1@server1 <<EOI
mkdir testFolder
exit
EOI
---
就成功了!
原因尚待研究...
並執行一些指令如下:
---test.sh---
ssh user1@server1
mkdir testFolder
exit
---
但發現會停在連線過去的部份, 也就是只做了ssh user1@server1,
剩下的指令都不會自動作, 要自己再額外手打,
後來上網查了一些, 發現別人在作類似的事情時,
會在ssh 指令後面加上 <<EOI
及在exit 後面加上 EOI
然後嘗試:
---test.sh---
ssh user1@server1 <<EOI
mkdir testFolder
exit
EOI
---
就成功了!
原因尚待研究...
shell script - delay for a while
之前一直在想說寫shell script時要怎麼在指令間達到 delay的效果,
後來發現很簡單只要加
sleep (second)
就行了
ex:
想要執行pwd 10秒後再執行ifconfig
---test.sh---
pwd
sleep 10
ifconfig
---
後來發現很簡單只要加
sleep (second)
就行了
ex:
想要執行pwd 10秒後再執行ifconfig
---test.sh---
pwd
sleep 10
ifconfig
---
2012年4月18日 星期三
Safe mode will be turned off automatically
昨天幫學弟架完他們要用的Hadoop(hadoop1)後發現今天在開自己的Hadoop(hadoop)時,一直沒辦法偵測到第三個datanode, 且jobtracker偵測到的tasktracker數為0也無法動作, 去看了一下jobtracker的log檔發現一直出現下列訊息:
表示一直沒辦法離開safe mode, 上網找了一下
意思是說在開啟Hadoop系統時, namenode會去check各個datanode的data block,
若datablock遺失的比率超過 1-0.999 時, 他就會一直處於safemode.
讓系統離開safe mode有兩種方式:
1.
可以用
hadoop dfsadmin -safemode leave
來離開 safe mod
2.
或調低遺失比率的threshold
使用1.後, jobtracker也偵測到兩個tasktracker但就是偵測不到第三個,
後來直接去第三個tracker上面紀錄的 tasktracker log,
發現他說他沒辦法辨識我namenode的host name!
這才想起來, 昨天在幫他們架時有修改到 /etc/hosts,
忘記再把我自己的namenode的 host name及IP加進去,
導致這個tasktracker在執行時, 無法辨識namenode是誰,
加進去後就解決了.... 腦殘
...
org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /tmp/hadoop-hadoop/mapred/system. Name node is in safe mode.
The ratio of reported blocks 0.6726 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
...The ratio of reported blocks 0.6726 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
表示一直沒辦法離開safe mode, 上網找了一下
意思是說在開啟Hadoop系統時, namenode會去check各個datanode的data block,
若datablock遺失的比率超過 1-0.999 時, 他就會一直處於safemode.
讓系統離開safe mode有兩種方式:
1.
可以用
hadoop dfsadmin -safemode leave
來離開 safe mod
2.
或調低遺失比率的threshold
使用1.後, jobtracker也偵測到兩個tasktracker但就是偵測不到第三個,
後來直接去第三個tracker上面紀錄的 tasktracker log,
發現他說他沒辦法辨識我namenode的host name!
這才想起來, 昨天在幫他們架時有修改到 /etc/hosts,
忘記再把我自己的namenode的 host name及IP加進去,
導致這個tasktracker在執行時, 無法辨識namenode是誰,
加進去後就解決了.... 腦殘
訂閱:
文章 (Atom)