3

EC2でクラスターを作成しようとしています。アカウントを設定し、AWSで検証しました。segueパッケージと関連パッケージを正常にダウンロードしてインストールし、AWSクレデンシャルを設定しました。私の問題は、クラスターを作成しようとすると次のようになります。

> library(segue)
Loading required package: rJava
Loading required package: caTools
Loading required package: bitops
Segue did not find your AWS credentials. Please run the setCredentials() function.
> setCredentials('', '') #keys hidden

> myCluster <- createCluster(numInstances=5)
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  com.amazonaws.AmazonClientException: Can't turn bucket name into a URI: Illegal character in authority at index 8: https://c:\users\backup~1\appdata\local\temp\rtmp4u0n8yqaaoducils-segue.s3.amazonaws.com

何か案は?

4

1 に答える 1

6

acesnap、私はSegueの作者であり、あなたが直面している問題は、SegueパッケージがWindowsプラットフォームで実行するように実装されていないことであると自信を持って言えます。問題は、Windowsがファイルパスや一時ファイルなどで面白いことをすることだと疑っています。Segueパッケージのサーバー側は常にLinuxを実行するAmazonElasticMap Reduceサービスですが、一時ファイルはクライアントマシン上に構築されるため、Segueはローカルオペレーティングシステムと適切に通信する必要があります。

私が考えることができるいくつかの回避策があります:

  1. ローカルマシンにVirtualBoxをセットアップし、UbuntuとRをインストールします。

  2. EC2マシンをセットアップし、RとSegueをインストールしてから、そのマシンを使用してSegueジョブを起動します。

  3. Macを購入するか、デスクトップマシンにLinuxをインストールします(ちょっと明らかだと思います)

私のデスクトップマシンはMacとLinuxですが、上記の#2を頻繁に使用しています。これを行うのは、Segueを実行しているマシンとバックエンドクラスター間の通信が高速化されるためです。また、SegueメインマシンがEMRバックエンドへの接続を失う可能性も低くなります。ジョブの実行中にSegueとAmazonクラウド間の通信が失われた場合、ジョブはクラウドクラスターで実行されますが、結果をSegueメインマシン(ジョブを送信するマシン)に返す方法がないため、これは価値があります。

于 2011-11-17T20:03:56.133 に答える