2016-03-19 8 views
2

まず、この質問が以前に尋ねられたことは分かっていますが、回答は自分の状況に当てはまらないようです。Apache Sparkスタンドアロンクラスタ初期ジョブがリソースを受け付けていない

私はDigital Oceanを使用しています.3つのサーバー(2つのコアを搭載したUbuntu 14.04、2GBのRAM、40GBのディスク)、1つのマスターと2つのスレーブがあります。ソースからコンパイルされたSpark 1.6.1とともにインストールされました。彼らはすべてメモリが足りなくなってビルドに失敗したので、それぞれを16Gbのスワップで構成してから、ビルドが正常に行われました。

は私が明示的に使用して、パブリックIPアドレスにホストを設定することで、マスターにスタンドアロン・サーバーを開始しました:実際のIPアドレスです

./sbin/start-master.sh -h 104.236.221.106 

- クラスタの状態を確認するためにhttp://104.236.221.106:8080/を訪問することができます。スパークは、それが唯一の1Gbをつかんれたシステムメモリの唯一の2Gbを検出したので、私は明示的に必要であれば、システムがスワップを活用するだろうより多くのように使用することを告げたので

./sbin/start-slave.sh spark://104.236.221.106:7077 -m 10g 

:とにかく、奴隷を使用して開始しました。それは偉大な作業をしなければならないよう

webportalを見て、私はそれがクラスタ内の合計4つのコアの2人の労働者、などがあるレポートを参照...

Snapshot of the portal

すべては私が起動しそうですシェルを使用して、マスターサーバーから対話式作業を行うことができます。

./bin/spark-shell --master spark://104.236.221.106:7077 --executor-memory 4g 

目的はたくさんのメモリを持つことです。それは起動し、私にコマンドラインを与えるので、大きな数値ではなく値をval NUM_SAMPLES=10000に設定します。しかし、それからApacheからのサンプルコードを使ってPiを見積もります。

val count = sc.parallelize(1 to NUM_SAMPLES).map{i => 
    val x = Math.random() 
    val y = Math.random() 
    if (x*x + y*y < 1) 1 else 0 
}.reduce(_ + _) 

と、私はそれから抜け出すことは次のとおりです。

[Stage 0:>               (0 + 0)/2]16/03/19 07:23:57 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 
16/03/19 07:24:12 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 
16/03/19 07:24:27 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 
[Stage 0:>               (0 + 0)/2]16/03/19 07:24:42 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 

だから、これはいくつかの理由のために意味がありません。まず、Webポータルで見ることができるので、クラスタが存在することがわかります。私は要求されたメモリの割り当てで作成された仕事を見る。私はtopの中で、javaが仕事をしていると思うものをやっている奴隷について見ています。最後に、私が求めているのは単純な愚かなもので、ほとんど何も消費してはいけません。

私はこのコードを実行しようとしている方法で設定が間違っていましたか?私は主人と労働者のログの例を含めてい

WORKER:http://pastebin.com/xwnBMaKQ

MASTER:http://pastebin.com/0Ja0KD9k労働者はまだ立ち上げにもかかわらず、プライベートIPアドレスをヒットしようとしているように見えます

明示的なIPアドレスを持つマスターと(一部の助けを借りて)公開IPアドレスでワーカーを起動することもできます。

+0

問題を解決しましたか? – mauriciojost

+0

はい、私のプロセスはそのままあなたのソリューションでは動作しないため、回答を編集してクラスタを起動するために必要な変更を加えようとしましたが、編集は明らかに拒否されました。 – Mark

答えて

2

IPアドレスを明示的に使用してみましたか?私はまずパブリックIPアドレスからのアクセスを心配する前に、クラスタを一貫した状態に置くことができるようにします。

関連する問題