我试图了解spark是如何在Yarn簇/客户机上运行的。我脑子里有一个问题。有必要在Yarn簇的所有节点上安装spark吗?我认为应该是因为集群中的工作节点执行任务,并且应该能够解码spark应用程序中由驱动程序发送到集群的代码(sparkapi)?文件上说“确保 HADOOP_CONF_DIR 或者 YARN_CONF_DIR 指向包含hadoop集群的(客户端)配置文件的目录”。为什么客户端节点在向集群发送作业时必须安装hadoop?
HADOOP_CONF_DIR
YARN_CONF_DIR
klsxnrf11#
1-如果遵循s从/主架构,则触发。因此,在集群上,必须安装一个spark master和n个spark slave。您可以在独立模式下运行spark。但是使用Yarn架构会给您带来一些好处。这里有一个很好的解释:http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/2-这是必要的,如果你想使用Yarn或hdfs的例子,但正如我之前所说,你可以运行在独立模式。
lnvxswe22#
让我试着剪掉胶水,把它缩短成不耐烦的。6个组成部分:1。客户,2。司机,3。遗嘱执行人,4。应用硕士,5。工人,6人。资源经理;2种部署方式;资源(集群)管理。关系如下:
没有什么特别的,是一个提交Spark应用程序。
没什么特别的,一个工人持有一个或多个遗嘱执行人。
(无论是客户端模式还是群集模式)在yarn中,资源管理器和主控器位于两个不同的节点上;在单机版中,资源管理器==master,同一节点中的同一进程。
在客户机模式下,与客户机坐在一起在yarn-cluster模式下,与master一起使用(在这种情况下,客户端进程在提交应用程序后退出)在独立集群模式下,与一个worker坐在一起瞧à!
unhi4e5o3#
我们在Yarn上运行spark作业(我们使用hdp2.2)。群集上没有安装spark。我们只在hdfs中添加了spark组装jar。例如,运行pi示例:
./bin/spark-submit \ --verbose \ --class org.apache.spark.examples.SparkPi \ --master yarn-cluster \ --conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar \ --num-executors 2 \ --driver-memory 512m \ --executor-memory 512m \ --executor-cores 4 \ hdfs://master:8020/spark/spark-examples-1.3.1-hadoop2.6.0.jar 100 ``` `--conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar` -这张图告诉我们Yarn是从哪里来的。如果你不使用它,它会上传你运行时的jar `spark-submit` . 关于第二个问题:客户机节点不需要安装hadoop。它只需要配置文件。您可以将目录从集群复制到客户端。
vojdkbi04#
加上其他答案。有必要在Yarn簇的所有节点上安装spark吗?否,如果spark作业是在yarn中调度的(或者 client 或者 cluster 模式)。spark安装只需要在独立模式下的许多节点。这些是spark应用程序部署模式的可视化。spark独立群集在 cluster 模式驱动程序将位于其中一个spark worker节点中,而 client 模式将在启动作业的机器内。纱团模式Yarn客户机模式此表简要列出了这些模式之间的差异:pics源它在文档中说“确保hadoop\u conf\u dir或yarn\u conf\u dir指向包含hadoop集群的(客户端)配置文件的目录”。为什么客户端节点在向集群发送作业时必须安装hadoop?hadoop安装不是强制性的,但配置(不是全部)是强制性的!。我们可以把它们称为网关节点。主要有两个原因。中包含的配置 HADOOP_CONF_DIR 目录将被分发到yarn集群,以便应用程序使用的所有容器使用相同的配置。在yarn模式下,resourcemanager的地址是从hadoop配置中获取的( yarn-default.xml ). 因此 --master 参数为 yarn .
client
cluster
yarn-default.xml
--master
yarn
更新:(2017-01-04)
spark 2.0+不再需要fat程序集jar来进行生产部署。来源
4条答案
按热度按时间klsxnrf11#
1-如果遵循s从/主架构,则触发。因此,在集群上,必须安装一个spark master和n个spark slave。您可以在独立模式下运行spark。但是使用Yarn架构会给您带来一些好处。这里有一个很好的解释:http://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/
2-这是必要的,如果你想使用Yarn或hdfs的例子,但正如我之前所说,你可以运行在独立模式。
lnvxswe22#
让我试着剪掉胶水,把它缩短成不耐烦的。
6个组成部分:1。客户,2。司机,3。遗嘱执行人,4。应用硕士,5。工人,6人。资源经理;2种部署方式;资源(集群)管理。
关系如下:
客户
没有什么特别的,是一个提交Spark应用程序。
工人、遗嘱执行人
没什么特别的,一个工人持有一个或多个遗嘱执行人。
主资源(群集)管理器(&R)
(无论是客户端模式还是群集模式)
在yarn中,资源管理器和主控器位于两个不同的节点上;
在单机版中,资源管理器==master,同一节点中的同一进程。
司机
在客户机模式下,与客户机坐在一起
在yarn-cluster模式下,与master一起使用(在这种情况下,客户端进程在提交应用程序后退出)
在独立集群模式下,与一个worker坐在一起
瞧à!
unhi4e5o3#
我们在Yarn上运行spark作业(我们使用hdp2.2)。
群集上没有安装spark。我们只在hdfs中添加了spark组装jar。
例如,运行pi示例:
vojdkbi04#
加上其他答案。
有必要在Yarn簇的所有节点上安装spark吗?
否,如果spark作业是在yarn中调度的(或者
client
或者cluster
模式)。spark安装只需要在独立模式下的许多节点。这些是spark应用程序部署模式的可视化。
spark独立群集
在
cluster
模式驱动程序将位于其中一个spark worker节点中,而client
模式将在启动作业的机器内。纱团模式
Yarn客户机模式
此表简要列出了这些模式之间的差异:
pics源
它在文档中说“确保hadoop\u conf\u dir或yarn\u conf\u dir指向包含hadoop集群的(客户端)配置文件的目录”。为什么客户端节点在向集群发送作业时必须安装hadoop?
hadoop安装不是强制性的,但配置(不是全部)是强制性的!。我们可以把它们称为网关节点。主要有两个原因。
中包含的配置
HADOOP_CONF_DIR
目录将被分发到yarn集群,以便应用程序使用的所有容器使用相同的配置。在yarn模式下,resourcemanager的地址是从hadoop配置中获取的(
yarn-default.xml
). 因此--master
参数为yarn
.更新:(2017-01-04)
spark 2.0+不再需要fat程序集jar来进行生产部署。来源