與我之前的similar SO question相比,我嘗試使用AWS上的降雪/降雪來進行並行計算。在R中用於並行處理的雪(和降雪)用於並行處理
我所做的是:
- 在
sfInit()
功能,我提供的公共DNS來socketHosts
參數,像這樣sfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- 錯誤返回
Permission denied (publickey)
- 然後我跟着指示(我假設正確!)http://www.imbi.uni-freiburg.de/parallel/在'無密碼安全外殼(SSH)登錄'部分
- 我只是貓的.pem文件的內容我crea將AWS連接到AWS實例的〜/ .ssh/authorized_keys我想從我的主AWS實例和主AWS實例連接到
有什麼我錯過了嗎? 如果用戶可以分享他們在AWS上使用雪的經驗,我將不勝感激。
非常感謝您的建議。
更新: 我只是想更新我發現我的具體問題的解決方案:
- 我用StarCluster設置我的AWS集羣:StarCluster
- 安裝包
snowfall
集羣中所有節點上 - 從主節點發出以下命令
hostslist <- list("ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com","ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com")
sfInit(parallel=TRUE, cpus=2, type="SOCK",socketHosts=hostslist)
l <- sfLapply(1:2,function(x)system("ifconfig",intern=T))
lapply(l,function(x)x[2])
sfStop()
- IP信息證實了AWS節點正在使用
我相信.pem文件是一個X509證書,而不是RSA公鑰。如本節所述,您應該在主節點上生成密鑰對,並將公鑰複製到從節點的authorized_keys。 – Anatoliy
我相信@Anatoliy是正確的;他應該回答這個問題,而不僅僅是一個評論,所以我們可以贊成。 :) – Iterator
也許我在你的另一個關於「使用StarCluster」的問題上忽略了我的答案,就像我現在看到的那樣,但是在私有IP範圍內運行整個集羣時,我沒有必要在啓動後大聲使用密鑰或證書這樣做。 – Thell