Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 向Spark Cluster提交Spark作业_Apache Spark_Yarn_Hadoop2_High Availability_Spark Jobserver - Fatal编程技术网

Apache spark 向Spark Cluster提交Spark作业

Apache spark 向Spark Cluster提交Spark作业,apache-spark,yarn,hadoop2,high-availability,spark-jobserver,Apache Spark,Yarn,Hadoop2,High Availability,Spark Jobserver,我是Spark的新手,刚刚开始对此进行更多的探索。我选择了较长的路径,没有使用任何CDH发行版安装hadoop,我从Apache网站安装了hadoop,并自己设置了配置文件以了解更多基础知识 我已经设置了一个3节点群集(所有节点都是从ESX server创建的VM计算机)。 我使用zookeeper机制为Namenode和ResourceManager设置了高可用性。这三个节点都被用作DataNode 以下守护进程正在所有三个节点上运行 Daemon in Namenode 1

我是Spark的新手,刚刚开始对此进行更多的探索。我选择了较长的路径,没有使用任何CDH发行版安装hadoop,我从Apache网站安装了hadoop,并自己设置了配置文件以了解更多基础知识

我已经设置了一个3节点群集(所有节点都是从ESX server创建的VM计算机)。 我使用zookeeper机制为Namenode和ResourceManager设置了高可用性。这三个节点都被用作DataNode

以下守护进程正在所有三个节点上运行

Daemon in Namenode 1          Daemon In Namenode 2       Daemon in Datanode         
8724 QuorumPeerMain           22896 QuorumPeerMain       7379 DataNode   
13652 Jps                     23780 ResourceManager      7299 JournalNode
9045 DFSZKFailoverController  23220 DataNode             7556 NodeManager
9175 DataNode                 23141 NameNode             7246 QuorumPeerMain
9447 NodeManager              27034 Jps                  9705 Jps
8922 NameNode                 23595 NodeManager
8811 JournalNode              22955 JournalNode
9324 ResourceManager          23055 DFSZKFailoverController
我已在NameNode 1和2中为NN和RM设置HA。 这些节点的硬件配置非常低(每个节点有4GM RAM和20GB磁盘空间),但这些只是用于测试目的。所以我想没关系

我已经在NameNode1中安装了Spark(与我安装的Hadoop 2.7兼容的版本)。我能够在本地启动Spark shell,并执行基本的scala命令来创建RDD,并对其执行一些操作。我还设法将SparkPi示例作为纱线集群和纱线客户端部署模式进行测试运行。一切都很好

现在我的问题是,在实时场景中,我们将在本地机器中(而不是在构成Hadoop集群的节点中)编写基于(Java、scala或py)的代码。假设我的HA群集所在的网络中有另一台机器。如何将作业提交到纱线群集(假设我想尝试提交SparkPi)示例,从不在HA中的主机提交到纱线RM,如何执行此操作

我相信,SPARK必须安装在我编写代码的机器上(我的假设是否正确),并且不需要在HA集群中安装SPARK。我还希望将提交作业的输出返回到提交作业的主机。我不知道需要做什么才能使这项工作成功


我听说过Spark JobServer,这就是我需要启动并运行这一切的原因吗?我相信你们能帮我解决这个困惑。我只是找不到任何文件明确规定了完成这项工作的步骤。我是否可以在unix环境中将作业从基于Windows的计算机提交到我的HA群集设置?

Spark JobServer为您的要求提供rest接口。除此之外,还有其他特点


有关更多信息,请参阅。

要将spark作业提交到集群,您的机器必须成为“网关节点”。这基本上意味着您在该机器上安装了hadoop二进制文件/库/配置,但没有运行hadoop守护进程

设置好后,您应该能够从该计算机对集群运行hdfs命令(如hdfs dfs-ls/),向集群提交纱线应用程序(纱线jar/opt/cloudera/parcels/CDH/jars/hadoop-examples.jar pi 3 100)

完成该步骤后,您可以在网关计算机上安装spark并开始提交spark作业。如果要在纱线上使用Spark,这是唯一需要安装Spark的机器


您(您的代码)是负责获取作业输出的人。您可以选择将结果保存在HDFS中(最常见的选择),将其打印到控制台,等等。。。Spark的历史服务器用于调试目的。

您能否确认我是否需要在客户端计算机或Hadoop集群中安装此服务器。另外,我认为Spark必须只安装在客户端机器上,如果我没有错的话。是的,Spark必须安装在运行Spark JobServer的机器上。但是,除非存在强大的网络限制,否则SJS不必在集群内运行。您是否参考过一些网站,这些网站解释了如何将spark作业从远程机器提交到集群。我找到的大多数帖子都是使用localhost(将作业提交到独立服务器)不,我没有用过。有关于EMR和SJS的文档,可能对您有用。Thread客户端文档在这里,感谢您的输入。只是澄清一下,通过“网关节点”机器,您指的是开发人员将编写应用程序代码并提交给Thread Cluster的机器。这些机器中的每台都必须安装hadoop(但不是必需的)才能启动所有守护进程。在我的场景中,网关机器指的是Namenode 1,我在clusterCorrect中安装了SPARK。网关机器是开发人员提交作业的机器。每台机器都必须安装hadoop,但它不会运行任何hadoop守护进程。因此,此过程跳过了Spark Job Server的需要?Spark Job Server需要什么?是Spark历史服务器吗?Spark History Server是一个web服务器,允许您浏览过去执行的作业的作业信息。如果您不需要它,就不需要安装它。