私は4ノードのスパーククラスタを持っています。 1つのノードはマスタとスレーブの両方であり、他の3つはスレーブノードです。私はファイルをロードし、データフレームを作成し、spark SQLを実行するサンプルアプリケーションを作成しました。私は、マスターノードから以下のような申請書を提出していた場合、それが生産され、出力: -ファイルをスタンドアロンクラスタのsparkでロードする
./spark-submit /root/sample.py
しかし、私は以下のようなマスターに提出していた場合は、「ファイルが存在しないというエラー
./spark-submit --master spark://<IP>:PORTNO /root/sample.py
。
私はサンプルテキストファイルからRDDを作成しています: - 、
lines = sc.textFile("/root/testsql.txt");
私は、それは例えば、生産システムのために働くだろうどのように??すべてのノードにファイルをコピーする必要がありますいくつかのCDRを処理する必要があります。どこで私はこれらのCDRSを受け取るべきですか?
..私は1000行のファイルが1つあり、すべての場所にコピーします。すべてのスレーブが同じファイルで動作していますか?どのようにそれらの間の負荷がバランスされている...また、私は100のCDRファイルを保持する共有場所がある場合..どのようにこれらのファイルは、スレーブの間で配布されますか? –
まあ、すべてのノードにファイルをコピーしたことはありません。理想的には、前に説明したやり方で、すべてのノードで同じファイルにアクセスできるようにする必要があります。配布に関しては、パーティション上で動作します。ファイルに1000行があり、明示的にlines.repartition(10)と言うと、基本的にはこのように考えてください。それは、それぞれ100行の10並列パーティションを作成し、4人の作業者が同時に4つのプロセスを処理します。パーティションを指定しない場合は、内部アルゴリズムを使用してパーティションの数を計算します。 –
..説明のための感謝.. –