開箱即用的R運作環境!RStudio Server OpenVZ虛擬機器分享 / Standalone R Environment: RStudio Server in OpenVZ Virtual Machine
我以OpenVZ虛擬機器建立了一個獨立運作的RStudio Server,架設起來之後就能夠直接用網頁來開啟可以正常運作的R環境。它不僅預先裝好了文字探勘與資料庫所需要的套件,而且不會受到在Windows環境下處理中文發生亂碼問題的限制。架設這樣的環境費時費工,所以我決定將它做成開箱即可用的OpenVZ虛擬機器,在此跟大家分享。
OpenVZ虛擬機器應用範本檔 / RStudio Server OpenVZ Virtual Template
- Google Drive備份:https://drive.google.com/file/d/0B5UXWzdIPpm0R3pKZXllb3N0aHM/view?usp=sharing&resourcekey=0-hDlVJzrHkS5DNq0GwG0vdw
檔案大小非常大,有1.27GB。
下載完成之後,請照著Proxmox VE 3安裝與建立OpenVZ虛擬機器這篇來架設OpenVZ虛擬機器。架設時沒有特別需要調整的參數,但是網路一定要設定,因為RStudio Server主要都是透過網頁來連線的。
虛擬機器使用方法 / Virtual Machine Usage
以下本片以虛擬機器網路設定為192.168.56.152為例來說明如何使用這個RStudio虛擬機器。
RStudio Server
RStudio Server是透過網頁來控制,網址是IP加上連接埠8787,舉例如下:
連線順利的話可以看到以下RStudio登入畫面:
登入帳號與密碼預設為:
- Username: rstudio
- Password: password
登入之後就會看到上圖的畫面。這個畫面跟桌面版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
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還是很不一樣。
一般的程式語言給我的感覺是「創造物品的工具」,就像是我們可以用MIT APP Inventor來建立一個可以解決問題、改善生活的工具一樣(上圖是我之前做的晚餐抽籤APP)。
相較之下,R是專門用來「分析資料、處理資料」。雖然寫法上有if / else / for迴圈等程序控制,讓人覺得它就像是一般的程式語言一樣。但是使用一陣子之後,我覺得它的分類還是比較接近SQL這種語言。當然,像是Shiny這種複雜程度的儀表板操作,可說已經是達到「創造應用」的程度了。但是我還是不太喜歡Shiny輸出的靜態圖表,真的要使用的話,我寧願改用Chart.js這種動態的圖表工具,R還是在背後處理資料就好了。
最後,如果想要學習R的話,可以從Joe所撰寫的R Basic開始認識。特別是R的各種變數類型,這跟一般的程式語言有很大的差別,請務必認真學習。
版本是4.4-1,網路不知道怎麼設定,都連不上192.168.56.152
回覆刪除虛擬機器有開機嗎?
刪除Proxmox架在什麼環境?
你自己的電腦網路是在192.168.56.x的網域底下嗎?
你要連什麼網路?ping? RStudio?
因為Google Drive更改共享連結的格式,我也做了更新。
回覆刪除請有需要的朋友重新下載。
在這邊做個記錄。