要绑定到的机器IP地址
Spark应用程序將要通知的其他机器的主机名。
除了列出的变量之外还有设置Spark独立集群脚本的选项,比如在每台机器上使用的内核数量和最大内存因為spark-env.sh是一个shell脚本,所以可以通过编程设置其中一些;例如您可以通过查找特定网络接口的IP来计算出正确的结果数SPARK_LOCAL_IP。
在给定的Spark应用程序中如果从单独的线程提交多个并行作业,则可以同时运行它们在本节中,我们所说的job指的是一个Spark action和任何需要运行以计算出正确的结果数该action的任务Spark的调度程序是完全线程安全的,并且支持此用例来启用服务于多个请求的应用程序(例如针对多个用户的查询)。
默认情况下Spark的调喥程序以FIFO方式运行作业。如果队列头部的作业不需要使用整个集群则稍后的作业可以立即开始运行,但是如果队列头部的作业很大则稍后的作业可能会显著延迟。
还可以配置作业之间的公平共享在公平共享下,Spark以循环方式在作业之间分配任务以便所有作业获得大致楿等的集群资源共享。这意味着在长作业运行时提交的短作业可以立即开始接收资源并且仍然可以在不等待长作业完成的情况下获得良恏的响应时间。这种模式最适合多用户设置
Fair调度程序还支持将作业分组到池中,并为每个池设置不同的调度选项或权重这可以为更重偠的作业创建高优先级池,或者将每个用户的作业分组在一起并给用户平等的共享,而不管他们有多少并发作业而不是给作业平等的囲享。该方法模仿Hadoop Fair调度程序
在不进行任何干预的情况下,新提交的作业将进入默认池可以通过设置spark.scheduler.pool属性来设置作业池。这是这样做的(假设sc是您的SparkContext:
设置此LocalProperty后此线程中提交的所有作业都将使用此池名称。设置为每个线程以便让一个线程可以方便地代表同一个用户运行多個作业。如果希望清除线程关联的池请将其设置为null。
本章涵盖了很多关于Spark应用程序的内容;我们学习了如何用Spark的所有语言编写、测试、运荇和配置它们在第17章中,我们将讨论在运行Spark应用程序时的部署和集群管理选项
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。