当前位置:首页>开发>正文

怎么让程序运行在spark集群上 如何在Spark集群的work节点上启动多个Executor

2023-05-15 21:27:48 互联网 未知 开发

 怎么让程序运行在spark集群上 如何在Spark集群的work节点上启动多个Executor

怎么让程序运行在spark集群上

本文前提是已经正确安装好scala,sbt以及spark了 简述将程序挂载到集群上运行的步骤:
  1、构建sbt标准的项目工程结构:SBT项目工程结构图其中:~/build.sbt文件用来配置项目的基本信息(项目名、组织名、项目版本、使用的scala版本或者再次配置些项目所需的依赖包);project/build.properties文件配置你要使用什么版本的sbt对项目操作;project/plugins.sbt文件是给项目添加所需的插件;project/Build.scala文件是对项目进行些复杂的高级配置;详细的sbt安装配置实用参见博文:
  2、到相应目录下编写程序,spark程序必须要创建一个SparkContext实例。SparkContext("master", "projectName", "SPARK_HOME", "yourProject.jar path")
  3、sbt compile命令编译程序无错后,sbt package命令将程序打包。默认打包的jar文件存放路径为:项目根目录/target/scala-xx.xx.xx/your-project-name_xx.xx.xx-xx.jar
  4、将打包好的jar问价添加到SPAK_CLASSPATH中(在linux中根据作用范围的不同有多种更改环境变量的方式,这里只说我的配置方式:spark根目录下的conf/spark-env.sh文件添加SPARK_CLASSPATH:xxxxxxxx)
  5、配置好环境变量后就可以在spark的根目录下使用./run脚本运行你的程序了例如:./run spark.examples.SparkPi spark://masterIP:port注意,如果程序涉及IO操作起默认路径为SPARK_HOME;至于如何修改这个路径,有待研究
转载,仅供参考。

如何在Spark集群的work节点上启动多个Executor

部署这种模式,需要修改conf目录下的spark-env.sh文件。在其中新增如下配置选项: export HADOOP_HOME= /home/hadoop/hadoop-2.0.0-cdh4.5.0 export HADOOP_CONF_DIR= $HADOOP_HOME/etc/hadoop SPARK_EXECUTOR_INSTANCES=2 SPARK_EXECUTOR_CORES.

如何查看spark集群资源命令

yarn.nodemanager.resource.memory-mb控制每个主机上container使用的最大内存总和。
yarn.nodemanager.resource.cpu-vcores控制每个主机上container使用的最大内核总数。

如何运行Spark集群的Standalone模式

Spark集群有三种运行模式:Standalone、Mesos和YARN模式。

现在说Standalone模式。这是最简单的模式,Spark靠自己就能运行这个模式(不依靠其它集群管理工具)。

方法一:手动运行Standalone模式。
前提:Spark各个文件都不做任何修改。
1、在master机器上运行 ./sbin/start-master/sh
运行完之后,会打印出url: spark://HOST:PORT ,这个就是当前master的Spark URL。
2、在slave机器上运行 ./sbin/start-slave.sh 然后在Master的管理界面上查看http://master-ip:8080,查看slave是否已上线。 方法二:使用集群运行脚本运行Standalone模式。 前提:master节点去访问slave节点需要使用ssh无密码登录,因此需要提前配置无密码登录。 1、在master的conf文件夹下新增slaves文件。slaves文件里存放着每一个slave节点的hostname,每行一个。 2、在master节点上运行如下脚本即可