2012年5月29日 星期二

fair scheduler中的comparator

Hadoop中的 fair scheduler在assign task時,
會先對所有的jobs做sort再去挑選哪個job可以assign task,
而在sort中的任兩個elements 比較用的comparator程式碼小複雜, 概念簡述如下:

1. 先比較誰有滿足minshare
    a. 滿足的, 相對assign的優先權較低
    b. 若兩者皆不滿足 --> 誰的越接近滿足minshare比例的, 相對assign的優先權較低
    c. 若兩者皆已滿足minshare --> 誰的weight值越小, 相對assign的優先權較低
2. 若以上都相等, 比較 start time(再不簡述行就比job name)

註:
當 c. 中兩者weight都一樣時, 就是比兩者目前的running tasks數,
在此也就是Hadoop提出之fair scheduler的想法:
1. 先滿足min share
2. 再滿足fair share

[Reference]
Hadoop-0.21.0公平调度器算法分析

2012年5月20日 星期日

Virtualbox的VM開多cpu

想要在Virtualbox上已經建好設定好的VM(其實新開的也一樣), 增加大於一顆的cpu數量時,
發現無法開啟, 並出現以下錯誤:

開啟虛擬機器 hdp1master 的工作階段失敗。

VT-x features locked or unavailable in MSR. (VERR_VMX_MSR_LOCKED_OR_DISABLED).

結果碼(&N): NS_ERROR_FAILURE (0x80004005)
元件: Console
介面: IConsole {1968b7d3-e3bf-4ceb-99e0-cb7c913317bb}

重新於設定處去觀察, (設定值 > 系統 > 處理器)
會發現當cpu數量調成2顆以上時,
底下會有個警示說"未偵測到最佳值",
並且訊息顯示" 控制在虛擬機器中的虛擬CPU數, 您需要在您的主機系統支援硬體虛擬化以使用一個以上的CPU"

上網去找解:
1.  執行 sudo /etc/init.d/vboxdrv setup
     重開virtualbox再去調cpu數時, 不再有"未偵測到最佳值"的警訊
     但仍有錯誤訊息.

     [Reference]
     http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=88236

2. 後來發現主機要重新去調整Bios, 開啟CPU的虛擬功能(前提是本身主機板有提供此能力)
    以自己電腦為例,
    按delete 進Bios後 > 進階 > 監控 > CPU > Intel 虛擬化技術 > (原本關閉) 開啟
    然後再進作業系統重新開啟virtualbox 後就可以了!

    [Reference]
    http://ckwsteven.pixnet.net/blog/post/29109830-virtualb    o%8C%AF%E8%AA%A4%E8%A8%8A%E6%81%AF-vt-x-features-locked-or-unavailable-i

Hangs when exiting ssh

在寫shell script檔時,有時會希望ssh到另一台叫他做事,
此時希望自己離開繼續執行下面未完的shell script, 而那一台繼續做事,
過往用 & 作背景處理的方式以不管用

ex: 連到adalab 然後要他 sleep 20sec, 而自己要能馬上離開作其他事例如pwd
ssh hdp1@adalab <<EOI
sleep20 &
exit
EOI
pwd

此時必須改成:
ssh hdp1@adalab <<EOI
sleep 20 </dev/null> /dev/null 2>&1 &
EOI
pwd

就完成了~

[Reference]
http://www.openssh.org/faq.html#3.10

2012年5月17日 星期四

hostname 修改

hostname修改只要去 /etc/hostname 裡面作修改,
除存後重開機就行了

2012年5月13日 星期日

ECDSA host key for 'XXX' differs from the key for the IP address

之前在使用 ssh時碰到類似以下的問題: 
 
Warning: the ECDSA host key for 'XXX' differs from the key for the IP address 'XXX'
Offending key for IP in /home/hadoop/.ssh/known_hosts:5
Matching host key in /home/hadoop/.ssh/known_hosts:7
Are you sure you want to continue connecting (yes/no)?
 
後來想到因為本機曾經連到過叫hdp2的vm, 但後來hdp2這個vm又重新創造過, 
所以其實算是不同的機器, 但在本機的/home/hadoop/.ssh/known_hosts紀錄的是舊的hdp2資訊, 
與現在連線的hdp2衝突,所以每次連線都在問是否要繼續連線.
 
解決方式:
/home/hadoop/.ssh/known_hosts刪掉,
重新ssh到hdp2時他就會問你要不要establish, yes後, 
他似乎會在重建一個known_hosts
下次就不會在出現這個warning了 
 
[Reference] 
http://security.stackexchange.com/questions/10532/ecdsa-keys-changed-ssh-insecure-now