:::

開箱即用的R運作環境!RStudio Server OpenVZ虛擬機器分享 / Standalone R Environment: RStudio Server in OpenVZ Virtual Machine

11月 07, 2016 , 2 Comments Edit Post

image

我以OpenVZ虛擬機器建立了一個獨立運作的RStudio Server,架設起來之後就能夠直接用網頁來開啟可以正常運作的R環境。它不僅預先裝好了文字探勘與資料庫所需要的套件,而且不會受到在Windows環境下處理中文發生亂碼問題的限制。架設這樣的環境費時費工,所以我決定將它做成開箱即可用的OpenVZ虛擬機器,在此跟大家分享。


OpenVZ虛擬機器應用範本檔 / RStudio Server OpenVZ Virtual Template

2016-11-07_124958

檔案大小非常大,有1.27GB。

下載完成之後,請照著Proxmox VE 3安裝與建立OpenVZ虛擬機器這篇來架設OpenVZ虛擬機器。架設時沒有特別需要調整的參數,但是網路一定要設定,因為RStudio Server主要都是透過網頁來連線的。

虛擬機器使用方法 / Virtual Machine Usage

image

以下本片以虛擬機器網路設定為192.168.56.152為例來說明如何使用這個RStudio虛擬機器。

RStudio Server

RStudio Server是透過網頁來控制,網址是IP加上連接埠8787,舉例如下:

連線順利的話可以看到以下RStudio登入畫面:

2016-11-07_130354

登入帳號與密碼預設為:

  • Username: rstudio
  • Password: password

image

登入之後就會看到上圖的畫面。這個畫面跟桌面版RStudio很像,左邊就是R Console,可以在此執行腳本。

此版本的RStudio Server已經安裝套件的列表如下:

ape flexmix memoise rngtools
biclust foreach mime robustbase
bitops fpc modeltools RPostgreSQL
cluster git2r munsell RSQLite
colorspace gridBase mvtnorm rstudioapi
curl httr openssl Rttf2pt1
DBI igraphdata pkgmaker RWeka
DEoptimR irlba prabclus RWekajars
devtools isa2 R6 Rwordseg
dichromat iterators Rcampdf slam
digest jiebaRD RColorBrewer Snowball
diptest jsonlite Rcpp SnowballC
doParallel kernlab RCurl stringi
extrafont labeling registry stringr
extrafontdb magrittr rJava  
flexclust mclust RMySQL  

附帶一提,查詢已經安裝套件的R語法如下:

installed.packages()
SSH連線 / SSH Connect

SSH的連線資訊如下:

  • Host: 伺服器的IP,例如192.168.56.152
  • Port: 22 (預設值)
  • Username / Password:
    • root / 你建立OpenVZ時設定的Password
    • rstudio / password

image

RStudio Server虛擬機器的SSH連線就跟大部分Linux伺服器一樣,你可以用PieTTY來連線到命令列,也可以用FileZilla來管理檔案。我推薦使用mRemoteNG來管理這些連線,這樣管理伺服器的工作會輕鬆許多。

帳號管理 / Account

RStudio Server的帳號跟密碼是跟Linux的作業系統綁在一起。如果進行帳號或密碼的管理,需要以SSH用root帳號登入Linux的Bash命令列來操作。

以rstudio帳號為例,更換密碼的指令為:

passwd rstudio

如果要建立帳號,除了用useradd指令建立之外,還需要設定密碼、建立該帳號的家目錄,然後轉移家目錄的擁有權給該帳號。以帳號pudding為例,建立帳號的指令為:

useradd pudding
passwd pudding
mkdir /home/pudding -p
chown pudding:pudding /home/pudding

特別是建立家目錄跟轉移擁有權這個動作,如果沒有這樣做的話,登入RStudio Server的時候就會變成「server note respond」的空白畫面,無法正常使用。

Linux帳號管理的教學細節可以參考鳥哥的Linux私房菜


結語 / Conclusion

不知不覺之間,R已經變成程式設計裡面的顯學。以前許多程式設計課程是以C++、Java為基礎,最近聽到竟然已經有系所將R作為程式設計課程的授課內容,真讓我感嘆這個世界變化的迅速。就我個人用到現在的看法,跟上述的C++、Java、甚至是JavaScript等一般的程式語言相比,我認為R還是很不一樣。

image[26]

一般的程式語言給我的感覺是「創造物品的工具」,就像是我們可以用MIT APP Inventor來建立一個可以解決問題、改善生活的工具一樣(上圖是我之前做的晚餐抽籤APP)。

相較之下,R是專門用來「分析資料、處理資料」。雖然寫法上有if / else / for迴圈等程序控制,讓人覺得它就像是一般的程式語言一樣。但是使用一陣子之後,我覺得它的分類還是比較接近SQL這種語言。當然,像是Shiny這種複雜程度的儀表板操作,可說已經是達到「創造應用」的程度了。但是我還是不太喜歡Shiny輸出的靜態圖表,真的要使用的話,我寧願改用Chart.js這種動態的圖表工具,R還是在背後處理資料就好了。

最後,如果想要學習R的話,可以從Joe所撰寫的R Basic開始認識。特別是R的各種變數類型,這跟一般的程式語言有很大的差別,請務必認真學習。

總共2 則留言, (我要發問)

  1. 版本是4.4-1,網路不知道怎麼設定,都連不上192.168.56.152

    回覆刪除
    回覆
    1. 虛擬機器有開機嗎?

      Proxmox架在什麼環境?

      你自己的電腦網路是在192.168.56.x的網域底下嗎?

      你要連什麼網路?ping? RStudio?

      刪除

留言工具: