R語言中的平行計算 二 搭建R的集群

2021-07-02 12:09:20 字數 1804 閱讀 1685

zhuanzai :

一直糾結於r的大資料計算問題,希望可以找到乙個徹底的方案解決它。而雲伺服器當然是解決這個問題的最佳方案,所以,至少從這方面入手。

r的雲伺服器部署有兩種解決方案,一種是使用r語言的平行計算,另外一種是使用rhadoop框架。

rhadoop框架其實就是m / r 演算法的r語言實現,需要使用者有m / r的計算基礎,和r語言平常使用的計算方式有很大的不同,因此,我採用的解決方案是搭建r 的平行計算集群。

在兩台ip位址不同的linux機器上面安裝好r,然後每台機器都安裝snow包,最後注意一點是,需要配置ssh的免密碼登入,不同的linux使用者需要配置自己的免密碼登入,並且,需要用到r集群的使用者都需要使用自己的賬戶安裝snow包。

以下是測試**:

library(snow);

workerlist <- list(

list(host = 「192.168.1.100」, port = 10187, outfile = 「~/log1.log」, rshcmd = 「ssh -p 22222」),

list(host = 「192.168.1.101」, port = 10187, outfile = 「~/log2.log」, rshcmd = 「ssh -p 22222」),

list(host = 「192.168.1.101」, port = 10187, outfile = 「~/log3.log」, rshcmd = 「ssh -p 22222」)

);cl <- makecluster(workerlist, type=」sock」, master=」192.168.1.100」)

stopcluster(cl);

**解釋:

1、配置每台伺服器的屬性

list(host = 「192.168.1.100」, port = 10187, outfile = 「~/log1.log」, rshcmd = 「ssh -p 22222」)

伺服器的配置選項如下:

名稱 型別 描述 預設值

port integer r使用的集群的埠 10187

timeout integer 伺服器之間鏈結超時時間 31536000(一年)

master string 集群主機ip(或者網域名稱) sys.info()[「nodename」]

type string 伺服器之間連線型別 null

outfile string 日記輸出的檔案路徑 null

user string 伺服器使用者名稱 sys.info()[「user」]

rshcmd string ssh執行命令 ssh

rlibs string 伺服器上r的安裝路徑 rl

ibss

crip

tdir

stri

ngsn

ow安裝

包的安裝

路徑rp

rogs

trin

gr程式

的執行路

徑 r_home/bin/r

snowlib string snow安裝包的路徑

rscript string r指令碼所在路徑 $r_home/bin/rscript

以上為r集群中的各個伺服器的常用配置引數列表。

2、根據配置,建立r語言平行計算集群,master指明主節點,這個在我實踐的過程中是必須配置的。

cl <- makecluster(workerlist, type=」sock」, master=」192.168.180.216」)

3、運算結束後,關閉集群機器

stopcluster(cl);

R語言中的平行計算實現

平行計算有顯性並行和隱式並行,介紹可以參考 parallel是比較基礎的,不需要額外安裝,直接載入就行,但是不是很穩定,關於parallel包的介紹可以參考 foreach library foreach library doparallel 分配核心數,這裡獲取了物理核心數 cores detec...

R語言平行計算程式設計

r語言並行程式設計例項,將資料集rcuters 21578的50個文件賦值100,000次,得到包含500萬個文件的資料庫,查詢正規表示式。tm軟體包是r語言中為文字挖掘提供處理的package,提供資料匯入 語料庫處理 預處理 元資料管理 建立term document矩陣等功能。平行計算 lib...

R語言snow包平行計算

this post was kindly contributed by 資料科學與r語言 go there to comment and to read the full post.在資料探勘和機器學習領域有許多的演算法需要強大的計算能力,如果對大資料進行運算操作,那麼其工作量之大使單個cpu核心難...