スパークシリーズ(5) - スパーク動作モードとジョブ送信

まず、ジョブ投入

1.1火花提出

すべてのモードを使用しているスパークspark-submit次の形式でジョブを送信するためのコマンドを:

./bin/spark-submit \
  --class <main-class> \        # 应用程序主入口类
  --master <master-url> \       # 集群的 Master Url
  --deploy-mode <deploy-mode> \ # 部署模式
  --conf <key>=<value> \        # 可选配置       
  ... # other options    
  <application-jar> \           # Jar 包路径 
  [application-arguments]       #传递给主入口类的参数  

なお:クラスタ環境では、application-jarあなたはHDFS上のパスすることができ、クラスタ内のすべてのノードにアクセスできる必要があります。また、ローカルファイルシステムパスすることができ、それがローカルファイルシステムのパスである場合は、各マシンが必要とされるのクラスタリングジャーパッケージが存在する同一のパス上のノード。

1.2配備モード

そこ-展開モードclusterclient2つのオプションのパラメータ、デフォルト値clientここでは、両方のための糸モードでスパークで説明しました:

  • 、Drvierは、クラスタモードでマスター・プロセス・アプリケーションで実行スパーク、プロセスがクラスタの糸によって管理され、クライアント投入されたジョブは、アプリケーションを起動した後閉じることができます。
  • 、Drvierはクライアントモードでジョブを送信する過程で、クライアント上で実行されているスパーク、マスター・プロセスはYARNからリソースを要求するために使用されます。

1.3マスター-URL

マスター-URL次の表のすべてのオプションパラメータ:

マスターURL 意味
local ローカルでスパークを実行中のスレッドを使用します
local[K] ローカルでスパークを実行しているKのワーカースレッドを使用します
local[K,F] ローカルで実行されているKのワーカースレッドを使用して、2番目のパラメータは、タスクを再試行の回数失敗しました
local[*] ローカルでスパークを実行している同じCPUを使用してスレッドとコアの数
local[*,F] <BR/>第二パラメータスパークローカルで実行しているCPUコアの同じ番号を使用してスレッドの数は、再試行の回数は、タスクの失敗しました
spark://HOST:PORT スタンドアロンクラスタを指定されたマスターノードに接続されています。デフォルトのポート番号は7077です。
spark://HOST1:PORT1,HOST2:PORT2 飼育係を使用して、スタンドアロンクラスタは、高可用性を実現した場合、それは飼育係が設定したすべてのマスターのホストアドレスを含める必要があります。
mesos://HOST:PORT 与えられたMesosクラスターに接続されています。デフォルトのポートは5050です。、使用のMesosクラスターのZooKeeperの場合はmesos://zk://...アドレスを指定するには、使用--deploy-mode cluster提出するモデルを。
yarn クラスタ、クラスタ構成に接続された糸HADOOP_CONF_DIR、又はYARN_CONF_DIR決定。使用して--deploy-mode設定するためのパラメータclientclusterパターンを。

以下は、3つの一般的な展開モデルと対応するジョブのサブミットを説明しています。

二、ローカルモード

ローカル最もシンプルモードでジョブを提出し、何の構成は、次のコマンドを提出する必要はありません。

# 本地模式提交应用
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
/usr/app/spark-2.4.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.4.0.jar \
100   # 传给 SparkPi 的参数

spark-examples_2.11-2.4.0.jarスパークテストパケットは、供給されたSparkPiパイの値を算出するため、実行結果は以下の通りであります:

https://github.com/heibaiying

三、スタンドアロンモード

スタンドアロンモードが内蔵されている管理する組み込みのリソース・マネージャを使用して、提供されるクラスタリングスパーク。クラスタ構成マーテルプレゼンテーションと2つのワーカーノードに応じて、以下に示すように、2つのホストが実証本明細書で使用されます。

  • hadoop001:2つだけのホストのでhadoop001マスターノードの両方ので、ノードは、労働者です。
  • hadoop002:ワーカーノード。

https://github.com/heibaiying

3.1環境設定

私たちは、まずそのスパークが同じパス2つのホスト上で解凍されたことを確認する必要があります。その後にHadoop001 ${SPARK_HOME}/conf/ディレクトリ、構成、およびサンプルコンフィギュレーションをコピーします。

# cp spark-env.sh.template spark-env.sh

spark-env.shJDKのディレクトリ構成、構成の完了後hadoop002をSCPに分配されます。

# JDK安装位置
JAVA_HOME=/usr/java/jdk1.8.0_201

3.2クラスタ構成

では${SPARK_HOME}/conf/、ディレクトリ、クラスタ構成とサンプル構成をコピーします。

# cp slaves.template slaves

すべてのワーカーノードのホスト名を指定します。

# A Spark Worker will be started on each of the machines listed below.
hadoop001
hadoop002

これは、以下の3点ことに留意すべきです。

  • 主机名与 IP 地址的映射必须在 /etc/hosts 文件中已经配置,否则就直接使用 IP 地址;
  • 每个主机名必须独占一行;
  • Spark 的 Master 主机是通过 SSH 访问所有的 Worker 节点,所以需要预先配置免密登录。

3.3 启动

使用 start-all.sh 代表启动 Master 和所有 Worker 服务。

./sbin/start-master.sh 

访问 8080 端口,查看 Spark 的 Web-UI 界面,,此时应该显示有两个有效的工作节点:

https://github.com/heibaiying

3.4 提交作业

# 以client模式提交到standalone集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop001:7077 \
--executor-memory 2G \
--total-executor-cores 10 \
/usr/app/spark-2.4.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.4.0.jar \
100

# 以cluster模式提交到standalone集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://207.184.161.138:7077 \
--deploy-mode cluster \
--supervise \  # 配置此参数代表开启监督,如果主应用程序异常退出,则自动重启 Driver
--executor-memory 2G \
--total-executor-cores 10 \
/usr/app/spark-2.4.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.4.0.jar \
100

3.5 可选配置

在虚拟机上提交作业时经常出现一个的问题是作业无法申请到足够的资源:

Initial job has not accepted any resources; 
check your cluster UI to ensure that workers are registered and have sufficient resources

https://github.com/heibaiying

<br/>

这时候可以查看 Web UI,我这里是内存空间不足:提交命令中要求作业的 executor-memory 是 2G,但是实际的工作节点的 Memory 只有 1G,这时候你可以修改 --executor-memory,也可以修改 Woker 的 Memory,其默认值为主机所有可用内存值减去 1G。

https://github.com/heibaiying

<br/>

关于 Master 和 Woker 节点的所有可选配置如下,可以在 spark-env.sh 中进行对应的配置:

Environment Variable(环境变量) Meaning(含义)
SPARK_MASTER_HOST master 节点地址
SPARK_MASTER_PORT master 节点地址端口(默认:7077)
SPARK_MASTER_WEBUI_PORT master 的 web UI 的端口(默认:8080)
SPARK_MASTER_OPTS 仅用于 master 的配置属性,格式是 "-Dx=y"(默认:none),所有属性可以参考官方文档:spark-standalone-mode
SPARK_LOCAL_DIRS spark 的临时存储的目录,用于暂存 map 的输出和持久化存储 RDDs。多个目录用逗号分隔
SPARK_WORKER_CORES spark worker 节点可以使用 CPU Cores 的数量。(默认:全部可用)
SPARK_WORKER_MEMORY spark worker 节点可以使用的内存数量(默认:全部的内存减去 1GB);
SPARK_WORKER_PORT ポートスパークワーカーノード(デフォルト:ランダム(ランダム))
SPARK_WORKER_WEBUI_PORT ポート(ポート)のウェブUIの作業員(デフォルト:8081)
SPARK_WORKER_DIR 労働者がアプリケーションのディレクトリを実行して、このディレクトリはログやスクラッチスペースが含まれています(デフォルト:SPARK_HOME /作品)
SPARK_WORKER_OPTS 労働者のための構成プロパティ、フォーマットは「Y -Dx =」(デフォルト:なし)です。すべてのプロパティは、公式ドキュメントを参照することができます:スパークを-スタンドアロン-MODE
SPARK_DAEMON_MEMORY メモリは、マスターと労働者デーモンを刺激するために割り当てられます。(デフォルト:1G)
SPARK_DAEMON_JAVA_OPTS JVMオプションスパークマスターワーカーデーモン、フォーマットは「Y -Dx =」(デフォルト:なし)であります
SPARK_PUBLIC_DNS 公共のDNS名のスパークマスターと労働者。(デフォルト:なし)

三、糸モードにスパーク

糸の実行をサポートするためのジョブを提出するスパークは、この時間は、ワーカーノードを起動する必要はありませんマスターノードを起動する必要はありません。

3.1構成

ではspark-env.sh、ディレクトリのHadoop位置の設定、使用することができるYARN_CONF_DIRか、HADOOP_CONF_DIR指定されました:

YARN_CONF_DIR=/usr/app/hadoop-2.6.0-cdh5.15.2/etc/hadoop
# JDK安装位置
JAVA_HOME=/usr/java/jdk1.8.0_201

3.2開始

スパークは、計算中に一時ファイルを格納するためにHDFSを使用するためのHadoopは、ここにYARNとHDFSを含め、開始されていることを確認する必要がありHDFSが起動しない場合、それは例外がスローされます、起動する必要があります。

# start-yarn.sh
# start-dfs.sh

3.3申請書を提出

#  以client模式提交到yarn集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
--executor-memory 2G \
--num-executors 10 \
/usr/app/spark-2.4.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.4.0.jar \
100

#  以cluster模式提交到yarn集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--executor-memory 2G \
--num-executors 10 \
/usr/app/spark-2.4.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.4.0.jar \
100

もっと大きなデータ系列は、GitHubのオープンソースプロジェクトを見つけることができますビッグデータははじめに

おすすめ

転載: blog.51cto.com/14183932/2439859