私は Spark の完全な初心者であり、これについてさらに詳しく調べ始めたところです。CDHディストリビューションを使用してhadoopをインストールしないことで、より長いパスを選択し、Apache WebサイトからHadoopをインストールし、構成ファイルを自分で設定して、基本をさらに理解しました。
3 ノード クラスターをセットアップしました (すべてのノードは ESX サーバーから作成された VM マシンです)。Zookeeper メカニズムを使用して、Namenode と ResourceManager の両方に高可用性をセットアップしました。3 つのノードはすべて DataNode としても使用されています。
次のデーモンが 3 つのノードすべてで実行されています
Daemon in Namenode 1 Daemon In Namenode 2 Daemon in Datanode
8724 QuorumPeerMain 22896 QuorumPeerMain 7379 DataNode
13652 Jps 23780 ResourceManager 7299 JournalNode
9045 DFSZKFailoverController 23220 DataNode 7556 NodeManager
9175 DataNode 23141 NameNode 7246 QuorumPeerMain
9447 NodeManager 27034 Jps 9705 Jps
8922 NameNode 23595 NodeManager
8811 JournalNode 22955 JournalNode
9324 ResourceManager 23055 DFSZKFailoverController
NameNode 1 と 2 で NN と RM の HA をセットアップしました。ノードは非常に最小限のハードウェア構成 (それぞれ 4GM の RAM と 20GB のディスク容量) ですが、これらはテスト目的のためだけのものです。だから大丈夫だと思います。
NameNode 1 に Spark (インストール済みの Hadoop 2.7 と互換性のあるバージョン) をインストールしました。Spark-shell をローカルで起動し、基本的な scala コマンドを実行して RDD を作成し、それに対していくつかのアクションを実行できます。また、SparkPi の例を Yarn-Cluster および Yarn-Client 展開モードとしてテスト実行することもできます。すべてがうまく機能します。
今私の問題は、リアルタイムのシナリオで、(Java、scala、または py) ベースのコードをローカル マシンに記述します (Hadoop クラスターを形成するノードではありません)。HA クラスターと同じネットワークに別のマシンがあるとします。HA にないホストから Yarn RM にジョブを送信するにはどうすればよいですか (SparkPi を送信してみます)。私はこれをします ?
コードを書いているマシンに SPARK をインストールする必要があり (私の仮定は正しいですか)、HA クラスターに Spark をインストールする必要はありません。また、送信されたジョブの出力を、送信された場所からホストに戻したいと考えています。これを機能させるために何をする必要があるかわかりません。
Spark JobServerについて聞いたことがありますが、これはすべてを起動して実行するために必要なものですか? 皆さんがこの混乱で私を助けてくれると信じています。これを行うための手順を明確に指定しているドキュメントが見つかりませんでした。Windows ベースのマシンから UNIX 環境の HA クラスター セットアップにジョブを送信できますか?