Spark概念の理解

3380 ワード

driverとexecutorのパラメータ設定はyarnモードでのみ機能します.--driver-cores:SparkアプリケーションDriverのCPUコア数、Driverは主にタスクのスケジューリングを完了し、executorとcluster managerと調整します.--executor-cores:Sparkは各ExecutorのCPUコア数、各executorが使用する同時スレッド数、すなわち各executorが最大同時実行可能なTask数を適用する--executor-memory:各executorで使用される最大メモリは、シングルマシンの最大使用可能メモリを超えてはいけません.--num-executors:複数のexecutorを作成します.
 
Sparkパフォーマンスの最適化による並列性の合理的な設定:
並列度は主に--executor-coresと--num-executorsの影響を受ける:総cpu core数はexecutorCores*numExecutorsであり、公式推奨task数は一般的に総cpu core数の2~3倍に設定.各ステージのtask数、すなわちrdd分割partitions数である.詳細:https://www.cnblogs.com/jxhd1/p/6702218.html
SparkにおけるTask,Partition,RDD,ノード数,Executor数,core数の関係とApplication,Driver,Job,Task,Stage理解:詳細は以下を参照:https://www.cnblogs.com/liuys635/p/11083338.html
SparkConfプロパティ:詳細:http://doc.codingdict.com/spark/20/
 
Sparkで環境変数を設定する(SparkConfで設定した変数ではなく、os.environで設定した環境変数):
方法1:spark-envに直接.shに環境変数を追加
export S3_ACCESS_KEY_ID=xxx
export S3_SECRET_ACCESS_KEY=xxx
export S3_ENDPOINT=xxx

これにより、ワークnodesノードはすべて有効であり、メインプログラムでosを設定する必要もない.environ
欠点:環境変数を書き込み、動的に変更できない
方法2:SparkContentのenvironment変数で設定
SparkContentを作成して辞書に転送するか、SparkContentを作成してから設定できます.
欠点:メインプログラムもこの環境変数を使用するにはosを通過する必要がある.Environ設定
sc = SparkContext(appName='data model operator')
sc.environment['S3_ENDPOINT'] = 'xxx'
sc.environment['S3_USE_HTTPS'] = 'xxx'
sc.environment['S3_VERIFY_SSL'] = 'xxx'

os.environ['S3_ENDPOINT'] = 'xxx'
os.environ['S3_USE_HTTPS'] = 'xxx'
os.environ['S3_VERIFY_SSL'] = 'xxx'