Comment exécuter facilement des commandes R sur un serveur distant?
J'utilise Excel + R sur Windows sur un plutôt lent bureau. J'ai un plein accès admin à très rapide basée sur Ubuntu server. Je me demande: comment faire pour exécuter à distance des commandes sur le serveur?
Ce que je peux faire est de sauver les variables nécessaires à saveRDS
et de les charger sur le serveur avec loadRDS
exécuter les commandes sur le serveur, puis enregistrer les résultats et de les charger sur Windows.
Mais c'est très interactif et manuel, et peut à peine être fait sur une base régulière.
Est-il une manière de faire les choses directement à partir de R, comme
- Se connecter avec le serveur via ssh par exemple,
- Transférer les objets requis (ce qui peut être spécifié manuellement)
- D'exécuter du code sur le serveur et d'attendre le résultat
- Obtenir le résultat.
J'ai pu faire tourner l'ensemble de la R à distance, mais alors qu'il donnerait naissance à un des problèmes liés au réseau. La plupart de la R commandes que j'ai faites à partir d'Excel sont très rapides et gourmandes en données. J'ai juste besoin d'exécuter à distance certaines commandes spécifiques, pas tous d'entre eux.
source d'informationauteur Adam Ryczkowski | 2014-02-27
Vous devez vous connecter pour publier un commentaire.
Il y a un peu plus d'options:
1) Vous pouvez faire les choses directement à partir de R en utilisant Rserve. Voir: https://rforge.net/
Gardez à l'esprit que Rserve peut accepter des connexions de R de clients, consultez par exemple comment se connecter à Rserve avec un R client.
2) Vous pouvez configurer cluster sur votre machine linux et ensuite utiliser ces armes à des installations à partir de votre client windows. Le plus simple est d'utiliser de la Neige, https://cran.r-project.org/package=snowvoir également le foreach et de nombreux autres cluster bibliothèques.
Voici mon installation.
Copie de votre code et de données sur l'utilisation de scp. (J'ai utilisé github, donc je clone mon code à partir de github. Ceci a l'avantage de faire en sorte que mon travail est reproductible)
(facultatif) Utiliser sshfs pour monter le dossier distant sur votre ordinateur local. Cela vous permet de modifier les fichiers distants à l'aide de votre local éditeur de texte au lieu de ssh en ligne de commande.
Mettre toutes les choses que vous voulez exécuter dans un script R (sur le serveur distant), puis de l'exécuter via ssh dans R en mode batch.
Il ya quelques options, le plus simple est un échange de clés sécurisées pour éviter d'entrer SSH/SCP mots de passe manuellement tous les temps. Après cela, vous pouvez écrire un simple script R:
Vous pouvez utiliser R
system
commande à exécuter scp et ssh avec les options nécessaires.Une autre option est la mise en place de cluster travailleur à la machine distante, vous pouvez alors exporter les données à l'aide de clusterExport et évaluer des expressions à l'aide de clusterEvalQ et clusterApply.