当前位置:K88软件开发文章中心编程语言SQLSpark → 文章内容

独立运行Spark

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-19 4:50:55

由 ligaihe 创建, 最后一次修改 2016-02-24 Spark独立部署模式安装Spark独立模式集群安装Spark独立模式,你只需要将Spark的编译版本简单的放到集群的每个节点。你可以获得每个稳定版本的预编译版本,也可以自己编译。手动启动集群你能够通过下面的方式启动独立的master服务器。./sbin/start-master.sh一旦启动,master将会为自己打印出spark://HOST:PORT URL,你能够用它连接到workers或者作为"master"参数传递给SparkContext。你也可以在master web UI上发现这个URL,master web UI默认的地址是http://localhost:8080。相同的,你也可以启动一个或者多个workers或者将它们连接到master。./bin/spark-class org.apache.spark.deploy.worker.Worker spark://IP:PORT一旦你启动了一个worker,查看master web UI。你可以看到新的节点列表以及节点的CPU数以及内存。下面的配置参数可以传递给master和worker。ArgumentMeaning-h HOST, --host HOST监听的主机名-i HOST, --ip HOST同上,已经被淘汰-p PORT, --port PORT监听的服务的端口(master默认是7077,worker随机)--webui-port PORTweb UI的端口(master默认是8080,worker默认是8081)-c CORES, --cores CORESSpark应用程序可以使用的CPU核数(默认是所有可用);这个选项仅在worker上可用-m MEM, --memory MEMSpark应用程序可以使用的内存数(默认情况是你的机器内存数减去1g);这个选项仅在worker上可用-d DIR, --work-dir DIR用于暂存空间和工作输出日志的目录(默认是SPARK_HOME/work);这个选项仅在worker上可用--properties-file FILE自定义的Spark配置文件的加载目录(默认是conf/spark-defaults.conf)集群启动脚本为了用启动脚本启动Spark独立集群,你应该在你的Spark目录下建立一个名为conf/slaves的文件,这个文件必须包含所有你要启动的Spark worker所在机器的主机名,一行一个。如果conf/slaves不存在,启动脚本默认为单个机器(localhost),这台机器对于测试是有用的。注意,master机器通过ssh访问所有的worker。在默认情况下,SSH是并行运行,需要设置无密码(采用私有密钥)的访问。如果你没有设置为无密码访问,你可以设置环境变量SPARK_SSH_FOREGROUND,为每个worker提供密码。一旦你设置了这个文件,你就可以通过下面的shell脚本启动或者停止你的集群。sbin/start-master.sh:在机器上启动一个master实例sbin/start-slaves.sh:在每台机器上启动一个slave实例sbin/start-all.sh:同时启动一个master实例和所有slave实例sbin/stop-master.sh:停止master实例sbin/stop-slaves.sh:停止所有slave实例sbin/stop-all.sh:停止master实例和所有slave实例注意,这些脚本必须在你的Spark master运行的机器上执行,而不是在你的本地机器上面。你可以在conf/spark-env.sh中设置环境变量进一步配置集群。利用conf/spark-env.sh.template创建这个文件,然后将它复制到所有的worker机器上使设置有效。下面的设置可以起作用:Environment VariableMeaningSPARK_MASTER_IP绑定master到一个指定的ip地址SPARK_MASTER_PORT在不同的端口上启动master(默认是7077)SPARK_MASTER_WEBUI_PORTmaster web UI的端口(默认是8080)SPARK_MASTER_OPTS应用到master的配置属性,格式是 "-Dx=y"(默认是none),查看下面的表格的选项以组成一个可能的列表SPARK_LOCAL_DIRSSpark中暂存空间的目录。包括map的输出文件和存储在磁盘上的RDDs(including map output files and RDDs that get stored on disk)。这必须在一个快速的、你的系统的本地磁盘上。它可以是一个逗号分隔的列表,代表不同磁盘的多个目录SPARK_WORKER_CORESSpark应用程序可以用到的核心数(默认是所有可用)SPARK_WORKER_MEMORYSpark应用程序用到的内存总数(默认是内存总数减去1G)。注意,每个应用程序个体的内存通过spark.executor.memory设置SPARK_WORKER_PORT在指定的端口上启动Spark worker(默认是随机)SPARK_WORKER_WEBUI_PORTworker UI的端口(默认是8081)SPARK_WORKER_INSTANCES每台机器运行的worker实例数,默认是1。如果你有一台非常大的机器并且希望运行多个worker,你可以设置这个数大于1。如果你设置了这个环境变量,确保你也设置了SPARK_WORKER_CORES环境变量用于限制每个worker的核数或者每个worker尝试使用所有的核。SPARK_WORKER_DIRSpark worker运行目录,该目录包括日志和暂存空间(默认是SPARK_HOME/work)SPARK_WORKER_OPTS应用到worker的配置属性,格式是 "-Dx=y"(默认是none),查看下面表格的选项以组成一个可能的列表SPARK_DAEMON_MEMORY分配给Spark master和worker守护进程的内存(默认是512m)SPARK_DAEMON_JAVA_OPTSSpark master和worker守护进程的JVM选项,格式是"-Dx=y"(默认为none)SPARK_PUBLIC_DNSSpark master和worker公共的DNS名(默认是none)注意,启动脚本还不支持windows。为了在windows上启动Spark集群,需要手动启动master和workers。SPARK_MASTER_OPTS支持一下的系统属性:Property NameDefaultMeaningspark.deploy.retainedApplications200展示完成的应用程序的最大数目。老的应用程序会被删除以满足该限制spark.deploy.retainedDrivers200展示完成的drivers的最大数目。老的应用程序会被删除以满足该限制spark.deploy.spreadOuttrue这个选项控制独立的集群管理器是应该跨节点传递应用程序还是应努力将程序整合到尽可能少的节点上。在HDFS中,传递程序是数据本地化更好的选择,但是,对于计算密集型的负载,整合会更有效率。spark.deploy.defaultCores(infinite)在Spark独立模式下,给应用程序的默认核数(如果没有设置spark.cores.max)。如果没有设置,应用程序总数获得所有可用的核,除非设置了spark.cores.max。在共享集群上设置较低的核数,可用防止用户默认抓住整个集群。spark.worker.timeout60独立部署的master认为worker失败(没有收到心跳信息)的间隔时间。SPARK_WORKER_OPTS支持的系统属性:Property NameDefaultMeaningspark.worker.cleanup.enabledfalse周期性的清空worker/应用程序目录。注意,这仅仅影响独立部署模式。不管应用程序是否还在执行,

[1] [2]  下一页


独立运行Spark