发布于 2015-12-05 11:00:09 | 1723 次阅读 | 评论: 0 | 来源: 网络整理
Mesos主控端和被控端的配置可选项 可通过 命令行参数 或 设置环境变量 来配置。
输入命令 mesos-master --help
和 mesos-slave --help
可查看所有 主控端和被控端 的可用参数,参数可通过两种方式设置:
--option_name=value
设置,可直接输入 设置的值,也可指定一个存储了设置的文件 (--option_name=file://path/to/file
),可以是 绝对路径也可以当前路径的相对路径。MESOS_OPTION_NAME
(名称格式是参数名字加上前缀 MESOS_
)。配置的使用顺序:先搜索环境变量,然后再使用命令行变量。
重要提示
若需特殊编译,可在预配置时,通过命令 ./configure --help
查看编译配置帮助。
另外,下文所列参数仅仅是Mesos最近版本的,具体可以使用哪些参数,需要根据你的Mesos版本而定,可通过 在命令后添加 --help
查询,比如 mesos-master --help
。
下面参数可通用于主控和被控端
<table class="table table-striped"> <thead> <tr> <th width="30%"> 标记 </th> <th> 解释 </th> </tr> </thead>
<tr> <td> --external_log_file=VALUE </td> <td> 设定外部日志文件。此日志可通过 web界面和HTTP api 查看。用途:使用了Mesos不识别的 stderr logging 作为日志文件。 </td> </tr> <tr> <td> --firewall_rules=VALUE </td> <td> 设置防火墙规则,所设置的值 必须是个 json格式字串,或者是 使用了json格式的文档路径。路径格式: <code>file:///path/to/file</code> 或者 <code>/path/to/file</code>. <p/> 可在防火墙信息输出带flags.proto中,查看可用格式。 <p/> 示例: <pre><code>{ "disabled_endpoints" : { "paths" : [ "/files/browse", "/slave(0)/stats.json", ] } }</code></pre> </td> </tr> <tr> <td> --[no-]help </td> <td> 屏显帮助信息(默认设置:false,也就是不输出)
</td>
</tr>
<tr>
<td>
--[no-]initialize_driver_logging
</td>
<td>
设置是否初始化 google 调度日志 和/或者 执行器驱动。(默认:true)
</td>
</tr>
<tr>
<td>
--ip=VALUE
</td>
<td>
设置监听的IP地址,当使用 --ip_discovery_command
时,这个设定会失效。
</td>
</tr>
<tr>
<td>
--ip_discovery_command=VALUE
</td>
<td>
可选项,若设置,将使用主控绑定的IP地址。这个设定和 --ip
互斥。
</td>
</tr> <tr>
<td>
--log_dir=VALUE
</td>
<td>
设置日志文件存储地址(无默认设置,当无设置时,将不会生成任何日志文件。但不会影响到 stderr 日志)。
</td>
</tr> <tr> <td> --logbufsecs=VALUE </td> <td> 设置多少分钟记录一次日志信息(默认是0)
</td>
</tr>
<tr>
<td>
--logging_level=VALUE
</td>
<td>
设置记录的日志信息级别,可用的设置:
'INFO'(一般信息), 'WARNING'(警告), 'ERROR'(出错); 若使用 quiet
参数,将只会作用到 log_dir(若设置了的话)里的日志。(默认级别:INFO)。
</td>
</tr> <tr> <td> --port=VALUE </td> <td> 设置监听的端口(主控默认:5050,被控默认:5051)
</td>
</tr> <tr> <td> --[no-]quiet </td> <td> 设置不把日志输出到 stderr(默认:false)
</td>
</tr> <tr> <td> --[no-]version </td> <td> 显示版本并退出(默认:false) </td> </tr> </table>
必设参数
<table class="table table-striped"> <thead> <tr> <th width="30%"> 标记 </th> <th> 解释 </th> </tr> </thead> <tr> <td> --advertise_ip=VALUE </td> <td> 设置外网可通达主控的对公IP地址。Mesos主控自身不会绑定这个IP地址,但这IP将用来操控Mesos主控端。 </td> </tr> <tr> <td> --advertise_port=VALUE </td> <td> 设置可通达主控的对公端口。Mesos主控自身不会绑定这个端口,但这端口和上面提到的对公IP将用来操控Mesos主控端。 </td> </tr> <tr> <td> --quorum=VALUE </td> <td> 当登记为“同步日志”('replicated_log')时,设置 相对多数的值。 这个值必须大于主控数的一半,比如:相对多数 > (主控数)/2。 <p/>
<b>NOTE</b> 当主控只有一个时(non-HA),不需要设置这个值。
</td>
</tr> <tr> <td> --work_dir=VALUE </td> <td> 设置 注册的信息 存储位置。
</td>
</tr> <tr> <td> --zk=VALUE </td> <td> ZooKeeper的连接地址(用于主控们选举主导者)。格式使用下面之一即可: <pre><code>zk://主机地址1:端口1,主机地址2:端口2,.../路径 zk://用户名:密码@主机地址1:端口1,主机地址2:端口2,.../路径 file:///path/to/file (包含上面信息文件的位置)</code></pre> <p/> <b>NOTE</b> 当主控只有一个时(non-HA),不需要设置这个值。 </td> </tr> </table>
可选参数
<table class="table table-striped">
<thead>
<tr>
<th width="30%">
标记
</th>
<th>
解释
</th>
</tr>
</thead>
<tr>
<td>
--acls=VALUE
</td>
<td>
设置可执行列表,格式是JSON格式的字串或者是使用JSON的文件路径。可以绝对路径也可以相对路径,如:<code>file:///path/to/file</code> 或 <code>/path/to/file</code>。
<p/>
在mesos.proto的ACL的protobuf中,查看可用格式。
<p/>
JSON配置文件示例:
<pre><code>{
"register_frameworks": [
{
"principals": { "type": "ANY" },
"roles": { "values": ["a"] }
}
],
"run_tasks": [
{
"principals": { "values": ["a", "b"] },
"users": { "values": ["c"] }
}
],
"shutdown_frameworks": [
{
"principals": { "values": ["a", "b"] },
"framework_principals": { "values": ["c"] }
}
]
}</code></pre>
</td>
</tr>
<tr>
<td>
--allocation_interval=VALUE
</td>
<td>
设置(成批)分配资源时的等待回馈时间量。 (比如 500ms, 1sec, 等). (默认1秒: 1secs)
</td>
</tr>
<tr>
<td>
--allocator=VALUE
</td>
<td>
分配资源的调度器,默认<code>HierarchicalDRF</code>,或者使用 <code>--modules</code>来调用 调度器。
(默认: HierarchicalDRF)
</td>
</tr>
<tr>
<td>
--[no-]authenticate
</td>
<td>
若认证被设定为true
,将只有被认证的应用可被注册。默认所有非认证的应用都可注册。(默认: false)
</td>
</tr>
<tr>
<td>
--[no-]authenticate_slaves
</td>
<td>
若设为'true',认证的被控端将可注册。
<p/>
默认所有非认证的被控端皆可注册。 (默认: false)
</td>
</tr>
<tr>
<td>
--authenticators=VALUE
</td>
<td>
设定认证方式,默认<code>crammd5</code>,或者使用 <code>--modules</code>来调用 认证模块。
(默认: crammd5)
</td>
</tr>
<tr>
<td>
--authorizers=VALUE
</td>
<td>
设置授权方式,默认使用<code>local</code>,或者使用 <code>--modules</code>来调用 授权模块。
<br/>
Note:当 <code>--authorizers</code>的值不是<code>local</code>时,可执行列表<code>--acls</code>传递的参数将被忽略。
<br/>
当前不支持混用多种授权方式。<br/>
(默认:<code>local</code>)
</td>
</tr>
<tr>
<td>
--cluster=VALUE
</td>
<td>
设定在web界面里显示的集群名。
</td>
</tr>
<tr>
<td>
--credentials=VALUE
</td>
<td>
设定证书列表路径。证书列表可以是一个文本文件(每行记录一个 授权对象和密钥,用空格隔开),也可以是一个json格式文档。路径格式可以是<code>file:///path/to/file</code> 或者
<code>/path/to/file</code>
<p/>
JSON文件示例:
<pre><code>{
"credentials": [
{
"principal": "sherman",
"secret": "kitesurf"
}
]
}</code></pre>
<p/>
文本文件示例:
<pre><code> username secret </code></pre>
</td>
</tr> <tr> <td> --framework_sorter=VALUE </td> <td> 设置 用户的应用 间的资源分配策略。值和user_allocator一样。 (默认按优先度分配: drf) </td> </tr> <tr> <td> --hooks=VALUE </td> <td> 设置主控将安装的可调用模块,模块名间用逗号隔开。 </td> </tr> <tr> <td> --hostname=VALUE </td> <td> 设置主控在ZooKeeper中的主机名。 若不设置,将使用IP地址标识。 </td> </tr> <tr> <td> --[no-]log_auto_initialize </td> <td> 设置是否在注册时自动初始化 “同步日志”,若设为 flase,则以后首次使用的时候,需要手动创建。 (默认: true) </td> </tr> <tr> <td> --max_slave_ping_timeouts=VALUE </td> <td> 设置 呼叫 被控端无回应的超时时间。超时的被控端将被移除。 (默认: 5) </td> </tr> <tr> <td> --modules=VALUE </td> <td> 设置内部子系统需要加载的模块。 <p/> 可用 <code>--modules=filepath</code>指定文件路径。文件是以JSON格式保存的需加载模块列表。 文件内路径格式可用 <code>file:///path/to/file</code> 或 <code>/path/to/file</code>。<p/> 也可用 <code>--modules="{...}"</code>在行内列出所需加载的模块。 <p/> JSON文件示例: <pre><code>{ "libraries": [ { "file": "/path/to/libfoo.so", "modules": [ { "name": "org_apache_mesos_bar", "parameters": [ { "key": "X", "value": "Y" } ] }, { "name": "org_apache_mesos_baz" } ] }, { "name": "qux", "modules": [ { "name": "org_apache_mesos_norf" } ] } ] }</code></pre> </td> </tr> <tr> <td> --offer_timeout=VALUE </td> <td> 设置应用申请资源的超时时间。 <p/> 这可用于:当应用应用一直不停申请资源时,或者应用意外丢失申请时。
</td>
</tr> <tr> <td> --rate_limits=VALUE </td> <td> 设置应用的资源使用最大比例,可以是一个JSON格式的字串,也可以一个设定的JSON格式文件。 <p/> 文件内路径格式可用 <code>file:///path/to/file</code> 或 <code>/path/to/file</code>。 <p/>
见mesos.proto里的 RateLimits protobuf,查看可用格式。
<p/>
示例:
<pre><code>{ "limits": [ { "principal": "foo", "qps": 55.5 }, { "principal": "bar" } ], "aggregate_default_qps": 33.3 }</code></pre> </td> </tr> <tr> <td> --recovery_slave_removal_limit=VALUE </td> <td> 设置被移出注册表以及重新注册超时后关机的被控端比例,以启动 切换备用 模式。 若超过此设定的比例,则主控将会 启用备用 模式,而不是移除被控。 <p/> 在生产环境中,这种模式可令系统更为稳健。生产环境中,主控间频繁切换就相当于 被控端永久崩溃的比例已经超过最大设定。(比例由rack-level设定)。 <p/> 此项设置可用于 当集群发生大规模被控崩溃的时候,让人工干预。 <p/> 值: [0%-100%] (默认: 100%) </td> </tr> <tr> <td> --registry=VALUE </td> <td> 设置注册的策略。 <p/> 可用设置:'replicated_log'(), 'in_memory' (测试中的功能). (默认: replicated_log) </td> </tr> <tr> <td> --registry_fetch_timeout=VALUE </td> <td> 设置获取注册信息的超时时间。(默认1分钟: 1mins) </td> </tr> <tr> <td> --registry_store_timeout=VALUE </td> <td> 设置存储注册信息的超时时间。(默认5秒: 5secs) </td> </tr> <tr> <td> --[no-]registry_strict </td> <td> 设置是否验证注册信息。若设置为 false,则代表接受所有的注册,包括:被控加入申请、被控读取申请、移除被控申请。这样设置不需系统重构,从而可令运行中的集群 保持持续运转。 <p/> NOTE: 此项功能目前仍处 实验 阶段,不可用于生产环境!(默认:false) </td> </tr> <tr> <td> --roles=VALUE </td> <td> 设置应用所属 角色,格式是用逗号分隔 所属角色名的字串。 </td> </tr> <tr> <td> --[no-]root_submissions </td> <td> 设置是否可以以 root 身份登录。(默认: true) </td> </tr> <tr> <td> --slave_ping_timeout=VALUE </td> <td> 设置 主控 呼叫 被控 的超时时间。超时无回应的被控将被移出注册表。 (默认15秒:15secs) </td> </tr> <tr> <td> --slave_removal_rate_limit=VALUE </td> <td> 设置 移除被控端的 最大速度(比如10分钟移除一个,或者3小时移除2个:1/10mins, 2/3hrs 等),默认是遇到失联的被控则立刻移除。 <p/> 设置值的计算公式:'被控数量'/'间隔时间' </td> </tr> <tr> <td> --slave_reregister_timeout=VALUE </td> <td> 设置 当新主导端被选定后,所有被控端 重新注册 的超时时间。超时的被控端将被剔除出成员表,它们对主控的连接将被关闭。 <p/> NOTE: 此值最小10分钟。(默认10分钟: 10mins) </td> </tr> <tr> <td> --user_sorter=VALUE </td> <td> 设置用户间资源分配策略,如下: <p/> dominant_resource_fairness (drf) (默认按优先度分配: drf) </td> </tr> <tr> <td> --webui_dir=VALUE </td> <td> web界面的路径 (默认: /usr/local/share/mesos/webui) </td> </tr> <tr> <td> --weights=VALUE </td> <td> 角色和权重(优先度)列表,用逗号分隔。如 'role=weight,role=weight'。 </td> </tr> <tr> <td> --whitelist=VALUE </td> <td> 设定一个白名单文件名,此文件里每行记录一个被控端可供给的资源信息,此文件会被监视,一定周期内会被重读刷新 被控端白名单。默认没有白名单,所有机器都可被接受。(默认:None) <p/>
示例:
<pre><code>file:///etc/mesos/slave_whitelist</code></pre>
<p/>
</td>
</tr> <tr> <td> --zk_session_timeout=VALUE </td> <td> 设置ZooKeeper会话超时时间。(默认10秒:10secs) </td> </tr> </table>
当使用了'--with-network-isolator'时,可用参数设置
标记 | 解释 |
---|---|
--max_executors_per_slave=VALUE | 设置 每个被控端 可用执行器最大数量。网络监控和隔离技术会让每个执行器占用一定的资源(# ephemeral ports),因此每个被控端只能运行一定数量的执行器。 <p/> 当被控端的临时端口都被分配后,此标识用于避免 应用再来获取资源申请。 |
必设参数
<table class="table table-striped"> <thead> <tr> <th width="30%"> 标记 </th> <th> 解释 </th> </tr> </thead> <tr> <td> --master=VALUE </td> <td> 设置连接主控的方式。有三种方式: <ol> <li> 主控的主机名或者IP地址,多个用逗号分隔。如: <pre><code>--master=localhost:5050 --master=10.0.0.5:5050,10.0.0.6:5050 </code></pre> </li>
<li> zookeeper 或 quorum hostname/ip + 端口 + 主控注册表路径</li>
<pre><code>--master=zk://host1:port1,host2:port2,.../path --master=zk://username:password@host1:port1,host2:port2,.../path </code></pre> </li>
<li> 可以把上面两种设定中的一种放进一个文件里,然后指定文件路径<code>file:///path/to/file</code>,连接主控。
</li>
</ol>
</td>
</tr> </table>
可选参数
<table class="table table-striped"> <thead> <tr> <th width="30%"> 标志 </th> <th> 解释 </th> </tr> </thead> <tr> <td> --attributes=VALUE </td> <td> 设置机器参数,格式如下: <p/> <code>rack:2</code> 或 <code>'rack:2;u:1'</code> </td> </tr> <tr> <td> --authenticatee=VALUE </td> <td> 设定认证方式,默认<code>crammd5</code>,或者使用 <code>--modules</code>来调用 认证模块。 </td> </tr> <tr> <td> --[no-]cgroups_cpu_enable_pids_and_tids_count </td> <td> 设置使用分组策略cgroup来计算容器中的进程和线程。(默认: false) </td> </tr> <tr> <td> --[no-]cgroups_enable_cfs </td> <td> 设置使用分组策略cgroup的CFS带宽限额来限制CPU使用量。 (默认: false) </td> </tr> <tr> <td> --cgroups_hierarchy=VALUE </td> <td> 设置cgroup是的路径 (默认: /sys/fs/cgroup) </td> </tr> <tr> <td> --[no-]cgroups_limit_swap </td> <td> 设置使用分组策略cgroup限制内存和缓存使用量。 (默认: false) </td> </tr> <tr> <td> --cgroups_root=VALUE </td> <td> 设置cgroup的根名字。 (默认: mesos) </td> </tr> <tr> <td> --container_disk_watch_interval=VALUE </td> <td> 设置当使用<code>posix/disk</code>分隔策略时,内部容器间对磁盘轮询的时间间隔。 (默认15秒: 15secs) </td> </tr> <tr> <td> --containerizer_path=VALUE </td> <td> 设置当 外部网络隔离启用时(--isolation=external),外部管理容器的路径。
</td>
</tr> <tr> <td> --containerizers=VALUE </td> <td> 设置使用的容器管理工具,多个的话用逗号分隔,系统将按出现的顺序使用。 <p/> 可用的值:'mesos', 'external', 和 'docker' (on Linux)。 (默认: mesos) </td> </tr> <tr> <td> --credential=VALUE </td> <td> 设定证书列表路径。证书列表可以是一个文本文件(每行记录一个 授权对象和密钥,用空格隔开),也可以是一个json格式文档。路径格式可以是<code>file:///path/to/file</code> 或者 <code>/path/to/file</code>
<p>JSON文件示例:<p/>
<pre><code>{
"principal": "username",
"secret": "secret"
}</code></pre>
</td>
</tr>
<tr>
<td>
--default_container_image=VALUE
</td>
<td>
设置当使用外部容器工具时,默认使用的镜像。
</td>
</tr>
<tr>
<td>
--default_container_info=VALUE
</td>
<td>
设定默认容器信息ContainerInfo路径,信息保存在一个JSON格式文档中。当没有指定容器信息的时候,ExecutorInfo将使用这个默认值。
<p/>
可在mesos.proto的ContainerInfo protobuf 中,查看可用格式。
<p/>
内容示例如下:
<pre><code>{
"type": "MESOS",
"volumes": [
{
"host_path": "./.private/tmp",
"container_path": "/tmp",
"mode": "RW"
}
]
}</code></pre>
</td>
</tr>
<tr>
<td>
--default_role=VALUE
</td>
<td>
设置默认角色:当 --resources
但却没有设置角色的时候,或者没有列在--resources
中的,都将使用此默认角色。
(默认: *
)
</td>
</tr>
<tr>
<td>
--disk_watch_interval=VALUE
</td>
<td>
设置监测磁盘空间使用状况的周期时间。 (默认1分钟: 1mins)
</td>
</tr>
<tr>
<td>
--docker=VALUE
</td>
<td>
设置docker的绝对路径。
(默认: docker)
</td>
</tr>
<tr>
<td>
--docker_remove_delay=VALUE
</td>
<td>
延迟移除docker容器的时间(比如3天,2周等 3days, 2weeks)。
(默认6小时: 6hrs)
</td>
</tr>
<tr>
<td>
--[no-]docker_kill_orphans
</td>
<td>
设置让docker管理器关闭已经空载的容器。当需要在同一个系统里面运行多个被控的时候,需要设置为 false,已免docker移除被其他 被控端使用的 容器。同时,也需要给被控开启运行监测,以使得 被控的识别名能够重用,否则被控上的docker任务在重启的时候将无法被清空。
(默认: true)
</td>
</tr>
<tr>
<td>
--docker_sock=VALUE
</td>
<td>
设置 将被docker执行器加载的UNIXsocket路径,以使docker命令行界面里可操作docker守护进程。这个路径必须是被控的docker 镜像里用的。
(默认: /var/run/docker.sock)
</td>
</tr>
<tr>
<td>
--docker_mesos_image=VALUE
</td>
<td>
设置docker镜像,用于运行 mesos被控实例。若镜像被指定,被控端运行于docker容器中,当被控端重启并恢复的时候,将用docker容器加载执行器,来恢复状态。
</td>
</tr>
<tr>
<td>
--docker_stop_timeout=VALUE
</td>
<td>
设置docker停用到杀死一个实例的等待时间,默认0秒表示停止后立即杀死。 (默认0秒: 0secs)
</td>
</tr>
<tr>
<td>
--sandbox_directory=VALUE
</td>
<td>
设置容器中沙箱所指的绝对路径。
(默认: /mnt/mesos/sandbox)
</td>
</tr>
<tr>
<td>
--[no-]enforce_container_disk_quota
</td>
<td>
设置容器是否开启磁盘使用限额。此项用于 posix/disk
隔离器。 (默认: false)
</td>
</tr>
<tr>
<td>
--executor_environment_variables
</td>
<td>
设置传递给执行器及随后任务的环境变量,格式为JSON对象。默认执行器继承被控端的环境变量。
示例:
<pre><code>{
"PATH": "/bin:/usr/bin",
"LD_LIBRARY_PATH": "/usr/local/lib"
}</code></pre>
</td>
</tr>
<tr>
<td>
--executor_registration_timeout=VALUE
</td>
<td>
设置执行器向被控注册的超时时间,超过设定时间则被认为是挂起并被关闭。(可以 60secs, 3mins, 等) (默认1分钟:1mins)
</td>
</tr>
<tr>
<td>
--executor_shutdown_grace_period=VALUE
</td>
<td>
设置执行器关闭前的等待时间(可以 60secs, 3mins, 等) (默认5秒: 5secs)
</td>
</tr>
<tr>
<td>
--frameworks_home=VALUE
</td>
<td>
设置应用的家路径,用于作为相应执行器URI的前缀。(默认无: )
</td>
</tr>
<tr>
<td>
--gc_delay=VALUE
</td>
<td>
设置清理执行器目录的周期。
<p/>
注意:可根据磁盘使用情况确定周期。(默认一周: 1weeks)
</td>
</tr>
<tr>
<td>
--gc_disk_headroom=VALUE
</td>
<td>
设置执行器目录的纯空置率(就是完全没被用到的磁盘空间比例,)。纯空置率用于计算目录存续期,存续期计算方式:</p>
<code>gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage))</code>
every <code>--disk_watch_interval</code> duration.
<code>gc_disk_headroom</code>数字必须在0.0到 1.0之间。
(默认: 0.1)
</td>
</tr>
<tr>
<td>
--hadoop_home=VALUE
</td>
<td>
设置Hadoop的家目录,以便可在HDFS中找到应用执行器。若无设置,则会从环境变量中寻找 HADOOP_HOME 或在 PATH中找 可执行程序hadoop。(默认无 )
</td>
</tr>
<tr>
<td>
--hooks=VALUE
</td>
<td>
设置将被安装在主控上的可注入模块,多个用逗号分隔。
</td>
</tr>
<tr>
<td>
--hostname=VALUE
</td>
<td>
设置被控的主机名。
<p/>
若没有设置,则会用被控的IP地址来绑定主机名。
</td>
</tr>
<tr>
<td>
--isolation=VALUE
</td>
<td>
设置隔离机制。比如'posix/cpu,posix/mem', or
'cgroups/cpu,cgroups/mem', 或 network/port_mapping
(可用 --with-network-isolator 开启并设置),
或者 'external', 或者可用载入一个 <code>--modules</code>隔离模块。
注意:只对Mesos容器管理器有效。(默认:posix/cpu,posix/mem)
</td>
</tr>
<tr>
<td>
--launcher_dir=VALUE
</td>
<td>
设置Mesos可执行程序路径(默认: /usr/local/lib/mesos)
</td>
</tr>
<tr>
<td>
--modules=VALUE
</td>
<td>
设置内部子系统可用的模块名。
<p/>
可用 <code>--modules=filepath</code>指定文件路径。文件是以JSON格式保存的需加载模块列表。 文件内路径格式可用 <code>file:///path/to/file</code> 或 <code>/path/to/file</code>。<p/>
也可用 <code>--modules="{...}"</code>在行内列出所需加载的模块。 <p/>
JSON文件内容示例:
<pre><code>
{
"libraries": [
{
"file": "/path/to/libfoo.so",
"modules": [
{
"name": "org_apache_mesos_bar",
"parameters": [
{
"key": "X",
"value": "Y"
}
]
},
{
"name": "org_apache_mesos_baz"
}
]
},
{
"name": "qux",
"modules": [
{
"name": "org_apache_mesos_norf"
}
]
}
]
}</code></pre>
</td>
</tr>
<tr>
<td>
--oversubscribed_resources_interval=VALUE
</td>
<td>
设置间隔汇报时间:被控会把目前估算的 已用(也就是可被回收)及还没用的过剩资源总量,定期告诉主控。
(默认15秒: 15secs)
</td>
</tr>
<tr>
<td>
--perf_duration=VALUE
</td>
<td>
设置一个perf统计周期的长度,这个值必须低于perf_interval。(默认10秒: 10secs)
</td>
</tr>
<tr>
<td>
--perf_events=VALUE
</td>
<td>
设置使用 perf_event 分隔器时,用于统计每个容器的perf事件。默认为 none。
<p/>
可输入命令 'perf list' 查看所有的事件。在PerfStatistics protobuf里,事件名会被转为小写,连字符会被替换为下划线。比如cpu-cycles 变成 cpu_cycles,可在 PerfStatistics protobuf中查看所有的名字。
</td>
</tr>
<tr>
<td>
--perf_interval=VALUE
</td>
<td>
设置 perf 统计周期间的间隔,系统会根据这个间隔时间,获取perf的数据,并把最近的数据返回而不是展现。可见,这个perf_interval和资源监控间隔是不一样的。(默认1分钟: 1mins)
</td>
</tr>
<tr>
<td>
--qos_controller=VALUE
</td>
<td>
设置QoS Controller的名字,用于过载检验。
</td>
</tr>
<tr>
<td>
--qos_correction_interval_min=VALUE
</td>
<td>
设置据QoS而调整的最小间隔周期:QoS Controller会根据自己监测到的任务运行性能进行调整,被控会轮询并据此调整。(默认0秒: 0secs)
</td>
</tr>
<tr>
<td>
--recover=VALUE
</td>
<td>
设置是否以更新的状态 还原 并重新连接 原有执行器。
<p/>
可用的值:
<p/>
reconnect: 重新连接那些 失联过但可用的执行器。
<p/>
cleanup : 杀死所有 失联但仍存在的执行器,并退出。——当被控和执行器需要 不向前兼容的升级时可用这项。
<p/>
<p/>
NOTE: 若被控的运行监测没有退出,还原操作将不会发生,而是当作新被控在主控注册。(默认重连: reconnect)
</td>
</tr>
<tr>
<td>
--recovery_timeout=VALUE
</td>
<td>
设置还原被控端时的操作超时总时间。若被控端还原所需时间超过设定的时间,则此指向此被控端、待重连的执行器都将自动中断。
<p/>
NOTE: 此设置只有当--checkpoint
启用时才有效。
(默认15分钟:15mins)
</td>
</tr>
<tr>
<td>
--registration_backoff_factor=VALUE
</td>
<td>
设置被控端到一个新主控重新注册的时间因子。被控会在 [0, b] 之间随机选择一个时间。
b = registration_backoff_factor 时间因子。
<p/>
随后的重新注册时间间隔,将以此为基础指数级增加直到满1分钟,比如第一次[0, b 2^1]之间随机选择,第二次[0, b 2^2],第三次[0, b * 2^3] 等。
(默认1秒: 1secs)
</td>
</tr>
<tr>
<td>
--resource_estimator=VALUE
</td>
<td>
设置监测资源过剩的估算器名称。
</td>
</tr>
<tr>
<td>
--resource_monitoring_interval=VALUE
</td>
<td>
设置监控执行器资源使用情况的间隔时间。(比如:10secs, 1min等) (默认1秒:1secs)
</td>
</tr>
<tr>
<td>
--resources=VALUE
</td>
<td>
设置每个被控总共可用的资源量。形式如下:
</p>
<code>name(role):value;name(role):value...</code>.
</td>
</tr>
<tr>
<td>
--[no-]revocable_cpu_low_priority
</td>
<td>
设置是否以低优先度在可资源回收的CPU中运行,目前仅有cgroups/cpu隔离器支持此功能。 (默认: true)
</td>
</tr>
<tr>
<td>
--slave_subsystems=VALUE
</td>
<td>
设置 以cgroup子系统 来运行被控程序,多个以逗号分隔,比如 <code>memory,cpuacct</code>。默认none。
目前此功能用于资源监控,默认不限制群组,将继承mesos cgroup设置。
</td>
</tr>
<tr>
<td>
--[no-]strict
</td>
<td>
若设置 strict=true
,则将只恢复没有任何出错时的状态。
<p/>
若设置strict=false
,所有之前的出错(比如类似:被控无法恢复执行器的信息,因为执行器在重注册之前被控端就挂了。),将被忽略,将尽可能恢复到最近状态。
(默认: true)
</td>
</tr>
<tr>
<td>
--[no-]switch_user
</td>
<td>
设置是否在被控端,以不同于被控端当前用户的身份运行任务。(需要 setuid 操作权限) (默认: true)
</td>
</tr>
<tr>
<td>
--fetcher_cache_size=VALUE
</td>
<td>
设置 获取器的缓存大小。单位:Bytes.
(默认:2 GB)
</td>
</tr>
<tr>
<td>
--fetcher_cache_dir=VALUE
</td>
<td>
设置 获取器的 缓存路径(这是父级路径,每个被控端一个子文件夹),默认路径放在工作目录中,方便操作。但生产环境则经常会把缓存单独存放到缓存卷,缓存和缓存卷的数据可能会互相干扰,因此,需要明确指定路径,以防不测。
(默认: /tmp/mesos/fetch)
</td>
</tr>
<tr>
<td>
--work_dir=VALUE
</td>
<td>
设置应用的工作路径。(默认: /tmp/mesos)
</td>
</tr>
</table>
当使用'--with-network-isolator'时,可用的参数
标记 | 解释 |
---|---|
--ephemeral_ports_per_container=VALUE | 设置分配给容器的临时端口数。数字必须是2的乘方。(默认: 1024) |
--eth0_name=VALUE | 设置对外连接使用的网络接口(比如 eth0)。若没有指定,网络分隔器将根据主机的网关猜。 |
--lo_name=VALUE | 设置环连接的接口(比如 lo)。若没指定,网络分隔器将自己猜。 |
--egress_rate_limit_per_container=VALUE | 设置每个容器的对外网速限制,单位是 Bytes/s。若无设置,或者设置为0,网络分隔器将不限速。 |
--[no-]network_enable_socket_statistics_summary | 设置是否为每个容器采集 socket通讯的汇总信息。这个用于 'network/port_mapping' 设置。(默认: false) |
--[no-]network_enable_socket_statistics_details | 设置是否为每个容器采集 socket通讯的详细信息。这个用于 'network/port_mapping' 设置。 (默认:false) |
内置的libprocess可用下面环境变量控制
变量 | 解释 |
---|---|
LIBPROCESS_IP | 设置用于和libprocess沟通的IP地址。 |
LIBPROCESS_PORT | 设置用于和libprocess沟通的端口。 |
LIBPROCESS_ADVERTISE_IP | 若设置,则会使用此IP用于libprocess的外部通讯。好处是有些不想让主控执行的通讯任务可以使用非对公ip。 |
LIBPROCESS_ADVERTISE_PORT | 若设置,则会使用此端口用于libprocess的外部通讯。注意:此端口实际上不会被绑定(本地的LIBPROCESS_PORT则会),因此本地ip和端口必须要单独设置。 |
标记 | 解释 |
---|---|
--enable-shared[=PKGS] | 编译共享库 [默认:=yes] |
--enable-static[=PKGS] | 编译静态库 [默认:=yes] |
--enable-fast-install[=PKGS] | 优化为快速安装 [默认:=yes] |
--disable-libtool-lock | 避免锁定(并行编译时锁死会打断编译) |
--disable-java | 不编译Java绑定 |
--disable-python | 不编译Python绑定 |
--enable-debug | 启用调试信息。若CFLAGS/CXXFLAGS 已经有设定,这个设定将不起作用(默认:no)。 |
--enable-optimize | 开启优化。若CFLAGS/CXXFLAGS 已经有设定,这个设定将不起作用(默认:no)。 |
--disable-bundled | 使用已装依赖,而不把依赖一起封包。 |
--disable-bundled-distribute | 不编译distribute,而是使用PYTHONPATH已安装的版本。 |
--disable-bundled-pip | 不编译pip,而是使用PYTHONPATH已安装的版本。 |
--disable-bundled-wheel | 不编译wheel,而是使用PYTHONPATH已安装的版本。 |
--disable-python-dependency-install | 当python依赖已经在make install 阶段里装入时,不再需要下载或安装额外的依赖。 |
标记 | 解释 |
---|---|
--with-gnu-ld | 使用 GNU ld 来复位 C编译器。 [默认:=no] |
--with-sysroot=DIR | 在设定的路径下(若没设定,则使用编译器的sysroot),查找关联库。 |
--with-zookeeper[=DIR] | 不编译ZooKeeper,而是使用已安装的版本,此处指定已装版本路径。 |
--with-leveldb[=DIR] | 不编译LevelDB,而是使用已安装的版本,此处指定已装版本路径。 |
--with-glog[=DIR] | 不编译glog,而是使用已安装的版本,此处指定已装版本路径。 |
--with-protobuf[=DIR] | 不编译protobuf,而是使用已安装的版本,此处指定已装版本路径。 |
--with-gmock[=DIR] | 不编译gmock,而是使用已安装的版本,此处指定已装版本路径。 |
--with-curl=[=DIR] | 设定curl路径。 |
--with-sasl=[=DIR] | 设定sasl2路径。 |
--with-zlib=[=DIR] | 设定zlib路径。 |
--with-apr=[=DIR] | 设定apr-1路径。 |
--with-svn=[=DIR] | 设定svn-1路径。 |
--with-network-isolator | 编译网络分隔器。 |
下面有些变量可能需要根据实际情况设定,以改变 configure
默认值,让编译器能够识别正确名字和路径。
变量 | 解释 |
---|---|
JAVA_HOME | Java Development Kit (JDK)的路径 |
JAVA_CPPFLAGS | JNI 的预编译器设定 |
JAVA_JVM_LIBRARY | libjvm.so的完整路径 |
MAVEN_HOME | mvn的路径。指MAVEN_HOME/bin/mvn中的MARVEN_HOME部分 |
PROTOBUF_JAR | 预编译时 protobuf jar的完整路径。 |
PYTHON | 使用的Python解析器 |
PYTHON_VERSION | 使用的Python版本,比如"2.3"。此字串将被按一定规则附加在Python解析器的名字后。 |