Mesos 配置(译)

原创
2015/12/18 09:39
阅读数 1.8K

Mesos 配置

The Mesos master and slave can take a variety of configuration options through command-line arguments, or environment variables. A list of the available options can be seen by running mesos-master --help or mesos-slave --help. Each option can be set in two ways:

  • By passing it to the binary using --option_name=value, either specifying the value directly, or specifying a file in which the value resides (--option_name=file://path/to/file). The path can be absolute or relative to the current working directory.
  • By setting the environment variable MESOS_OPTION_NAME (the option name with aMESOS_ prefix added to it).

Configuration values are searched for first in the environment, then on the command-line.

重点可选项

If you have special compilation requirements, please refer to ./configure --help when configuring Mesos. Additionally, this documentation lists only a recent snapshot of the options in Mesos. A definitive source for which flags your version of Mesos supports can be found by running the binary with the flag --help, for example mesos-master --help.

Master 和 Slave 配置项

These options can be supplied to both masters and slaves.

参数项 说明
--external_log_file=VALUE

配置外部管理日志文件。这个文件将会被开放给webui 和 http api。当使用标准错误日志作为日志文件是非常有用的,否则对 mesos 未知。

--firewall_rules=VALUE The value could be a JSON formatted string of rules or a file path containing the JSON formated rules used in the endpoints firewall. Path could be of the formfile:///path/to/file or /path/to/file.

See the Firewall message in flags.proto for the expected format.

示例:

{
  "disabled_endpoints" : {
    "paths" : [
      "/files/browse",
      "/slave(0)/stats.json",
    ]
  }
}
--[no-]help 打印帮助信息 (默认值: false)
--[no-]initialize_driver_logging

是否自动初始化调度器和/或执行器驱动的谷歌记录。 (默认:true)

--ip=VALUE IP 地址监听;不能与 ip_discovery_command同时使用。
--ip_discovery_command=VALUE

可选IP发现命令:若配置,它被期望提交主(master)将要绑定的ip。不可以与--ip一起使用。

--log_dir=VALUE 日志文件放置位置(没有默认,不会写到磁盘除非指定;对写入stderr的日志没有影响 
--logbufsecs=VALUE 日志消息缓存多少秒(默认:0)
--logging_level=VALUE 日志消息大于以上这个级别;可选参数有:'INFO', 'WARNING', 'ERROR';如果这个flag 被使用,将影响到log_dir 日志信息(如果指定)(默认:INFO)
--port=VALUE 端口监听(Master 默认:5050 和 Slave 默认 5051)
--[no-]quiet 禁用日志记录到标准错误(默认:false)
--[no-]version 显示版本信息并且退出(默认:false)

Master 可选项

必选参数项

参数项 说明
--advertise_ip=VALUE IP address advertised to reach mesos master. Mesos master does not bind using this IP address. However, this IP address may be used to access Mesos master.
--advertise_port=VALUE Port advertised to reach mesos master (alongwith advertise_ip). Mesos master does not bind using this port. However, this port (alongwith advertise_ip) may be used to access Mesos master.
--quorum=VALUE The size of the quorum of replicas when using 'replicated_log' based registry. It is imperative to set this value to be a majority of masters i.e., quorum > (number of masters)/2.

NOTE Not required if master is run in standalone mode (non-HA).

--work_dir=VALUE

保存的持久化信息保存的位置保存在注册表里

IP地址发布达到mesos掌握。 Mesos主机不绑定使用此IP地址。然而,该IP地址可能被用来访问Mesos主。

--zk=VALUE ZooKeeper URL (用于选择领导用作 Master) 或许只有一个:
zk://host1:port1,host2:port2,.../path
zk://username:password@host1:port1,host2:port2,.../path
file:///path/to/file (where file contains one of the above)

注: 如果master 运行在 standalone 模式下不需要(非HA)

可选参数项

参数项 说明
--acls=VALUE

值是ACL 的 JSON格式化字符串。请记住,你也可以使用thefile:///path/to/file or/path/to/fileargument  格式化的json 值写入一个文件。

在mesos.proto 的 ACLs 列表的参阅 protobuf 的预期格式。

JSON 文件示例:

{
  "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"] }
    }
  ]
}
--allocation_interval=VALUE Amount of time to wait between performing (batch) allocations (e.g., 500ms, 1sec, etc). (default: 1secs)
--allocator=VALUE Allocator to use for resource allocation to frameworks. Use the default HierarchicalDRFallocator, or load an alternate allocator module using --modules. (default: HierarchicalDRF)
--[no-]authenticate If authenticate is 'true' only authenticated frameworks are allowed to register. If 'false' unauthenticated frameworks are also allowed to register. (default: false)
--[no-]authenticate_slaves If 'true' only authenticated slaves are allowed to register.

If 'false' unauthenticated slaves are also allowed to register. (default: false)

--authenticators=VALUE Authenticator implementation to use when authenticating frameworks and/or slaves. Use the default crammd5, or load an alternate authenticator module using --modules. (default: crammd5)
--authorizers=VALUE Authorizer implementation to use when authorizating actions that required it. Use the default local, or load an alternate authorizer module using --modules. 
Note that if the flag --authorizers is provided with a value different than the default local, the ACLs passed through the --acls flag will be ignored. 
Currently there's no support for multiple authorizers.
(default: local)
--cluster=VALUE Human readable name for the cluster, displayed in the webui.
--credentials=VALUE Either a path to a text file with a list of credentials, each line containing 'principal' and 'secret' separated by whitespace, or, a path to a JSON-formatted file containing credentials. Path should be of the formfile:///path/to/file or /path/to/file

JSON file Example:

{
  "credentials": [
    {
      "principal": "sherman",
      "secret": "kitesurf"
    }
  ]
}

Text file Example:

username secret
--framework_sorter=VALUE Policy to use for allocating resources between a given user's frameworks. Options are the same as for user_allocator. (default: drf)
--hooks=VALUE A comma separated list of hook modules to be installed inside master.
--hostname=VALUE The hostname the master should advertise in ZooKeeper.
If left unset, the hostname is resolved from the IP address that the slave binds to; unless the user explicitly prevents that, using --no-hostname_lookup, in which case the IP itself is used.
--[no-]hostname_lookup Whether we should execute a lookup to find out the server's hostname, if not explicitly set (via, e.g., `--hostname`). True by default; if set to 'false' it will cause Mesos to use the IP address, unless the hostname is explicitly set.
--[no-]log_auto_initialize Whether to automatically initialize the replicated log used for the registry. If this is set to false, the log has to be manually initialized when used for the very first time. (default: true)
--max_slave_ping_timeouts=VALUE The number of times a slave can fail to respond to a ping from the master. Slaves that incur more than `max_slave_ping_timeouts` timeouts will be removed. (default: 5)
--modules=VALUE List of modules to be loaded and be available to the internal subsystems.

Use --modules=filepath to specify the list of modules via a file containing a JSON formatted string. Remember you can also use thefile:///path/to/file or/path/to/fileargument value format to write the JSON in a file.

Use --modules="{...}" to specify the list of modules inline.

JSON file example:

{
  "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"
        }
      ]
    }
  ]
}
--offer_timeout=VALUE Duration of time before an offer is rescinded from a framework.

This helps fairness when running frameworks that hold on to offers, or frameworks that accidentally drop offers.

--rate_limits=VALUE The value could be a JSON formatted string of rate limits or a file path containing the JSON formatted rate limits used for framework rate limiting.

Remember you can also use thefile:///path/to/file or /path/to/fileargument value format to write the JSON in a file.

See the RateLimits protobuf in mesos.proto for the expected format.

Example:

{
  "limits": [
    {
      "principal": "foo",
      "qps": 55.5
    },
    {
      "principal": "bar"
    }
  ],
  "aggregate_default_qps": 33.3
}
--recovery_slave_removal_limit=VALUE For failovers, limit on the percentage of slaves that can be removed from the registry *and* shutdown after the re-registration timeout elapses. If the limit is exceeded, the master will fail over rather than remove the slaves.

This can be used to provide safety guarantees for production environments. Production environments may expect that across Master failovers, at most a certain percentage of slaves will fail permanently (e.g. due to rack-level failures).

Setting this limit would ensure that a human needs to get involved should an unexpected widespread failure of slaves occur in the cluster.

Values: [0%-100%] (default: 100%)

--registry=VALUE Persistence strategy for the registry;

available options are 'replicated_log', 'in_memory' (for testing). (default: replicated_log)

--registry_fetch_timeout=VALUE Duration of time to wait in order to fetch data from the registry after which the operation is considered a failure. (default: 1mins)
--registry_store_timeout=VALUE Duration of time to wait in order to store data in the registry after which the operation is considered a failure. (default: 5secs)
--[no-]registry_strict Whether the Master will take actions based on the persistent information stored in the Registry. Setting this to false means that the Registrar will never reject the admission, readmission, or removal of a slave. Consequently, 'false' can be used to bootstrap the persistent state on a running cluster.

NOTE: This flag is *experimental* and should not be used in production yet. (default: false)

--roles=VALUE A comma separated list of the allocation roles that frameworks in this cluster may belong to.
--[no-]root_submissions Can root submit frameworks? (default: true)
--slave_ping_timeout=VALUE The timeout within which each slave is expected to respond to a ping from the master. Slaves that do not respond within `max_slave_ping_timeouts` ping retries will be removed. (default: 15secs)
--slave_removal_rate_limit=VALUE The maximum rate (e.g., 1/10mins, 2/3hrs, etc) at which slaves will be removed from the master when they fail health checks. By default slaves will be removed as soon as they fail the health checks.

The value is of the form 'Number of slaves'/'Duration'

--slave_reregister_timeout=VALUE The timeout within which all slaves are expected to re-register when a new master is elected as the leader. Slaves that do not re-register within the timeout will be removed from the registry and will be shutdown if they attempt to communicate with master.

NOTE: This value has to be atleast 10mins. (default: 10mins)

--user_sorter=VALUE Policy to use for allocating resources between users. May be one of:

dominant_resource_fairness (drf) (default: drf)

--webui_dir=VALUE Directory path of the webui files/assets (default: /usr/local/share/mesos/webui)
--weights=VALUE A comma separated list of role/weight pairs of the form 'role=weight,role=weight'. Weights are used to indicate forms of priority.
--whitelist=VALUE A filename which contains a list of slaves (one per line) to advertise offers for. The file is watched, and periodically re-read to refresh the slave whitelist. By default there is no whitelist / all machines are accepted. (default: None)

Example:

file:///etc/mesos/slave_whitelist
--zk_session_timeout=VALUE ZooKeeper session timeout. (default: 10secs)

Flags available when configured with ‘–with-network-isolator’

Flag Explanation
--max_executors_per_slave=VALUE Maximum number of executors allowed per slave. The network monitoring/isolation technique imposes an implicit resource acquisition on each executor (# ephemeral ports), as a result one can only run a certain number of executors on each slave.

This flag was added as a hack to avoid frameworks getting offers when we have allocated all of the ephemeral port range on the slave.

Slave Options

Required Flags

Flag Explanation
--master=VALUE This specifies how to connect to a master or a quorum of masters. This flag works with 3 different techniques. It may be one of:
  1. hostname or ip to a master or comma-delimited list of masters, e.g.,
    --master=localhost:5050
    --master=10.0.0.5:5050,10.0.0.6:5050
  2. zookeeper or quorum hostname/ip + port + master registration path
    --master=zk://host1:port1,host2:port2,.../path
    --master=zk://username:password@host1:port1,host2:port2,.../path
  3. a path to a file containing either one of the above options. You can also use the file:///path/to/filesyntax to read the argument from a file which contains one of the above.

Optional Flags

Flag Explanation
--attributes=VALUE Attributes of machine, in the form:

rack:2 or 'rack:2;u:1'

--authenticatee=VALUE Authenticatee implementation to use when authenticating against the master. Use the default crammd5, or load an alternate authenticatee module using --modules. (default: crammd5)
--[no-]cgroups_cpu_enable_pids_and_tids_count Cgroups feature flag to enable counting of processes and threads inside a container. (default: false)
--[no-]cgroups_enable_cfs Cgroups feature flag to enable hard limits on CPU resources via the CFS bandwidth limiting subfeature. (default: false)
--cgroups_hierarchy=VALUE The path to the cgroups hierarchy root (default: /sys/fs/cgroup)
--[no-]cgroups_limit_swap Cgroups feature flag to enable memory limits on both memory and swap instead of just memory. (default: false)
--cgroups_root=VALUE Name of the root cgroup (default: mesos)
--systemd_runtime_directory=VALUE The path to the systemd system run time directory (default: /run/systemd/system)
--container_disk_watch_interval=VALUE The interval between disk quota checks for containers. This flag is used for the posix/disk isolator. (default: 15secs)
--containerizer_path=VALUE The path to the external containerizer executable used when external isolation is activated (--isolation=external).
--containerizers=VALUE Comma separated list of containerizer implementations to compose in order to provide containerization.

Available options are 'mesos', 'external', and 'docker' (on Linux). The order the containerizers are specified is the order they are tried (--containerizers=mesos). (default: mesos)

--credential=VALUE A path to a text file with a single line containing 'principal' and 'secret' separated by whitespace.

Or a path containing the JSON formatted information used for one credential.

Path should be of the form file://path/to/file.

Remember you can also use the file:///path/to/fileargument value format to read the value from a file.

JSON file example:
{
  "principal": "username",
  "secret": "secret"
}
--default_container_image=VALUE The default container image to use if not specified by a task, when using external containerizer.
--default_container_info=VALUE JSON formatted ContainerInfo that will be included into any ExecutorInfo that does not specify a ContainerInfo.

See the ContainerInfo protobuf in mesos.proto for the expected format.

Example:

{
  "type": "MESOS",
  "volumes": [
    {
      "host_path": "./.private/tmp",
      "container_path": "/tmp",
      "mode": "RW"
    }
  ]
}
--default_role=VALUE Any resources in the --resources flag that omit a role, as well as any resources that are not present in --resources but that are automatically detected, will be assigned to this role. (default: *)
--disk_watch_interval=VALUE Periodic time interval (e.g., 10secs, 2mins, etc) to check the disk usage (default: 1mins)
--docker=VALUE The absolute path to the docker executable for docker containerizer. (default: docker)
--docker_remove_delay=VALUE The amount of time to wait before removing docker containers (e.g., 3days, 2weeks, etc). (default: 6hrs)
--[no-]docker_kill_orphans Enable docker containerizer to kill orphaned containers. You should consider setting this to false when you launch multiple slaves in the same OS, to avoid one of the DockerContainerizer removing docker tasks launched by other slaves. However you should also make sure you enable checkpoint for the slave so the same slave id can be reused, otherwise docker tasks on slave restart will not be cleaned up. (default: true)
--docker_socket=VALUE The UNIX socket path to be mounted into the docker executor container to provide docker CLI access to the docker daemon. This must be the path used by the slave's docker image. (default: /var/run/docker.sock)
--docker_mesos_image=VALUE The docker image used to launch this mesos slave instance. If an image is specified, the docker containerizer assumes the slave is running in a docker container, and launches executors with docker containers in order to recover them when the slave restarts and recovers.
--docker_stop_timeout=VALUE The time as a duration for docker to wait after stopping an instance before it kills that instance. (default: 0secs)
--sandbox_directory=VALUE The absolute path for the directory in the container where the sandbox is mapped to. (default: /mnt/mesos/sandbox)
--[no-]enforce_container_disk_quota Whether to enable disk quota enforcement for containers. This flag is used for the 'posix/disk' isolator. (default: false)
--executor_environment_variables JSON object representing the environment variables that should be passed to the executor, and thus subsequently task(s). By default the executor will inherit the slave's environment variables. Example:
{
  "PATH": "/bin:/usr/bin",
  "LD_LIBRARY_PATH": "/usr/local/lib"
}
--executor_registration_timeout=VALUE Amount of time to wait for an executor to register with the slave before considering it hung and shutting it down (e.g., 60secs, 3mins, etc) (default: 1mins)
--executor_shutdown_grace_period=VALUE Amount of time to wait for an executor to shut down (e.g., 60secs, 3mins, etc) (default: 5secs)
--frameworks_home=VALUE Directory path prepended to relative executor URIs (default: )
--gc_delay=VALUE Maximum amount of time to wait before cleaning up executor directories (e.g., 3days, 2weeks, etc).

Note that this delay may be shorter depending on the available disk usage. (default: 1weeks)

--gc_disk_headroom=VALUE Adjust disk headroom used to calculate maximum executor directory age. Age is calculated by:gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage))every--disk_watch_interval duration. gc_disk_headroommust be a value between 0.0 and 1.0 (default: 0.1)
--hadoop_home=VALUE Path to find Hadoop installed (for fetching framework executors from HDFS) (no default, look for HADOOP_HOME in environment or find hadoop on PATH) (default: )
--hooks=VALUE A comma separated list of hook modules to be installed inside master.
--hostname=VALUE The hostname the agent node should report.
If left unset, the hostname is resolved from the IP address that the slave binds to; unless the user explicitly prevents that, using --no-hostname_lookup, in which case the IP itself is used.
--[no-]hostname_lookup Whether we should execute a lookup to find out the server's hostname, if not explicitly set (via, e.g., `--hostname`). True by default; if set to 'false' it will cause Mesos to use the IP address, unless the hostname is explicitly set.
--isolation=VALUE Isolation mechanisms to use, e.g., 'posix/cpu,posix/mem', or 'cgroups/cpu,cgroups/mem', or network/port_mapping (configure with flag: --with-network-isolator to enable), or 'external', or load an alternate isolator module using the --modules flag. Note that this flag is only relevant for the Mesos Containerizer. (default: posix/cpu,posix/mem)
--launcher=VALUE The launcher to be used for Mesos containerizer. It could either be 'linux' or 'posix'. The Linux launcher is required for cgroups isolation and for any isolators that require Linux namespaces such as network, pid, etc. If unspecified, the slave will choose the Linux launcher if it's running as root on Linux.
--launcher_dir=VALUE Directory path of Mesos binaries (default: /usr/local/lib/mesos)
--image_providers=VALUE Comma separated list of supported image providers, e.g., 'APPC,DOCKER'.
--modules=VALUE List of modules to be loaded and be available to the internal subsystems.

Remember you can also use the file:///path/to/file or/path/to/file argument value format to have the value read from a file.

Use --modules="{...}" to specify the list of modules inline.

JSON file example:

{
  "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"
        }
      ]
    }
  ]
}
--oversubscribed_resources_interval=VALUE The slave periodically updates the master with the current estimation about the total amount of oversubscribed resources that are allocated and available. The interval between updates is controlled by this flag. (default: 15secs)
--perf_duration=VALUE Duration of a perf stat sample. The duration must be less that the perf_interval. (default: 10secs)
--perf_events=VALUE List of command-separated perf events to sample for each container when using the perf_event isolator. Default is none.

Run command 'perf list' to see all events. Event names are sanitized by downcasing and replacing hyphens with underscores when reported in the PerfStatistics protobuf, e.g., cpu-cycles becomes cpu_cycles; see the PerfStatistics protobuf for all names.

--perf_interval=VALUE Interval between the start of perf stat samples. Perf samples are obtained periodically according to perf_interval and the most recently obtained sample is returned rather than sampling on demand. For this reason, perf_interval is independent of the resource monitoring interval (default: 1mins)
--qos_controller=VALUE The name of the QoS Controller to use for oversubscription.
--qos_correction_interval_min=VALUE The slave polls and carries out QoS corrections from the QoS Controller based on its observed performance of running tasks. The smallest interval between these corrections is controlled by this flag. (default: 0secs)
--recover=VALUE Whether to recover status updates and reconnect with old executors.

Valid values for 'recover' are

reconnect: Reconnect with any old live executors.

cleanup : Kill any old live executors and exit.

Use this option when doing an incompatible slave or executor upgrade!).

NOTE: If checkpointed slave doesn't exist, no recovery is performed and the slave registers with the master as a new slave. (default: reconnect)

--recovery_timeout=VALUE Amount of time alloted for the slave to recover. If the slave takes longer than recovery_timeout to recover, any executors that are waiting to reconnect to the slave will self-terminate.

NOTE: This flag is only applicable when checkpoint is enabled. (default: 15mins)

--registration_backoff_factor=VALUE Slave initially picks a random amount of time between [0, b], where b = registration_backoff_factor, to (re-)register with a new master.

Subsequent retries are exponentially backed off based on this interval (e.g., 1st retry uses a random value between [0, b * 2^1], 2nd retry between [0, b * 2^2], 3rd retry between [0, b * 2^3] etc) up to a maximum of 1mins (default: 1secs)

--resource_estimator=VALUE The name of the resource estimator to use for oversubscription.
--resources=VALUE Total consumable resources per slave, in the formname(role):value;name(role):value....
--[no-]revocable_cpu_low_priority Run containers with revocable CPU at a lower priority than normal containers (non-revocable cpu). Currently only supported by the cgroups/cpu isolator. (default: true)
--slave_subsystems=VALUE List of comma-separated cgroup subsystems to run the slave binary in, e.g., memory,cpuacct. The default is none. Present functionality is intended for resource monitoring and no cgroup limits are set, they are inherited from the root mesos cgroup.
--[no-]strict If strict=true, any and all recovery errors are considered fatal.

If strict=false, any expected errors (e.g., slave cannot recover information about an executor, because the slave died right before the executor registered.) during recovery are ignored and as much state as possible is recovered. (default: true)

--[no-]switch_user If set to `true`, the agent will attempt to run tasks as the `user` who launched them (as defined in `FrameworkInfo`) (this requires `setuid` permission and that the given `user` exists on the agent). If the user does not exist, an error occurs and the task will fail. If set to `false`, tasks will be run as the same user as the Mesos agent process. (default: true)
--fetcher_cache_size=VALUE Size of the fetcher cache in Bytes. (default: 2 GB)
--fetcher_cache_dir=VALUE Parent directory for fetcher cache directories (one subdirectory per slave). By default this directory is held inside the work directory, so everything can be deleted or archived in one swoop, in particular during testing. However, a typical production scenario is to use a separate cache volume. First, it is not meant to be backed up. Second, you want to avoid that sandbox directories and the cache directory can interfere with each other in unpredictable ways by occupying shared space. So it is recommended to set the cache directory explicitly. (default: /tmp/mesos/fetch)
--work_dir=VALUE Directory path to place framework work directories (default: /tmp/mesos)

Flags available when configured with ‘–with-network-isolator’

Flag Explanation
--ephemeral_ports_per_container=VALUE Number of ephemeral ports allocated to a container by the network isolator. This number has to be a power of 2. (default: 1024)
--eth0_name=VALUE The name of the public network interface (e.g., eth0). If it is not specified, the network isolator will try to guess it based on the host default gateway.
--lo_name=VALUE The name of the loopback network interface (e.g., lo). If it is not specified, the network isolator will try to guess it.
--egress_rate_limit_per_container=VALUE The limit of the egress traffic for each container, in Bytes/s. If not specified or specified as zero, the network isolator will impose no limits to containers' egress traffic throughput. This flag uses the Bytes type, defined in stout.
--[no-]network_enable_socket_statistics_summary Whether to collect socket statistics summary for each container. This flag is used for the 'network/port_mapping' isolator. (default: false)
--[no-]network_enable_socket_statistics_details Whether to collect socket statistics details (e.g., TCP RTT) for each container. This flag is used for the 'network/port_mapping' isolator. (default: false)

Libprocess Options

The bundled libprocess library can be controlled with the following environment variables.

Variable Explanation
LIBPROCESS_IP Sets the IP address for communication to and from libprocess.
LIBPROCESS_PORT Sets the port for communication to and from libprocess.
LIBPROCESS_ADVERTISE_IP If set, this provides the IP address that will be advertised to the outside world for communication to and from libprocess. This is useful, for example, for containerized tasks in which communication is bound locally to a non-public IP that will be inaccessible to the master.
LIBPROCESS_ADVERTISE_PORT If set, this provides the port that will be advertised to the outside world for communication to and from libprocess. Note that this port will not actually be bound (the local LIBPROCESS_PORT will be), so redirection to the local IP and port must be provided separately.

Mesos Build Configuration Options

The configure script has the following flags for optional features:

Flag Explanation
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS] optimize for fast installation [default=yes]
--enable-libevent use libevent instead of libev for the libprocess event loop [default=no]. Note that the libevent version 2+ development package is required
--enable-ssl enable SSL for libprocess communication [default=no]. Note that --enable-libevent is currently required for SSL functionality
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-java don't build Java bindings
--disable-python don't build Python bindings
--enable-debug enable debugging. If CFLAGS/CXXFLAGS are set, this option won't change them default: no
--enable-optimize enable optimizations. If CFLAGS/CXXFLAGS are set, this option won't change them default: no
--disable-bundled build against preinstalled dependencies instead of bundled libraries
--disable-bundled-distribute excludes building and using the bundled distribute package in lieu of an installed version in PYTHONPATH
--disable-bundled-pip excludes building and using the bundled pip package in lieu of an installed version in PYTHONPATH
--disable-bundled-wheel excludes building and using the bundled wheel package in lieu of an installed version in PYTHONPATH
--disable-python-dependency-install when the python packages are installed during make install, no external dependencies are downloaded or installed

The configure script has the following flags for optional packages:

Flag Explanation
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified).
--with-zookeeper[=DIR] excludes building and using the bundled ZooKeeper package in lieu of an installed version at a location prefixed by the given path
--with-leveldb[=DIR] excludes building and using the bundled LevelDB package in lieu of an installed version at a location prefixed by the given path
--with-glog[=DIR] excludes building and using the bundled glog package in lieu of an installed version at a location prefixed by the given path
--with-protobuf[=DIR] excludes building and using the bundled protobuf package in lieu of an installed version at a location prefixed by the given path
--with-gmock[=DIR] excludes building and using the bundled gmock package in lieu of an installed version at a location prefixed by the given path
--with-curl=[=DIR] specify where to locate the curl library
--with-sasl=[=DIR] specify where to locate the sasl2 library
--with-zlib=[=DIR] specify where to locate the zlib library
--with-apr=[=DIR] specify where to locate the apr-1 library
--with-svn=[=DIR] specify where to locate the svn-1 library
--with-libevent=[=DIR] specify where to locate the libevent library
--with-ssl=[=DIR] specify where to locate the ssl library
--with-network-isolator builds the network isolator
--with-nl=[=DIR] specify where to locate the libnl3 library (required for the network isolator)

Some influential environment variables for configure script:

Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations.

Variable Explanation
JAVA_HOME location of Java Development Kit (JDK)
JAVA_CPPFLAGS preprocessor flags for JNI
JAVA_JVM_LIBRARY full path to libjvm.so
MAVEN_HOME looks for mvn at MAVEN_HOME/bin/mvn
PROTOBUF_JAR full path to protobuf jar on prefixed builds
PYTHON which Python interpreter to use
PYTHON_VERSION The installed Python version to use, for example '2.3'. This string will be appended to the Python interpreter canonical name.
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部