一、测试环境使用规范
原则上所有提交到正式集群的新作业必须先经过测试环境测试,测试通过之后才能提交到正式环境。
测试环境包括:
cdh3u1环境:和正式环境具有相同的hadoop版本,参数配置也基本一致。
cdh4u2环境:提供了更高版本的hadoop,该环境安装了NameNode和JobTracker的HA,安装了比hive更快的即时查询impala。
说明:
(1)、两个测试环境根据需求都可以申请开通账户
(2)、两个测试环境不在采用kerberos认证,运维方直接提供client
(3)、impala目前还有部分功能不支持,可以试用,但不建议用于正式环境
(4)、cdh4u2测试环境使用的还是MR1的运行时环境,所以现有的作业不需要修改代码直接可以在上面运行测试。
二、大作业提交规范
这里的大作业是根据作业的counter进行界定的,相关的counter超过指定的阀值(阀值可以根据需要进行调整)时,我们就认为当前作业是大作业。目前通过以下4个counter及阀值来界定是否是大作业:
(1)、FILE_BYTES_READ>=1T:作业在运行中从hadoop集群本地文件系统读取的数据量超过1T
(2)、FILE_BYTES_WRITTEN>=1T:作业在运行中往hadoop集群的本地文件系统写入数据量超过1T
(3)、HDFS_BYTES_READ>=300G:作业在map任务运行阶段从hdfs中读取的数据量超过300G
(4)、HDFS_BYTES_WRITTEN>=200G:作业在reduce运行阶段往hdfs中写入的数据量超过200G
由于大作业对集群的稳定影响非常大,所以业务方在正式环境运行新的大作业之前,必须进行以下两步流程:
(1)、大作业必须在测试环境测试通过,确保程序不存在bug
(2)、邮件通知运维方该作业的相关信息,由运维方进行注册和备案,作业信息包括:作业提交账号、作业名称、作业调度时间、作业预计处理数据量等
说明:
(1)、监控系统每20分钟监控一次,如果发现大作业邮件提醒相关的业务方
(2)、在监控系统中维护一个大作业的白名单列表,对于没有提前邮件通知备案而直接提交到正式环境大作业,监控系统发现后会直接kill掉
三、作业reduce数设置规范
合理设置作业的reduce数量对于集群稳定和作业的高效运行至关重要,所以监控系统对作业的reduce数,以及单个reduce任务处理的数据量进行了监控,对于reduce数设置不合理的作业,监控系统会邮件提醒,业务方根据邮件提醒信息,对reduce数进行适当调整。
reduce数设置相关说明:
(1)、坚决不能使用默认的reduce数运行大作业,reduce默认数是1个。
(2)、reduce任务数合理设置标准:作业单个reduce任务处理的数据量在2G左右。
(3)、对于单个reduce任务处理的数据量大于4G的作业,监控系统会邮件提醒相关业务方,业务方应该根据提醒调整reduce数。