Spark资源调度和配置说明,Linux系统下实现iSCSI共

一般来说,云服务器都会自带云监控,而且“流量监控”也是常备的监控项。

Spark资源调度有两类(这里主要介绍的是yarn为master的调度)

iscsi简介:iscsi 是基于TCP/IP传输封装的SCSI数据包的块级别的共享,其也为C/S架构模型,服务器端提供客户端所需要的存储设备,客户端只需要进行挂载就可以将其当作自己主机上的存储设备进行分区、格式化使用。

对于内网网卡来说,有一个比较不错的查看工具叫nethogs,可以直接yum,#yum install nethogs,而查看内网网卡流量的方法也很简单,#nethogs eth0。效果如图:

1、master管理的调度

实现iscsi需要的2个角色:

图片 1

当你在Hadoop集群上运行你的spark应用程序的时候,每个应用程序都将申请获取相应的一组独立的用以运行该taske的JVM资源资源,默认情况下,使用的调度方式是一组静态的也是最简单的方式,它允许每个应用程序获取它所需要的最大限制的资源,并且直到运行结束前,一直拥有他们。

iscsi target(server)

言归正传,我们现在要搞的是用zabbix去监控网络的流量,由于金山云的linux控制台只能显示eth0,而没有eth1(外网网卡),所以我们这次就用监控eth0来做例子。

yarn可以使用 –num-executors和—executor-memory以及—executor-core来分配spark应用程序所需要的executors和每个executor所能使用的memory、core资源

存储资源所在的iscsi服务器被称为“target”。iscsi target通常是一个硬盘存储设备。当前大部分的主流操作系统都提供了配合iscsi target使用的客户端软件initiator。

zabbix自带的监控网络流量的key是:net.if.in[eth0,bytes] 和 net.if.out[eth0,bytes],这里默认的单位是bytes,注意1M=1024 * 1024=1048576,如果我们要设定流量超过10M就报警,那么我们的目标值就是10485760。

yarn也提供一种动态的资源管理来分配应用程序需要的资源。也就是应用程序根据你的应用来适当增加或减少你所使用的资源。并且这样特性目前只yarn才支持

iscsi initiator(client)

在模板里我们就可以添加一个item,如图:

配置安装:

initiator就是iscsi传输的服务端。典型的initiator都有共同的目的,就是作为一个iscsi总线的适配器,代替物理上的scsi设备(类似硬盘或者磁带)。Iscsi initiator通过IP网络传输SCSI命令。

图片 2

所有可用的属性使用spark.dynamicAllocation.* 配置

实验环境

注意,单位要是bps,储存值必须要选“差量”,因为我们需要的是两次结果的差值。net.if.out[eth0,bytes]也是一样的。

启用动态资源管理选项:spark.dynamicAllocation.enabled

192.168.1.123 CentOS 6.7 x86_64  target server

然后去建立一个trigger,如图:

配置executers动态分配使用spark.dynamicAllocation.minExecutors

192.168.1.124 CentOS 6.7 x86_64  initiator client

图片 3

和spark.dynamicAllocation.maxExecutors

实验步骤:

然后我们就可以把etc添加到这个模板里,不久就可以收到报警邮件了,如图:

设置spark.shuffle.service.enabled 为true启用shuffle service(yarn的由org.apache.spark.yarn.network.YarnShuffleService实现

一.部署target server

图片 4

如果使用动态的资源管理,那额外的还需要启动一个shuffle服务一确保被executor所读写的shuffle文件在executor退出后被保存

1)首先在target server上添加一块新硬盘,用于iscsi target环境的搭建

图片 5有出有入,可见我们的设定都成功了。

启用方法:set spark.shuffle.service.enabled to true

图片 6

一些Zabbix相关教程集合

在yarn中启用shuffle service的步骤:

图片 7

Ubuntu 14.04下Zabbix2.4.5 源码编译安装  http://www.linuxidc.com/Linux/2015-05/117657.htm

Build Spark with the YARN profile. Skip this step if you are using a pre-packaged distribution.
Locate the spark-<version>-yarn-shuffle.jar. This should be under $SPARK_HOME/network/yarn/target/scala-<version> if you are building Spark yourself, and under lib if you are using a distribution.
Add this jar to the classpath of all NodeManagers in your cluster.
In the yarn-site.xml on each node, add spark_shuffle to yarn.nodemanager.aux-services, then set yarn.nodemanager.aux-services.spark_shuffle.class to org.apache.spark.network.yarn.YarnShuffleService. Additionally, set all relevantspark.shuffle.service.* configurations.
Restart all NodeManagers in your cluster.
动态资源管理策略相关的参数:

2)将新添的硬盘做成LVM

安装部署分布式监控系统Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm

spark.dynamicAllocation.schedulerBacklogTimeout

图片 8

《安装部署分布式监控系统Zabbix 2.06》 http://www.linuxidc.com/Linux/2013-07/86942.htm

spark.dynamicAllocation.sustainedSchedulerBacklogTimeout

图片 9

CentOS 6.3下Zabbix安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm

2、spark应用程序管理的调度

3)在target server上安装scsi-target-utils

Zabbix分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm

在一个executor中根据任务的不同将会并行的运行的不同jobs,它们之间也存在资源竞争,并且spark的调度室线程安全的和支持应用程序服务多用户请求(例如多用户查询)默认情况下spark使用的是FIFO的方式调度,spark也支持FAIR调度

图片 10

CentOS 6.3下Zabbix监控apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm

设置方式:

图片 11

CentOS 6.3下Zabbix监控MySQL数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm

conf = new SparkConf().setMaster(...).setAppName(...) 
conf.set("spark.scheduler.mode", "FAIR") 
sc = new SparkContext(conf)
默认情况下,使用公平调度的时候,所有应用程序将具有相同优先级
使用公平调度的时候可以设置调度池,让不同的用户的应用运行在不同的优先级:
默认池是default poll
job的优先池可以如下修改:
sc.setLocalProperty("spark.scheduler.pool", "pool1")添加
sc.setLocalProperty("spark.scheduler.pool", null)删除
配置池的属性
添加配置文件:
conf.set("spark.scheduler.allocation.file", "/path/to/file")
配置文件格式:
<?xml version="1.0"?> 
  <allocations> 
  <pool name="production"> 池名称
    <schedulingMode>FAIR</schedulingMode> 调度算法
    <weight>1</weight> 优先级
    <minShare>2</minShare> 最小资源分配
  </pool> 
  <pool name="test"> 
    <schedulingMode>FIFO</schedulingMode> 
    <weight>2</weight> 
    <minShare>3</minShare> 
  </pool> 
</allocations>

4)编辑target配置文件

64位CentOS 6.2下安装Zabbix 2.0.6   http://www.linuxidc.com/Linux/2014-11/109541.htm

更多Spark相关教程见以下内容

图片 12

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

CentOS 7.0下安装并配置Spark  http://www.linuxidc.com/Linux/2015-08/122284.htm

添加如下内容

本文由ca88手机版登录发布于ca88手机版,转载请注明出处:Spark资源调度和配置说明,Linux系统下实现iSCSI共

TAG标签: ca88手机版登录
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。