首页 文章

将Spark作业提交给Spark Cluster

提问于
浏览
1

我是Spark的一个完整的新手,刚开始探索更多 . 我通过不使用任何CDH发行版安装hadoop选择了更长的路径,我已经从Apache网站安装了Hadoop并自己设置配置文件以了解更多基础知识 .

我已经设置了3节点集群(所有节点都是从ESX服务器创建的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磁盘空间),但这些仅用于测试目的 . 所以我猜它没关系 .

我在NameNode 1中安装了Spark(我安装的Hadoop 2.7的兼容版本) . 我能够在本地启动Spark-shell并执行基本的scala命令来创建RDD并对其执行一些操作 . 我还设法将运行SparkPi示例测试为Yarn-Cluster和Yarn-Client部署模式 . 一切都运作良好 .

现在我的问题是,在实时场景中,我们将在本地机器中编写(Java,scala或py)代码(不在构成Hadoop集群的节点中) . 假设我的HA群集在同一网络中有另一台机器 . 如何将我的作业提交给Yarn-Cluster(假设我想尝试提交SparkPi)示例从不在HA中的主机到Yarn RM,如何做我这样做?

我相信,SPARK必须安装在我编写代码的机器中(我的假设是正确的)并且需要在HA群集中安装无火花 . 我还希望将提交作业的输出从其提交的位置返回到主机 . 我不知道需要做些什么来完成这项工作 .

我听说过 Spark JobServer ,这是我需要把这一切全部运行起来的吗?我相信你们可以帮助我解决这个困惑 . 我找不到任何明确说明完成这项工作的步骤的文件 . 我可以从基于Windows的计算机向unix环境中的HA群集设置提交作业吗?

2 回答

  • 0

    Spark JobServer为您的需求提供休息接口 . 除此之外还有其他功能 .

    有关更多信息,请参见https://github.com/spark-jobserver/spark-jobserver .

  • 0

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

    一旦你完成了它的设置,你应该能够从该机器对你的集群运行hdfs命令(如hdfs dfs -ls /),将纱线应用程序提交到集群(yarn jar / opt / cloudera / parcels / CDH / jars / hadoop -examples.jar pi 3 100) .

    在该步骤之后,您可以在网关机器上安装spark并开始提交spark作业 . 如果您打算使用Spark-on-yarn,这是唯一需要安装的机器火花 .

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

相关问题