Sparkのローカル、スタンドアロン、Yarnの3つのモードを構築する

1つ:ローカルモード

1.ローカルモードの概要

ローカルモードはコンピューター上で実行されるモードであり、通常、このマシンでのトレーニングとテストに使用されます。次の集中的な方法でマスターをセットアップできます。
ローカル:すべての計算はコアで実行されます。並列計算はありません。通常、マシンでいくつかのテストコードを実行するか、手を練習します。このモードを使用します。
ローカル[K]:ローカルなどの計算を実行するためにKコアを指定します。[4]は、実行する4つのコアを実行することです。

2.ローカルモードでビルドする

1. tarパッケージを解凍した後、関連する構成なしで直接使用できます

tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/

ここに画像の説明を挿入

解凍後、名前をspark-localに変更しmv spark-2.1.1-bin-hadoop2.7/ spark-localます。解凍されたtarパッケージを他のノードにscpする必要はありません。

2.公式のPIケースを実行し、/ opt / module / spark-localで次のスクリプトを実行します。

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--executor-memory 1G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10

ここに画像の説明を挿入

2:スタンドアロンモードの構築

1.スタンドアロンモードの概要:

スタンドアロンモードとは、Sparkのネイティブリソースマネージャーを使用するクラスター操作モードを指しますマスターノードとワーカーノードを使用する必要があります。マスターノードは、クラスター内のワーカーノードのリソース制御、管理、および監視を担当します。

2.スタンドアロンモードの構築:

2.1 / opt / moduleで解凍されたtarパッケージを実行します [root@hadoop102 module]# cp -r ./spark-local/ ./spark-stand

ここに画像の説明を挿入

2.2 spark-standの下のconfディレクトリに入り、2つのファイルslaves.templateとspark-env.sh.templateの名前をslavesspark-env.shに変更します。

mv slaves.template slaves
mv spark-env.sh.template spark-env.sh

2.3スレーブファイルを入力し、その最後の行のlocalhostを削除して、hadoop102、hadoop103、hadoop104に置き換えます。これら3つは、クラスターマシンのホスト名です。ここでは、独自のホスト名に従って変更する必要があります。 。

ここに画像の説明を挿入

2.4 spark-env.shを変更し、それに次のコンテンツを追加して、保存して終了します。

SPARK_MASTER_HOST=hadoop102
SPARK_MASTER_PORT=7077

2.5 spark-stand / sbinの下のspark-config.shファイルを変更して、次のコンテンツを追加し、JAVA_HOMEをロードします。jdkのインストールパスがわからない場合は、$ JAVA_HOMEをエコーし​​て表示できます。

export JAVA_HOME=/opt/module/jdk1.8.0_144

2.6スパークスタンドを他の2台のマシンにコピーする

scp -r / opt / module / spark-stand root @ hadoop103:/ opt / module

scp  -r   /opt/module/spark-stand     root@hadoop103:/opt/module
scp  -r   /opt/module/spark-stand     root@hadoop104:/opt/module

上記の操作を実行した後、hadoop102のspark-stand / sbinでstart-all.shを実行して、sparkクラスターを開始します。

ここに画像の説明を挿入
公式ケーステストを再度実行します

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10

ここに画像の説明を挿入

3:糸モード

1.ヤーンモードの概要

YARNモードは、HadoopのYARNをリソースマネージャーとして使用するクラスター操作モードを指します。
YARNモードでは、マスターノードとワーカーノードを使用する必要はありません(つまり、追加のSparkクラスターを構築する必要はありません)。代わりに、スタンドアロンのマスターノードとワーカーノードに対応する、YARNの下のResourceManagerノードとNodeManagerノードが使用されます。モード。

2.ヤーンモードの構築

1.現在のディレクトリのhadoop102にspark-standをコピーします

cp -r  ./spark-stand/  ./spark-yarn

2.hadoop102にspark-yarn / confと入力してspark-env.shを変更し、次のコンテンツを追加して、sparkに糸の場所を知らせます。

ここに画像の説明を挿入

3. hadoop102、hadoop103、hadoop104の3つのホストでyarn-site.xmlファイルを編集して、次のコンテンツ追加します。私のディレクトリは/opt/module/hadoop-2.7.2/etc/hadoopです。独自のディレクトリを使用できます。ディレクトリ対応する変更を加えます。

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
        <property>
                <name>yarn.nodemanager.pmem-check-enabled</name>
                <value>false</value>
        </property>
        <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
        <property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</value>
        </property>

4. hadoop102で上記のコンテンツを編集した後、spark-yarnを別のマシンにコピーする必要はありません。sparkはyarnモードでクラスターモードを必要としないため、Hadoopがオンになる前に糸クラスターがすでに存在するため、糸クラスターのみで十分です。 。

5. Hadoopを開始し(SparkのYarnモードでは最初にHadoopを開始する必要があることに注意してください)、公式ケースを実行します

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10

ここでの--masterが変更されていることに注意してください。ちょうど今、スタンドアロンモードではhadoop102:7077でしたが、ここでは、yarnモードがyarnに変更されています。

ここに画像の説明を挿入

ここに画像の説明を挿入

シェルウィンドウをヤーンモードで開始すると、対応するプロセスを見つけることができます。

ここに画像の説明を挿入

ここに画像の説明を挿入

3.Spark履歴サーバーの構成

1. spark-yarn / confの下でspark-default.conf.templateの名前をspark-default.confに変更します

mv spark-defaults.conf.template spark-defaults.conf

2. spark-default.confファイルを変更し、ログを開き、hdfs://の後のhadoop102に注意して、ホスト名に従って書き換えます。これは以下と同じです。

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://hadoop102:9000/directory

ここに画像の説明を挿入

注:Hadoopの下のディレクトリディレクトリは事前に作成する必要があり
ます
。spark.eventLog.enabled:ログを有効にしますspark.eventLog.dir:操作中のアプリケーションのすべての情報は、この属性で指定されたパスに記録されます。

3. spark-env.shファイルを変更し、次のコンテンツを追加します

export SPARK_HISTORY_OPTS=
"-Dspark.history.ui.port=18080
-Dspark.history.retainedApplications=30 
-Dspark.history.fs.logDirectory=hdfs://hadoop102:9000/directory"

spark.history.ui.port:Spark内の
historyServerのwebUIのポート番号spark.history.fs.logDirectory = hdfs:// hadoop102:9000 / directory:このプロパティを構成すると、start-historyに設定されます。 -server.shパスを明示的に指定する必要はありません。SparkHistoryServerページには、指定されたパスの下の情報のみが表示されます。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44080445/article/details/110731559