发布于 2015-12-05 11:00:09 | 1676 次阅读 | 评论: 0 | 来源: 网络整理

Mesos主控端和被控端的配置可选项 可通过 命令行参数 或 设置环境变量 来配置。 输入命令 mesos-master --helpmesos-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,也就是不输出)

&lt;/td&gt;

</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 日志)。

&lt;/td&gt;

</tr> <tr> <td> --logbufsecs=VALUE </td> <td> 设置多少分钟记录一次日志信息(默认是0)

&lt;/td&gt;

</tr> <tr> <td> --logging_level=VALUE </td> <td> 设置记录的日志信息级别,可用的设置: 'INFO'(一般信息), 'WARNING'(警告), 'ERROR'(出错); 若使用 quiet 参数,将只会作用到 log_dir(若设置了的话)里的日志。(默认级别:INFO)。

&lt;/td&gt;

</tr> <tr> <td> --port=VALUE </td> <td> 设置监听的端口(主控默认:5050,被控默认:5051)

&lt;/td&gt;

</tr> <tr> <td> --[no-]quiet </td> <td> 设置不把日志输出到 stderr(默认:false)

&lt;/td&gt;

</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/>

  &lt;b&gt;NOTE&lt;/b&gt; 当主控只有一个时(non-HA),不需要设置这个值。 
&lt;/td&gt;

</tr> <tr> <td> --work_dir=VALUE </td> <td> 设置 注册的信息 存储位置。

&lt;/td&gt;

</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>

  &lt;p/&gt;
  文本文件示例:

<pre><code> username secret </code></pre>

&lt;/td&gt;

</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/> 这可用于:当应用应用一直不停申请资源时,或者应用意外丢失申请时。

&lt;/td&gt;

</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,查看可用格式。
  &lt;p/&gt;

  示例:

<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/>

  示例:
  &lt;pre&gt;&lt;code&gt;file:///etc/mesos/slave_whitelist&lt;/code&gt;&lt;/pre&gt;
  &lt;p/&gt;
&lt;/td&gt;

</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>

    &lt;li&gt; zookeeper 或 quorum hostname/ip + 端口 + 主控注册表路径&lt;/li&gt;

<pre><code>--master=zk://host1:port1,host2:port2,.../path --master=zk://username:password@host1:port1,host2:port2,.../path </code></pre> </li>

    &lt;li&gt; 可以把上面两种设定中的一种放进一个文件里,然后指定文件路径&lt;code&gt;file:///path/to/file&lt;/code&gt;,连接主控。
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/td&gt;

</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),外部管理容器的路径。

&lt;/td&gt;

</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>

  &lt;p&gt;JSON文件示例:&lt;p/&gt;

<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可用下面环境变量控制

变量 解释
LIBPROCESS_IP 设置用于和libprocess沟通的IP地址。
LIBPROCESS_PORT 设置用于和libprocess沟通的端口。
LIBPROCESS_ADVERTISE_IP 若设置,则会使用此IP用于libprocess的外部通讯。好处是有些不想让主控执行的通讯任务可以使用非对公ip。
LIBPROCESS_ADVERTISE_PORT 若设置,则会使用此端口用于libprocess的外部通讯。注意:此端口实际上不会被绑定(本地的LIBPROCESS_PORT则会),因此本地ip和端口必须要单独设置。

Mesos编译配置参数

编译配置中有下面可选参数设置:

标记 解释
--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解析器的名字后。
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务