基础配置
设置Vertex类
配置:odps.graph.vertex.class
API:GraphJob.setVertexClass()
说明:设置Vertex的实现类,通常使用API设置。
设置Combiner类
配置:odps.graph.combiner.class
API:GraphJob.setCombinerClass()
说明:设置Combiner的实现类,通常使用API设置。
设置Partitioner类
配置:odps.graph.partitioner.class
API:GraphJob.setPartitionerClass()
说明:设置Partitioner的实现类,通常使用API设置。
设置Aggregator类
配置:odps.graph.aggregator.classes
API:GraphJob.setAggregatorClass()
说明:可以设置一个或多个Aggregator实现类,编号从0开始。通常使用API设置。
设置WorkerComputer类
配置:odps.graph.worker.computer.class
API:GraphJob.setWorkerComputerClass()
说明:设置WorkerComputer的实现类,通常使用API设置。
设置Loader类
配置:odps.graph.loader.class
API:GraphJob.setGraphLoaderClass()
说明:设置GraphLoader实现类,通常使用API设置。
配置Loading Resolver类
配置:odps.graph.loading.vertex.resolver.class
API:GraphJob.setLoadingVertexResolverClass()
说明:设置LoadingVertexResolver的实现类,通常使用API设置。
配置Computing Resolver类
配置:odps.graph.computing.vertex.resolver.class
API:GraphJob.setComputingVertexResolverClass()
说明:设置ComputingVertexResolver的实现类,通常使用API设置。
配置最大迭代次数
配置:odps.graph.max.iteration
API:GraphJob.setMaxIteration()
说明:设置最大迭代次数,默认 -1,小于或等于 0 时表示最大迭代次数不作为作业终止条件.
配置Worker的CPU申请量
配置:odps.graph.worker.cpu
API:GraphJob.setWorkerCPU()
说明:设置 Worker CPU,默认 200,表示两个 CPU 核. 取值范围[200, 800]
配置Worker内存申请量
配置:odps.graph.worker.memory
API:GraphJob.setWorkerMemory()
说明:设置 Worker 内存,单位MB,默认 4096. 取值范围[2048, 32768],即2G~32G。如有特殊需求,请联系ODPS-GRAPH开发人员。
配置输入表信息
配置:odps.graph.input.desc
API:GraphJob.addInput()
说明:请参考javadoc:http://odps.alibaba-inc.com/doc/prddoc/odps_graph/api/index.html
配置输出表信息
配置:odps.graph.output.desc
API:GraphJob.addOutput()
说明:请参考javadoc:http://odps.alibaba-inc.com/doc/prddoc/odps_graph/api/index.html
配置Split Size
配置:odps.graph.split.size
API:GraphJob.setSplitSize()
说明:设置输入的切分大小,单位 MB,默认 64。当没有配置odps.graph.worker.num情况下,切分的个数决定了worker的个数。
配置Worker的个数
配置:odps.graph.worker.num
API:GraphJob.setNumWorkers()
说明:设置作业并行执行的节点数,最大值4000。 默认节点数由getSplitSize()和作业输入数据量计算得到。
此接口与 setSplitSize(long) 配合使用,可以提高数据的载入速度。 假设 setNumWorkers 为 workerNum, setSplitSize 为 splitSize, 总输入字节数为 inputSize, 则输入被切分后的块数 splitNum = inputSize / splitSize,workerNum 和 splitNum 之间的关系:
若 splitNum == workerNum,每个 worker 负责载入一个 split;
若 splitNum > workerNum,每个 worker 负责载入一个或多个 split;
若 splitNum < workerNum, 每个 worker 负责载入零个或一个 split;
因此,应调节 workerNum 和 splitSize,在满足前两种情况时,数据载入比较快。迭代阶段只调节 workerNum 即可。
Failover相关配置
配置等待所有Worker启动完毕最长时间
配置:odps.graph.fuxi.job.max.wait.time
API:无
备注:单位是分钟,默认值:15
配置Load后马上执行checkpoint的时间限制
配置:odps.graph.load.checkpoint.limit.time
API:无
说明:
单位:毫秒,默认值:600000(10分钟)
如果load时间超过了该值,则load完成后会立即执行一次checkpoint。
配置checkpoint执行频率
配置:odps.graph.checkpoint.superstep.frequency
API:GraphJob.setCheckpointSuperstepFrequency()
说明:
默认不设置表示按系统默认的方式做checkpoint,即间隔10分钟做一次checkpoint,如果设置,合法值是大于或等于0的整数, 0表示不进行checkpoint,大于0,表示期望每隔n轮superstep做checkpoint,若n次superstep的时间小于系统checkpoint 时间间隔(10分钟),也仍然等到10分钟后再做checkpoint.
配置checkpoint执行周期
配置:odps.graph.checkpoint.time.interval
API:无
说明:单位:秒,默认值:600(10分钟)
如果没有配置odps.graph.checkpoint.superstep.frequency,则checkpoint执行周期以改参数为准;如果配置了odps.graph.checkpoint.superstep.frequency且配置值非0,则checkpoint执行周期为superstep达到odps.graph.checkpoint.superstep.frequency的整数倍且执行间隔大于该参数。
该参数从sprint17开始开放配置。
配置Failover最大重试次数
配置:odps.graph.max.attempts
API:无
说明:默认值为3
高级Feature
配置AggregatorOwnerPartitioner
配置:odps.graph.aggregator.owner.partitioner.class
API:GraphJob.setAggregatorOwnerPartitionerClass()
说明:设置AggregatorOwnerPartitioner的实现类,默认是HashAggregatorOwnerPartitioner.class
配置是否启用Tree Aggregator
配置:odps.graph.use.tree.aggregator
API:GraphJob.setUseTreeAggregator()
说明:是否启用Tree Aggregator,待补充介绍文档。
配置Tree Aggregator 深度
配置:odps.graph.aggregator.tree.depth
API:GraphJob.setAggregatorTreeDepth()
说明:启用Tree Aggregator情况下,Tree的深度。默认是2
配置是否启动广播机制
配置:odps.graph.broadcast.message.enable
API:GraphJob.setBroadcastMessageEnable()
说明:是否启用广播消息机制,待补充介绍文档。
启用多线程compute
配置:odps.graph.computing.threads
API:N/A
说明:采用多线程执行vertex.compute(),默认是1,即单个线程
其他配置项
配置Job优先级
配置:odps.graph.job.priority
API:GraphJob.setJobPriority()
说明:设置Graph作业的优先级,默认是9,取值范围[0,9],0为最高,9为最低。下个版本考虑默认值改为0.
配置cache的资源
配置:odps.graph.cache.resources
API:GraphJob.addCacheResources()
说明:设置cache资源,通过采用命令行jar -resources来指定。
配置加入classpath的资源
配置:odps.graph.cache.resources
API:GraphJob.addCacheResourcesToClassPath()
说明:配置classpath资源,通常采用命令行 jar -libjars来指定。
启用资源预留机制
配置: odps.graph.fuxi.job.resource.all_or_nothing
API: 无
说明: 设置为true,作业提交后,如当前资源不足,Fuxi会为该作业预留资源。
Graph-LOCAL 配置项
配置local run的时候下载数据的条数
配置:odps.mapred.local.record.download.limit
API:无
说明:默认100条,最大可设置上限为1万条
请在评论中给予反馈,谢谢!
时间: 2024-09-22 12:50:53