问题标签 [opencpu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 有没有办法通过 Opencpu 运行脚本而不创建包?
我是opencpu的新手,我正在尝试这个:
- 创建一个脚本以在内存中加载数据帧(当然在服务器上)
- 给出一个通过 GET api 查询这个数据框的方法。
可以对大型数据框执行此操作以使其加载一次吗?这可以在不编写 R 包的情况下完成吗(这是迄今为止我发现通过 opencpu 访问 R 脚本的唯一方法)
r - OpenCPU - 设置 rlimit 失败。ENOSYS
我已经在 Ubuntu 服务器上安装了 OpenCPU - Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) - 一切运行良好,没有任何问题。在这里,我想说我真的很喜欢这个 API,我非常感谢致力于它的人们(我认为主要是 Jeroen Ooms)所做的所有努力。现在我再次安装它,但在另一个提供商托管的另一个服务器上。它也是一个 Ubuntu 服务器 - Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-042stab093.4 x86_64) - 因此我希望它能够像以前一样顺利运行。但现在我有一个问题。安装并启动服务后,我想通过浏览器检查一切是否正常。所以我就像http://xxx.xxx.xxx.xxx/ocpu在我的其他服务器上一样打开。这次我的浏览器没有显示 OpenCPU API Explorer,而是显示以下消息:
服务器只有 1GB 的物理内存,所以我认为将“rlimit.as”更改为 1e9 而不是标准的 2e9 可以解决问题(我也尝试了 750000000 和 500000000),但没有任何帮助(当然我重新启动了服务 opencpu每次更改后再次)。我也认为这不是问题,因为我猜当操作使用超过 1 GB 时服务器会使用虚拟内存。我认为问题与 RAppArmor 有关。所以我尝试禁用它并重新启动opencpu,但问题并没有消失:
$ sudo aa-disable usr.bin.r 禁用 /etc/apparmor.d/usr.bin.r。回溯(最后一次调用):文件“/usr/sbin/aa-disable”,第 30 行,在 tool.cmd_disable() 文件“/usr/lib/python3/dist-packages/apparmor/tools.py”,行148,在 cmd_disable raise apparmor.AppArmorException(cmd_info[1]) apparmor.common.AppArmorException: '警告:无法在 /proc/mounts 中找到合适的 fs,是否已挂载?\n使用 --subdomainfs 覆盖。\n'
那么有谁知道这里的问题可能是什么,或者有什么建议可以在哪里寻找解决方案(我已经尝试过谷歌,但没有发现任何有用的东西)?
我认为以下任何内容都不是问题的原因,但由于我不确定,我还是添加了这些警告:
我在 OpenCPU 安装过程中遇到的唯一奇怪的事情是这个消息(出现了 4 次):
但后来它说:
此外,当我尝试单独安装 RAppArmor 时,收到以下警告:
perl: 警告: 请检查您的语言环境设置:LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = (unset) 是否支持并安装在您的系统上。perl:警告:回退到标准语言环境(“C”)。语言环境:无法将 LC_CTYPE 设置为默认语言环境:没有这样的文件或目录 语言环境:无法将 LC_ALL 设置为默认语言环境:没有这样的文件或目录 选择以前未选择的包 r-cran-rapparmor。
还有这个:
警告:在 /proc/mounts 中找不到合适的 fs,是否已安装?\n使用 --subdomainfs 覆盖。\n
提前致谢!
r - OpenCPU 单用户服务器中临时文件的位置
我开始通过 OS X Mavericks 上的单用户服务器探索 OpenCPU,并且想知道临时文件的存储位置。例如,如果我运行
我收到输出可用的通知:
如果我将浏览器指向此处,我可以查看:
我的问题是,我的机器上的 /ocpu/tmp 在哪里?我的 /tmp 文件夹中没有任何内容与上述内容相对应。任何帮助/指导将不胜感激。
r - 无法使用 opencpu 从 sqlite 数据库获取结果
我有一个相对简单的函数来从 sqlite 数据库中提取一些数据:
当我在 R(或 RStudio)中运行此代码时,这对我来说非常好:
但是,我根本没有成功,通过opencpu使用这个函数检索任何数据:
我已经仔细检查了文件是否存在,检查了它的权限,为所有人设置了读/写权限,但一点运气都没有。任何输入将不胜感激。
编辑 1: 尝试了 @Jeroen 对 apparmor 配置建议的更改,但无济于事。将以下行添加到自定义文件中确实有所帮助:
但是,它只帮助我现在得到错误:
RS-DBI 驱动程序:(语句中的错误:数据库已锁定)
通话中: sqliteExecStatement(conn, statement, ...)
这很奇怪,因为当我在 RStudio 中执行完全相同的代码(使用相同的数据库文件)时,我没有收到此错误。
编辑 2:正如 Hadley Wickham ( https://twitter.com/hadleywickham/status/526739851974955008 ) 提出的,我使用 dbGetQuery 简化了函数:
尽管如此,由于我得到完全相同的行为(在 R studio 中工作,发出 curl 命令时给出数据库锁定消息),但无济于事。
编辑 3:实际上它似乎仍然是 AppArmor 问题。我得到:
解决方法:终于找到了。最终这似乎是一个纯粹的 AppArmor 问题。我不得不改变:
至
(注意 k)以允许文件锁定。
r - Rmpi、OpenCPU 和 Apparmor:拒绝“/”请求
我有一个 R 包,它通过 Rmpi 包向我运行的 OpenMPI 集群发送作业。在从控制台运行的 R 会话中,一切都按预期工作。但是,当我尝试像这样从我的 OpenCPU 服务器执行相关功能时(更改了细节以保护无辜者):
我收到此错误:
(包中的其他非集群调用函数可以通过 OpenCPU 正常工作)。我注意到apparmor/var/log/kern.log
的各种请求DENIED
,我已经能够通过添加条目来解决其中的大部分请求,/etc/apparmor.d/opencpu.d/custom
以允许 OpenMPI 访问它需要的文件。但是,我无法解决与“打开”位置请求相关的这两个问题(同样,IP 地址已更改)"/"
:
将此添加到我的 apparmor 规则没有帮助:
两个问题:
- 为什么opencpu 试图从我的根目录中读取(或者这是否意味着别的)?
- 更紧迫的是,我该如何解决这个 apparmor 问题?
谢谢。
r - 如何在 CentOS6 上启动/停止/刷新 OpenCPU?
我已经在 CentOS6 上成功构建并安装了 OpenCPU 和 RStudio Server。一切都按预期工作,我的本地 R 包确实获得了成功的 GET/POST 响应。
然而,有几件事似乎不起作用:
- 我想不出一个干净的方法来启动/停止/刷新 OpenCPU。我目前正在使用
apachectl restart
,但我什至不确定是否会按预期重新加载 R 包。我尝试了 Jeroen 的 bash 脚本,/usr/lib/opencpu/scripts
但它们似乎需要进行相当多的调整才能在 CentOS 上运行。 - (可能与上述有关)我正在使用
load()
andreadRDS()
in/etc/opencpu/Renviron
file (也尝试过 in/etc/opencpu/Rprofile
)将持久数据集加载到全局环境中——但这似乎不起作用。我没有收到任何错误日志,但这些对象在后续请求中不可用。 - 在 Ubuntu OpenCPU 上似乎配置为在
opencpu
用户下运行。在 CentOS6 上,它似乎root
在安装后运行。我想修改它,但不确定如何修改。
只是想知道是否有人在 CentOS6 上成功配置了 OpenCPU。
非常感谢,--梅尔。
r - 从 OpenCPU API 调用 RJDBC 库时 rJava 失败
目标:将 RJDBC 与 OpenCPU AJAX Post 调用一起使用。
用例:我需要连接 Apache phoenix 数据库并获取一些数据。我应该对这些数据进行分析。因此,要与 Phoenix 连接,我使用的是 rjdbc(phoenix 不支持任何其他连接选项)。
环境: public.opencpu.org
这是我正在尝试的:
html
javascript
设想
当我单击执行按钮时,从文本区域(此处为库(RJDBC)和一些数据库操作)获取用户输入的值并发送一个 ajax 帖子并返回以下错误
谷歌浏览器控制台日志:
希望这能提供更好的清晰度。
需要确认 rJava 是否可以与 OpenCPU 一起使用,如果可以,是否有任何可能的解决方法来解决这个问题?
r - 在 Apache 上为 OpenCPU 启用 CORS
我正在测试我的第一个 OpenCPU 项目,在与 OpenCPU 和 R 包(安装在 Windows Server 内的虚拟机中的 Ubuntu 14.04 服务器)相同的服务器上拥有 web 测试页面,它工作正常,但我可能需要网站在虚拟机中运行的 Windows Server 和 OpenCPU(也是 R)中,所以我尝试了OpenCPU 中的seturl函数来执行此操作,但我收到一个错误,上面写着“可以修复在服务器中启用 CORS”
寻找解决方案我找到了http://enable-cors.org/server_apache.html在这篇文章中被告知如何在 Apache 中启用 CORS,但我找不到什么文件夹需要权限才能使 OpenCPU 远程工作。
这就是我在虚拟机服务器上调用包的方式
ocpu.seturl("http://virtualmachine_ipaddres/ocpu/library/PruebaR/R")
我尝试授予 R 文件夹和其他文件夹的权限,但仍然无法正常工作。有任何想法吗?
谢谢您的帮助
r - OpenCPU 如何同时运行计算量大的命令?
我目前正在创建一个应用程序,它需要在短时间内运行数百万次统计回归。这些计算的并行化是加速该过程的一种可能性。
OpenCPU
服务器似乎不能很好地扩展并行执行的命令。所有命令都按顺序执行。
是否可以使用 OpenCPU 生成多个R
会话,或者我是否需要运行多个服务器实例?我是否错过了有关如何OpenCPU
同时处理多个计算量大的命令的内容?
r - OpenCPU:没有方法 asJSON S3 类
我正在尝试获取以下资源的 JSON 表示:
我得到的错误是No method asJSON S3 class: smooth.spline
.
调用的结果smooth.spline()
具有以下结构:
有没有办法y
使用 OpenCPU 获取列表的组件?