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 如何验证DSE Spark Shell是否分布在集群中_Apache Spark_Datastax Enterprise - Fatal编程技术网

Apache spark 如何验证DSE Spark Shell是否分布在集群中

Apache spark 如何验证DSE Spark Shell是否分布在集群中,apache-spark,datastax-enterprise,Apache Spark,Datastax Enterprise,如果外壳已连接到群集或仅在本地模式下运行,是否可以从Spark外壳内部验证哪些节点?我希望用它来调查以下问题: 我已经使用DSE设置了一个小的3节点Cassandra Analytics集群。我可以登录到3台服务器中的任何一台,运行dse spark并启动spark shell。我还通过运行dsetool sparkmaster验证了所有3台服务器都配置了Spark master 但是,当我使用Spark shell运行任何任务时,它似乎只在本地运行。我运行了一个小测试命令: val rdd =

如果外壳已连接到群集或仅在本地模式下运行,是否可以从Spark外壳内部验证哪些节点?我希望用它来调查以下问题:

我已经使用DSE设置了一个小的3节点Cassandra Analytics集群。我可以登录到3台服务器中的任何一台,运行
dse spark
并启动spark shell。我还通过运行
dsetool sparkmaster
验证了所有3台服务器都配置了Spark master

但是,当我使用Spark shell运行任何任务时,它似乎只在本地运行。我运行了一个小测试命令:

val rdd = sc.cassandraTable("test", "test_table")
rdd.count
当我查看Spark Master网页时,我看到只有一台服务器正在运行该作业


我怀疑当我运行
dse spark
时,它正在本地模式下运行shell。我查看了如何为Spark 0.9.1 shell指定一个主控程序,即使我使用
master=dse Spark
(从中),它仍然只在本地模式下运行。

一旦您启动了一个包含3个节点的dse 4.5.1集群,所有节点都设置为Analytics Spark模式,下面是一个演练

集群启动并运行后,您可以使用命令
dsetool sparkmaster
确定哪个节点是Spark主机。此命令仅打印当前主控形状;它不会影响哪个节点是主节点,也不会启动/停止它

将web浏览器指向给定IP地址和端口7080处的Spark Master web UI。您应该看到3个worker处于活动状态,并且没有运行的应用程序。(如果以前的Spark作业发生在此群集上,则可能会有一些工作人员死亡或已完成的应用程序。)

现在在一个节点上使用
dse Spark
打开Spark外壳。如果您检查Spark Master web UI,您应该会看到一个名为“Spark shell”的正在运行的应用程序。它可能会显示分配了1个内核(默认值)

如果单击应用程序ID链接(“app-2014…”),您将看到该应用程序的详细信息,包括一名执行者(工作人员)。您向Spark shell发出的任何命令都将在此worker上运行

默认配置是将Spark master限制为仅允许每个应用程序使用1个核心,因此工作将仅分配给单个节点

要更改此设置,请登录Spark主节点并sudo编辑文件
/etc/dse/Spark/Spark env.sh
。找到设置SPARK\u MASTER\u OPTS的行,然后删除部分
-Dspark.deploy.defaultCores=1
。然后在此节点上重新启动DSE(
sudo service DSE restart

一旦出现,检查Spark master web UI,并使用Spark shell重复测试。您应该看到它被分配了更多的内核,它执行的任何作业都将发生在多个节点上


在生产环境中,您需要更仔细地设置核心数量,以便单个作业不会占用所有资源。

一旦启动了一个包含3个节点的DSE 4.5.1群集,这里有一个演练,所有节点都设置为Analytics Spark模式

集群启动并运行后,您可以使用命令
dsetool sparkmaster
确定哪个节点是Spark主机。此命令仅打印当前主控形状;它不会影响哪个节点是主节点,也不会启动/停止它

将web浏览器指向给定IP地址和端口7080处的Spark Master web UI。您应该看到3个worker处于活动状态,并且没有运行的应用程序。(如果以前的Spark作业发生在此群集上,则可能会有一些工作人员死亡或已完成的应用程序。)

现在在一个节点上使用
dse Spark
打开Spark外壳。如果您检查Spark Master web UI,您应该会看到一个名为“Spark shell”的正在运行的应用程序。它可能会显示分配了1个内核(默认值)

如果单击应用程序ID链接(“app-2014…”),您将看到该应用程序的详细信息,包括一名执行者(工作人员)。您向Spark shell发出的任何命令都将在此worker上运行

默认配置是将Spark master限制为仅允许每个应用程序使用1个核心,因此工作将仅分配给单个节点

要更改此设置,请登录Spark主节点并sudo编辑文件
/etc/dse/Spark/Spark env.sh
。找到设置SPARK\u MASTER\u OPTS的行,然后删除部分
-Dspark.deploy.defaultCores=1
。然后在此节点上重新启动DSE(
sudo service DSE restart

一旦出现,检查Spark master web UI,并使用Spark shell重复测试。您应该看到它被分配了更多的内核,它执行的任何作业都将发生在多个节点上


在生产环境中,您可能希望更仔细地设置核心数量,以便单个作业不会占用所有资源。

谢谢您,但是,我遇到的另一个问题是,我的任何节点上都没有
/etc/dse/spark/
目录。Spark已安装并正在运行,我可以在任何节点上运行
dse Spark
,它将启动,母版页也可以查看。因此,似乎所有内容都已正确安装(我使用了DSE 4.5.1文本安装程序),但没有
spark env.sh
。安装位置取决于您的安装方法以及DSE是否作为服务安装。如果您没有/etc/dse,那么您很可能会在/usr/share/dse/resources/spark下找到这些文件,但它可能位于其他位置,具体取决于您安装的位置。您可以查看此配置页面的示例:谢谢,但是,我似乎还有另一个问题,即在我的任何节点上都没有
/etc/dse/spark/
目录。Spark已安装并正在运行,我可以在任何节点上运行
dse Spark
,它将启动,母版页也可以查看。因此,似乎所有内容都安装正确(我使用了DSE 4.5.1文本安装程序),但没有
spark env.sh