我是火花的新手。
尝试运行spark on yarn in yarn-client mode
.
火花版本 = 1.0.2 HADOOP 版本 = 2.2.0
纱线簇有 3 个活动节点。
spark-env.sh 中设置的属性
SPARK_EXECUTOR_MEMORY=1G
SPARK_EXECUTOR_INSTANCES=3
SPARK_EXECUTOR_CORES=1
SPARK_DRIVER_MEMORY=2G
使用的命令 :/bin/spark-shell --master yarn-client
但是在登录spark-shell
后,它只注册了1个执行者,并分配了一些默认的mem。
我也通过spark-web UI
确认它只有 1 个执行器,并且仅在主节点 (YARN resource manager node
( 上也是如此。
信息纱线。客户端:用于启动 Spark 应用程序主控的命令: List($JAVA_HOME/bin/java, -server, -Xmx2048m, -Djava.io.tmpdir=$PWD/tmp, -Dspark.tachyonStore.folderName=\"spark-fc6383cc-0904-4af9-8abd-3b66b3f0f461\", -Dspark.yarn.secondary.jars=\"\", -Dspark.home=\"/home/impadmin/spark-1.0.2-bin-hadoop2\", -Dspark.repl.class.uri=\"
http://master_node:46823
\", -Dspark.driver.host=\"master_node\", -Dspark.app.name=\"Spark shell\", -Dspark.jars=\"\", -Dspark.fileserver.uri=\"http://master_node:46267
\", -Dspark.master=\"yarn-client\", -Dspark.driver.port=\"41209\", -Dspark.httpBroadcast.uri=\"http://master_node:36965
\", -Dlog4j.configuration=log4j-spark-container.properties, org.apache.spark.deploy.yarn.ExecutorLauncher, --class,未使用,--罐子 , null, --args 'master_node:41209' , --executor-memory, 1024, --executor-cores, 1, --num-executors , 3, 1>,/stdout, 2>,/stderr(... ... ... 14/09/10 22:21:24 INFO cluster.YarnClientSchedulerBackend: Registered executor:
Actor[akka.tcp://sparkExecutor@master_node:53619/user/Executor#1075999905] ID 为 1 10-09-14 22:21:24 信息存储。块管理器信息:使用 589.2 MB RAM 注册块管理器 master_node:40205 10-09-14 22:21:25 信息集群。YarnClientClusterScheduler: YarnClientClusterScheduler.postStartHook done 10-09-14 22:21:25 信息反馈SparkILoop:创建火花上下文。 Spark 上下文可用作 sc。
在以任意数量的并行化运行任何 Spark 操作后,它只需在此节点上串联运行所有这些任务!!
我用这种方式解决了它。我的集群上有 4 个数据节点
火花壳 --执行器数 4 --主纱客户端