問題タブ [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 の設定に失敗しました。エノシス
OpenCPU を Ubuntu サーバー (Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)) に既にインストールしており、すべてが問題なく完全に機能しました。ここで言いたいのは、私はこの API が本当に好きで、この 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」を標準の2e9ではなく1e9に変更すると問題が解決すると思いました(750000000と500000000も試しました)が、何も役に立ちませんでした(もちろんopencpuサービスを再起動しました)変更するたびにもう一度)。また、これは問題ではないと思います。操作で複数の GB を使用する場合、サーバーは仮想メモリを使用すると思うからです。問題は RAppArmor に関係していると思います。だから私はそれを無効にしてopencpuを再起動しようとしましたが、問題は消えませんでした:
$ sudo aa-disable usr.bin.r /etc/apparmor.d/usr.bin.r を無効にします。トレースバック (最新の呼び出しが最後): file "/usr/sbin/aa-disable", line 30, in tool.cmd_disable() File "/usr/lib/python3/dist-packages/apparmor/tools.py", line 148、cmd_disable で apparmor.AppArmorException(cmd_info[1]) を発生させる apparmor.common.AppArmorException: '警告: /proc/mounts で適切な fs が見つかりません。マウントされていますか?\nオーバーライドするには --subdomainfs を使用してください。\n'
ここで問題が何であるかを知っている人はいますか、または解決策を探すための提案がありますか?
次のいずれも問題の原因ではないと思いますが、よくわからないので、とにかくこれらの警告を追加します。
OpenCPU のインストール中に遭遇した唯一の奇妙なことは、次のメッセージでした (4 回表示されました)。
しかしその後、次のように言われました。
また、RAppArmor を個別にインストールしようとすると、次の警告が表示されました。
perl: 警告: ロケール設定を確認してください: LANGUAGE = (未設定)、LC_ALL = (未設定)、LC_CTYPE = "UTF-8"、LANG = (未設定) がサポートされ、システムにインストールされています。perl: 警告: 標準ロケール ("C") にフォールバックしています。locale: LC_CTYPE をデフォルトに設定できません locale: そのようなファイルまたはディレクトリはありません locale: LC_ALL をデフォルトの locale に設定できません: そのようなファイルまたはディレクトリはありません 以前に未選択のパッケージ r-cran-rapparmor を選択しています。
そしてこれも:
警告: /proc/mounts で適切な fs が見つかりません。マウントされていますか?\n--subdomainfs を使用してオーバーライドしてください。\n
前もって感謝します!
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スタジオで動作し、curlコマンドを発行するとデータベースがロックされているというメッセージが表示されます)。
編集 3:実際には、まだ AppArmor の問題のようです。私は得る:
解決策:やっと見つかりました。最終的には、純粋な AppArmor の問題であると思われました。私は変更しなければなりませんでした:
に
(k に注意してください) ファイルのロックを可能にするためです。
r - Rmpi、OpenCPU、および Apparmor: "/" に対する拒否された要求
Rmpi パッケージを使用して実行している OpenMPI クラスターにジョブを送信する R パッケージがあります。コンソールから R セッションを実行すると、すべてが期待どおりに機能します。ただし、次のようにOpenCPUサーバーから関連する関数を実行しようとすると(無実を保護するために詳細が変更されました):
次のエラーが表示されます。
(パッケージ内のその他の非クラスター呼び出し関数は、OpenCPU を介して期待どおりに動作します)。/var/log/kern.log
さまざまな要求が apparmor によるものであることに気付きました。OpenMPIが必要なファイルにアクセスできるようにDENIED
エントリを追加することで、それらのほとんどを解決できました。/etc/apparmor.d/opencpu.d/custom
ただし、場所の「オープン」リクエストに関連する次の 2 つの問題 (ここでも IP アドレスが変更されました) を解決できません"/"
。
これを私の apparmor ルールに追加しても役に立ちませんでした:
2 つの質問:
- opencpu がルート レベル ディレクトリから読み取ろうとするのはなぜですか (または、これは別の意味ですか)?
- もっと緊急に、どうすればこの apparmor の問題を解決できますか?
ありがとう。
r - OpenCPU API から RJDBC ライブラリを呼び出すときに rJava が失敗する
目標: OpenCPU AJAX Post 呼び出しで RJDBC を使用する。
ユースケース: Apache phoenix データベースに接続してデータを取得する必要があります。そして、そのデータに対して分析を行うことになっています。したがって、Phoenix に接続するには、rjdbc を使用しています (Phoenix は他の接続オプションをサポートしていません)。
環境 : public.opencpu.org
ここに私がしようとしているものがあります:
html
JavaScript
シナリオ
実行ボタンをクリックすると、ユーザーが入力した値をテキスト領域 (ここではライブラリ (RJDBC) といくつかの db 操作) から取得し、ajax 投稿を送信して、以下のエラーで応答します
Google Chrome コンソール ログ:
これにより、より明確になることを願っています。
rJava が OpenCPU で動作するかどうかを確認する必要があります。
r - OpenCPU はどのように計算コストの高いコマンドを同時に実行できますか?
私は現在、短時間で何百万もの統計的回帰を実行する必要があるアプリケーションを作成しています。これらの計算の並列化は、プロセスを加速する 1 つの可能性です。
サーバーは、OpenCPU
並行して実行されるコマンドで適切にスケーリングされていないようです。すべてのコマンドは順次実行されます。
OpenCPU を使用して複数のR
セッションを生成することは可能ですか、それともサーバーの複数のインスタンスを実行する必要がありますか? OpenCPU
複数の計算コストの高いコマンドを同時に処理する方法について、ここで何か見逃していますか?