[ https://issues.apache.org/jira/browse/MESOS-8045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benno Evers reassigned MESOS-8045: ---------------------------------- Resolution: Fixed Assignee: Benno Evers This is resolved by MESOS-8728, now we only print the full help string when the "--help" option is specified. > Update Mesos executables output if there is a typo > -------------------------------------------------- > > Key: MESOS-8045 > URL: https://issues.apache.org/jira/browse/MESOS-8045 > Project: Mesos > Issue Type: Improvement > Reporter: Armand Grillet > Assignee: Benno Evers > Priority: Minor > > Current output if a user makes a typo while using one of the Mesos > executables: > {code} > build (master) $ ./bin/mesos-master.sh --ip=127.0.0.1 --workdir=/tmp > Failed to load unknown flag 'workdir' > Usage: mesos-master [options] > --acls=VALUE > The value could be a JSON-formatted string of ACLs > > or a file path containing the JSON-formatted ACLs used > > for authorization. Path could be of the form `file:///path/to/file` > > or `/path/to/file`. > > Note that if the flag `--authorizers` is provided with a value > > different than `local`, the ACLs contents > > will be ignored. > > See the ACLs protobuf in acls.proto for the expected format. > > Example: > > { > > "register_frameworks": [ > > { > > "principals": { "type": "ANY" }, > > "roles": { "values": ["a"] } > > } > > ], > > "run_tasks": [ > > { > > "principals": { "values": ["a", "b"] }, > > "users": { "values": ["c"] } > > } > > ], > > "teardown_frameworks": [ > > { > > "principals": { "values": ["a", "b"] }, > > "framework_principals": { "values": ["c"] } > > } > > ], > > "set_quotas": [ > > { > > "principals": { "values": ["a"] }, > > "roles": { "values": ["a", "b"] } > > } > > ], > > "remove_quotas": [ > > { > > "principals": { "values": ["a"] }, > > "quota_principals": { "values": ["a"] } > > } > > ] > > } > --advertise_ip=VALUE > IP address advertised to reach this Mesos master. > > The master does not bind using this IP address. > > However, this IP address may be used to access this master. > --advertise_port=VALUE > Port advertised to reach Mesos master (along with > > `advertise_ip`). The master does not bind to this port. > > However, this port (along with `advertise_ip`) may be used to > > access this master. > --agent_ping_timeout=VALUE, --slave_ping_timeout=VALUE > The timeout within which an agent is expected to respond to a > > ping from the master. Agents that do not respond within > > max_agent_ping_timeouts ping retries will be asked to shutdown. > > NOTE: The total ping timeout (`agent_ping_timeout` multiplied by > > `max_agent_ping_timeouts`) should be greater than the ZooKeeper > > session timeout to prevent useless re-registration attempts. > > (default: 15secs) > --agent_removal_rate_limit=VALUE, --slave_removal_rate_limit=VALUE > The maximum rate (e.g., `1/10mins`, `2/3hrs`, etc) at which agents > > will be removed from the master when they fail health checks. > > By default, agents will be removed as soon as they fail the health > > checks. The value is of the form `(Number of agents)/(Duration)`. > --agent_reregister_timeout=VALUE, --slave_reregister_timeout=VALUE > The timeout within which an agent is expected to re-register. > > Agents re-register when they become disconnected from the master > > or when a new master is elected as the leader. Agents that do not > > re-register within the timeout will be marked unreachable in the > > registry; if/when the agent re-registers with the master, any > > non-partition-aware tasks running on the agent will be terminated. > > NOTE: This value has to be at least 10mins. (default: 10mins) > --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 `HierarchicalDRF` allocator, or > > load an alternate allocator module using `--modules`. (default: > HierarchicalDRF) > --[no-]authenticate_agents, --[no-]authenticate_slaves > If `true`, only authenticated agents are allowed to register. > > If `false`, unauthenticated agents are also allowed to register. (default: > false) > --[no-]authenticate_frameworks, --[no-]authenticate > If `true`, only authenticated frameworks are allowed to register. If > > `false`, unauthenticated frameworks are also allowed to register. For > > HTTP based frameworks use the `--authenticate_http_frameworks` flag. > (default: false) > --[no-]authenticate_http_frameworks > If `true`, only authenticated HTTP frameworks are allowed to register. > > If `false`, HTTP frameworks are not authenticated. (default: false) > --[no-]authenticate_http_readonly > If `true`, only authenticated requests for read-only HTTP endpoints > > supporting authentication are allowed. If `false`, unauthenticated > > requests to such HTTP endpoints are also allowed. (default: false) > --[no-]authenticate_http_readwrite, --[no-]authenticate_http > If `true`, only authenticated requests for read-write HTTP endpoints > > supporting authentication are allowed. If `false`, unauthenticated > > requests to such HTTP endpoints are also allowed. (default: false) > --authenticators=VALUE > Authenticator implementation to use when authenticating frameworks > > and/or agents. Use the default `crammd5` > > or load an alternate authenticator module using `--modules`. (default: > crammd5) > --authorizers=VALUE > Authorizer implementation to use when authorizing actions that > > require 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 is no support for multiple authorizers. (default: local) > --cluster=VALUE > Human readable name for the cluster, displayed in the webui. > --credentials=VALUE > Path to a JSON-formatted file containing credentials. > > Path could be of the form `file:///path/to/file` or `/path/to/file`. > > Example: > > { > > "credentials": [ > > { > > "principal": "sherman", > > "secret": "kitesurf" > > } > > ] > > } > --domain=VALUE > Domain that the master belongs to. Mesos currently only supports > > fault domains, which identify groups of hosts with similar failure > > characteristics. A fault domain consists of a region and a zone. > > All masters in the same Mesos cluster must be in the same region > > (they can be in different zones). This value can be specified as > > either a JSON-formatted string or a file path containing JSON. > > Example: > > { > > "fault_domain": > > { > > "region": > > { > > "name": "aws-us-east-1" > > }, > > "zone": > > { > > "name": "aws-us-east-1a" > > } > > } > > } > --external_log_file=VALUE > Location of the externally managed log file. Mesos does not write to > > this file directly and merely exposes it in the WebUI and HTTP API. > > This is only useful when logging to stderr in combination with an > > external logging mechanism, like syslog or journald. > > This option is meaningless when specified along with `--quiet`. > > This option takes precedence over `--log_dir` in the WebUI. > > However, logs will still be written to the `--log_dir` if > > that option is specified. > --fair_sharing_excluded_resource_names=VALUE > A comma-separated list of the resource names (e.g. 'gpus') > > that will be excluded from fair sharing constraints. > > This may be useful in cases where the fair sharing > > implementation currently has limitations. E.g. See the > > problem of "scarce" resources: > > http://www.mail-archive.com/dev@mesos.apache.org/msg35631.html > > https://issues.apache.org/jira/browse/MESOS-5377 > --[no-]filter_gpu_resources > When set to true, this flag will cause the mesos master to > > filter all offers from agents with GPU resources by only sending > > them to frameworks that opt into the `GPU_RESOURCES` framework > > capability. When set to false, this flag will cause the master > > to not filter offers from agents with GPU resources, and > > indiscriminately send them to all frameworks whether they set > > the `GPU_RESOURCES` capability or not. This flag is meant as a > > temporary workaround towards the eventual deprecation of the > > `GPU_RESOURCES` capability. Please see the following for more > > information: > > https://www.mail-archive.com/dev@mesos.apache.org/msg37571.html > > https://issues.apache.org/jira/browse/MESOS-7576 (default: true) > --firewall_rules=VALUE > The value could be a JSON-formatted string of rules or a > > file path containing the JSON-formatted rules used in the endpoints > > firewall. Path must be of the form `file:///path/to/file` > > or `/path/to/file`. > > See the `Firewall` message in `flags.proto` for the expected format. > > Example: > > { > > "disabled_endpoints" : { > > "paths" : [ > > "/files/browse", > > "/metrics/snapshot" > > ] > > } > > } > --framework_sorter=VALUE > Policy to use for allocating resources between a given user's > > frameworks. Options are the same as for `--user_sorter`. (default: drf) > --[no-]help > Prints this help message (default: false) > --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 master advertises; 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. (default: > true) > --http_authenticators=VALUE > HTTP authenticator implementation to use when handling requests to > > authenticated endpoints. Use the default `basic`, or load an > > alternate HTTP authenticator module using `--modules`. > > Currently there is no support for multiple HTTP authenticators. (default: > basic) > --http_framework_authenticators=VALUE > HTTP authenticator implementation to use when authenticating HTTP > > frameworks. Use the > > `basic` authenticator or > > load an alternate authenticator module using `--modules`. > > Must be used in conjunction with `--http_authenticate_frameworks`. > > Currently there is no support for multiple HTTP framework > > authenticators. > --[no-]initialize_driver_logging > Whether the master/agent should initialize Google logging for the > > scheduler and executor drivers, in the same way as described here. > > The scheduler/executor drivers have separate logs and do not get > > written to the master/agent logs. > > This option has no effect when using the HTTP scheduler/executor APIs. > > By default, this option is true. (default: true) > --ip=VALUE > IP address to listen on. This cannot be used in conjunction > > with `--ip_discovery_command`. > --ip_discovery_command=VALUE > Optional IP discovery binary: if set, it is expected to emit > > the IP address which the master will try to bind to. > > Cannot be used in conjunction with `--ip`. > --[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) > --log_dir=VALUE > Location to put log files. By default, nothing is written to disk. > > Does not affect logging to stderr. > > If specified, the log file will appear in the Mesos WebUI. > > NOTE: 3rd party log messages (e.g. ZooKeeper) are > > only written to stderr! > --logbufsecs=VALUE > Maximum number of seconds that logs may be buffered for. > > By default, logs are flushed immediately. (default: 0) > --logging_level=VALUE > Log message at or above this level. > > Possible values: `INFO`, `WARNING`, `ERROR`. > > If `--quiet` is specified, this will only affect the logs > > written to `--log_dir`, if specified. (default: INFO) > --master_contender=VALUE > The symbol name of the master contender to use. > > This symbol should exist in a module specified through > > the --modules flag. Cannot be used in conjunction with --zk. > > Must be used in conjunction with --master_detector. > --master_detector=VALUE > The symbol name of the master detector to use. This symbol > > should exist in a module specified through the --modules flag. > > Cannot be used in conjunction with --zk. > > Must be used in conjunction with --master_contender. > --max_agent_ping_timeouts=VALUE, --max_slave_ping_timeouts=VALUE > The number of times an agent can fail to respond to a > > ping from the master. Agents that do not respond within > > `max_agent_ping_timeouts` ping retries will be asked to shutdown. > > (default: 5) > --max_completed_frameworks=VALUE > Maximum number of completed frameworks to store in memory. (default: 50) > --max_completed_tasks_per_framework=VALUE > Maximum number of completed tasks per framework to store in memory. > (default: 1000) > --max_unreachable_tasks_per_framework=VALUE > Maximum number of unreachable tasks per framework to store in memory. > (default: 1000) > --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. `filepath` can be > > of the form `file:///path/to/file` or `/path/to/file`. > > Use `--modules="{...}"` to specify the list of modules inline. > > 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" > > } > > ] > > } > > ] > > } > > Cannot be used in conjunction with --modules_dir. > --modules_dir=VALUE > Directory path of the module manifest files. > > The manifest files are processed in alphabetical order. > > (See --modules for more information on module manifest files). > > Cannot be used in conjunction with --modules. > --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. > > If not set, offers do not timeout. > --port=VALUE > Port to listen on. (default: 5050) > --[no-]quiet > Disable logging to stderr. (default: false) > --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). > --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. > > Path could be of the form `file:///path/to/file` > > or `/path/to/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_agent_removal_limit=VALUE, --recovery_slave_removal_limit=VALUE > For failovers, limit on the percentage of agents 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 agents. > > 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 agents 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 agents 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_gc_interval=VALUE > How often to garbage collect the registry. The current leading > > master will periodically discard information from the registry. > > How long registry state is retained is controlled by other > > parameters (e.g., registry_max_agent_age, registry_max_agent_count); > > this parameter controls how often the master will examine the > > registry to see if data should be discarded. (default: 15mins) > --registry_max_agent_age=VALUE > Maximum length of time to store information in the registry about > > agents that are not currently connected to the cluster. This > > information allows frameworks to determine the status of unreachable > > and gone agents. Note that the registry always stores > > information on all connected agents. If there are more than > > `registry_max_agent_count` partitioned/gone agents, agent > > information may be discarded from the registry sooner than indicated > > by this parameter. (default: 2weeks) > --registry_max_agent_count=VALUE > Maximum number of partitioned/gone agents to store in the > > registry. This information allows frameworks to determine the status > > of disconnected agents. Note that the registry always stores > > information about all connected agents. See also the > > `registry_max_agent_age` flag. (default: 102400) > --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: 20secs) > --[no-]registry_strict > Whether the master will take actions based on the persistent > > information stored in the Registry. > > NOTE: This flag is *disabled* and will be removed in a future > > version of Mesos. (default: false) > --roles=VALUE > A comma-separated list of the allocation roles that frameworks > > in this cluster may belong to. This flag is deprecated; > > if it is not specified, any role name can be used. > --[no-]root_submissions > Can root submit frameworks? (default: true) > --user_sorter=VALUE > Policy to use for allocating resources between users. May be one of: > > dominant_resource_fairness (drf) (default: drf) > --[no-]version > Show version and exit. (default: false) > --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 can be used to control the > > relative share of cluster resources that is offered to different > > roles. This flag is deprecated. Instead, operators should configure > > weights dynamically using the `/weights` HTTP endpoint. > --whitelist=VALUE > Path to a file which contains a list of agents (one per line) to > > advertise offers for. The file is watched and periodically re-read to > > refresh the agent whitelist. By default there is no whitelist: all > > machines are accepted. Path can be of the form > > `file:///path/to/file` or `/path/to/file`. > --work_dir=VALUE > Path of the master work directory. This is where the persistent > > information of the cluster will be stored. Note that locations like > > `/tmp` which are cleaned automatically are not suitable for the work > > directory when running in production, since long-running masters could > > lose data when cleanup occurs. (Example: `/var/lib/mesos/master`) > --zk=VALUE > ZooKeeper URL (used for leader election amongst masters). > > May be one of: > > `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) > > NOTE: Not required if master is run in standalone mode (non-HA). > --zk_session_timeout=VALUE > ZooKeeper session timeout. (default: 10secs) > {code} > Having the error message after the list of possible flags instead of before > would make the error message more readable. -- This message was sent by Atlassian JIRA (v7.6.3#76005)