R (Rserve)과 Rails 간의 협력 (Centos)
목적
rails에 의한 어플리케이션에서, R에 의한 처리를 이용한다
환경
Centos6.6
Rails 4.2.3
R3.2.3
Rserv: R에 의한 처리 제공
절차
R 설치
R 설치
ぃ tp // 이 m/나_가/있어
#yum -y install R
#rpm -qa | grep R-
R_HOME에 환경 변수 설정
export R_HOME=/Library/Frameworks/R.framework/Resources
R 시작
$R
대문자 R
명령으로 R을 시작할 수 있습니다.
Rserve
R 명령으로 시작한 R에서 Rserv 설치
install.packages("Rserve")
설치처는 이하가 된다
/usr/lib64/R/library/Rserve
주1
아래의 표시가 되면 다운로드할 수 있다
ribrary()
명령을 치면 Rserv가 있음을 확인할 수 있습니다.
주2
Rserv 시작
$R CMD Rserve 명령으로 터미널에서 시작합니다.
다음 메시지가 나오면 성공
$ R CMD Rserve
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)
R は、自由なソフトウェアであり、「完全に無保証」です。
一定の条件に従えば、自由にこれを再配布することができます。
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。
R は多くの貢献者による共同プロジェクトです。
詳しくは 'contributors()' と入力してください。
また、R や R のパッケージを出版物で引用する際の形式については
'citation()' と入力してください。
'demo()' と入力すればデモをみることができます。
'help()' とすればオンラインヘルプが出ます。
'help.start()' で HTML ブラウザによるヘルプがみられます。
'q()' と入力すれば R を終了します。
Rserv started in daemon mode.
Centos6.6
Rails 4.2.3
R3.2.3
Rserv: R에 의한 처리 제공
절차
R 설치
R 설치
ぃ tp // 이 m/나_가/있어
#yum -y install R
#rpm -qa | grep R-
R_HOME에 환경 변수 설정
export R_HOME=/Library/Frameworks/R.framework/Resources
R 시작
$R
대문자 R
명령으로 R을 시작할 수 있습니다.
Rserve
R 명령으로 시작한 R에서 Rserv 설치
install.packages("Rserve")
설치처는 이하가 된다
/usr/lib64/R/library/Rserve
주1
아래의 표시가 되면 다운로드할 수 있다
ribrary()
명령을 치면 Rserv가 있음을 확인할 수 있습니다.
주2
Rserv 시작
$R CMD Rserve 명령으로 터미널에서 시작합니다.
다음 메시지가 나오면 성공
$ R CMD Rserve
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)
R は、自由なソフトウェアであり、「完全に無保証」です。
一定の条件に従えば、自由にこれを再配布することができます。
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。
R は多くの貢献者による共同プロジェクトです。
詳しくは 'contributors()' と入力してください。
また、R や R のパッケージを出版物で引用する際の形式については
'citation()' と入力してください。
'demo()' と入力すればデモをみることができます。
'help()' とすればオンラインヘルプが出ます。
'help.start()' で HTML ブラウザによるヘルプがみられます。
'q()' と入力すれば R を終了します。
Rserv started in daemon mode.
#yum -y install R
#rpm -qa | grep R-
export R_HOME=/Library/Frameworks/R.framework/Resources
$R
install.packages("Rserve")
$ R CMD Rserve
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)
R は、自由なソフトウェアであり、「完全に無保証」です。
一定の条件に従えば、自由にこれを再配布することができます。
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。
R は多くの貢献者による共同プロジェクトです。
詳しくは 'contributors()' と入力してください。
また、R や R のパッケージを出版物で引用する際の形式については
'citation()' と入力してください。
'demo()' と入力すればデモをみることができます。
'help()' とすればオンラインヘルプが出ます。
'help.start()' で HTML ブラウザによるヘルプがみられます。
'q()' と入力すれば R を終了します。
Rserv started in daemon mode.
lsof -i : 6311에서 포트 번호에서 프로세스 ID를 찾습니다
lsof -i:6311
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Rserve 12173 higashinakano01 3u IPv4 882750 0t0 TCP localhost:6311 (LISTEN)
다음 명령으로 프로세스 끊기
kill -9 PID
kill -9 12173
Rserve-Ruby-client
Rserv 클라이언트 설치
콘솔에서 gem으로 클라이언트 설치
gem install rserve-client
Rails 애플리케이션 만들기
참고 ぃ tp // 코 m / 히로 후 미야시마 / ms / 7c98 에 22246f0
애플리케이션 만들기
r_test라는 이름으로 샘플 앱 만들기
rails new r_test
애플리케이션이 생성됨
Gemfile Rails 설정
Gemfile에 다음을 추가합니다.
gem 'rserve-client', require: 'rserve'
그건 그렇고, R에 국한된 이야기는 아니지만,
therubyracer의 코멘트 아웃을 제거하는 것도 잊지 마세요.
추가 후
bundle install
명령으로 적용
서버 자동 시작 설정
/usr/lib64/R/library/Rserve/libs/Rserve
경로는 환경에 따라 다름
/config/environments/development.rb
developement.rb
config.after_initialize do
rserve_port = 6311
rserve_path = "/usr/lib64/R/library/Rserve/libs/Rserve"
system("R CMD #{rserve_path} --RS-port #{rserve_port} --slave")
end
컨트롤러, 뷰 생성
rails g controller page test
routes.rb
루트 파일에 컨트롤러 추가
config/routes.rb
routes.rb
get 'page/test'
컨트롤러
app/controllers/page_controller.rb
아래 참조
# encoding:UTF-8
class PageController < ApplicationController
def test
c = Rserve::Connection.new
c.assign("root", Rails.root.to_s)
c.eval <<-EOF
# 標準正規分布に従う乱数の発生
x = rnorm(100,0,1)
# ヒストグラムを作成して保存
png(paste(root, "/app/assets/images/test.png", sep=""))
hist(x)
dev.off()
EOF
end
end
보기
참조
app/views/page/test.html.erb
test.html.erb
<h1>R on Rails with Rserve</h1>
<%= image_tag 'test.png' %>
~
서버 시작
WEBRick 서버를 시작합니다.
$rails s -b 0.0.0.0
확인
http://ip 주소:포트 번호/page/test
브라우저에서 액세스
Ruby on rails에서 Rserv를 사용하여 R 계산 결과를 출력 할 수있었습니다.
다른 방법
rsruby 설치
Rserve
sakuraVPScentos에 넣기
htp : // bg. 오. 네. jp / xmldtp / e / 343b05 ef5090 ea 825 a 6d0b 8c79f3b5
트러블
주1
22까지의 서버에서 선택해도 오류가 발생합니다.
사실 여기에 나오는 거울은 전부가 아니다.
선택에 22를 선택하고 다른 후보를 선택하면,
더 가까운 서버 찾기
일본 서버를 선택 Japan YAMAGAT을 선택했습니다.
주2
그 후, Rserv가 시작될 때,
/mergefat Rserve.dbg "/usr/lib64/R/bin/Rserve.dbg"
installing via 'install.libs.R' to /usr/lib64/R/library/Rserve
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
converting help for package ‘Rserve’
finding HTML links ... 完了
Rserv html
run.Rserve html
self html
** building package indices
** testing if installed package can be loaded
* DONE (Rserve)
Making 'packages.html' ... 完了
ダウンロードされたパッケージは、以下にあります
‘/tmp/RtmpWMDbDr/downloaded_packages’
'.Library' 中のパッケージの HTML 索引を更新します
Making 'packages.html' ... 完了
이 메시지가 다음과 같이
$ R CMD Rserve
/usr/lib64/R/bin/Rcmd: line 62: exec: Rserve: not found
Rserv 명령이 시작되지 않았고 디렉토리를 실제로 찾을 수 없으면 Rserv 설치가 실패했을 수 있습니다.
R에서 설치시 로그에서
cp: cannot create regular file `/usr/lib64/R/bin/Rserve': 許可がありません
make: [server] エラー 1 (無視されました)
./mergefat Rserve.dbg "/usr/lib64/R/bin/Rserve.dbg"
cp: cannot create regular file `/usr/lib64/R/bin/Rserve.dbg': 許可がありません
make: [server] エラー 1 (無視されました)
라고 하는 것이 있는 경우, 실패하고 있다.
이 경우 디렉토리가 만들어지지 않은 것처럼
제대로 작성되지 않은 경우 R을 시작한 권한이 부족하기 때문에 올바르게 설치되지 않았을 가능성이 있습니다.
sudo에서 R을 시작한 후 설치 등으로 해결할 수 있습니다.
Reference
이 문제에 관하여(R (Rserve)과 Rails 간의 협력 (Centos)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yukihigasi/items/57a67c0c001e374f94e2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
주1
22까지의 서버에서 선택해도 오류가 발생합니다.
사실 여기에 나오는 거울은 전부가 아니다.
선택에 22를 선택하고 다른 후보를 선택하면,
더 가까운 서버 찾기
일본 서버를 선택 Japan YAMAGAT을 선택했습니다.
주2
그 후, Rserv가 시작될 때,
/mergefat Rserve.dbg "/usr/lib64/R/bin/Rserve.dbg"
installing via 'install.libs.R' to /usr/lib64/R/library/Rserve
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
converting help for package ‘Rserve’
finding HTML links ... 完了
Rserv html
run.Rserve html
self html
** building package indices
** testing if installed package can be loaded
* DONE (Rserve)
Making 'packages.html' ... 完了
ダウンロードされたパッケージは、以下にあります
‘/tmp/RtmpWMDbDr/downloaded_packages’
'.Library' 中のパッケージの HTML 索引を更新します
Making 'packages.html' ... 完了
이 메시지가 다음과 같이
$ R CMD Rserve
/usr/lib64/R/bin/Rcmd: line 62: exec: Rserve: not found
Rserv 명령이 시작되지 않았고 디렉토리를 실제로 찾을 수 없으면 Rserv 설치가 실패했을 수 있습니다.
R에서 설치시 로그에서
cp: cannot create regular file `/usr/lib64/R/bin/Rserve': 許可がありません
make: [server] エラー 1 (無視されました)
./mergefat Rserve.dbg "/usr/lib64/R/bin/Rserve.dbg"
cp: cannot create regular file `/usr/lib64/R/bin/Rserve.dbg': 許可がありません
make: [server] エラー 1 (無視されました)
라고 하는 것이 있는 경우, 실패하고 있다.
이 경우 디렉토리가 만들어지지 않은 것처럼
제대로 작성되지 않은 경우 R을 시작한 권한이 부족하기 때문에 올바르게 설치되지 않았을 가능성이 있습니다.
sudo에서 R을 시작한 후 설치 등으로 해결할 수 있습니다.
Reference
이 문제에 관하여(R (Rserve)과 Rails 간의 협력 (Centos)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yukihigasi/items/57a67c0c001e374f94e2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)