diff --git a/cpp/src/ray/util/process_helper.cc b/cpp/src/ray/util/process_helper.cc index 3f7a50044f8a..973e95542bfc 100644 --- a/cpp/src/ray/util/process_helper.cc +++ b/cpp/src/ray/util/process_helper.cc @@ -93,4 +93,4 @@ void ProcessHelper::RayStop(std::shared_ptr config) { } } // namespace api -} // namespace ray \ No newline at end of file +} // namespace ray diff --git a/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java b/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java index f0d5356365e3..e2101a332de9 100644 --- a/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java +++ b/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java @@ -402,7 +402,7 @@ private String buildPythonWorkerCommand() { cmd.add("--node-ip-address=" + rayConfig.nodeIp); cmd.add("--object-store-name=" + rayConfig.objectStoreSocketName); cmd.add("--raylet-name=" + rayConfig.rayletSocketName); - cmd.add("--redis-address=" + rayConfig.getRedisAddress()); + cmd.add("--address=" + rayConfig.getRedisAddress()); String command = cmd.stream().collect(Collectors.joining(" ")); LOGGER.debug("python worker command: {}", command); diff --git a/java/test.sh b/java/test.sh index 34f51a22f4b0..25fa94a1c804 100755 --- a/java/test.sh +++ b/java/test.sh @@ -57,7 +57,7 @@ case "${OSTYPE}" in darwin*) ip=$(ipconfig getifaddr en0);; *) echo "Can't get ip address for ${OSTYPE}"; exit 1;; esac -RAY_BACKEND_LOG_LEVEL=debug ray start --head --redis-port=6379 --redis-password=123456 --code-search-path="$PWD/bazel-bin/java/all_tests_deploy.jar" +RAY_BACKEND_LOG_LEVEL=debug ray start --head --port=6379 --redis-password=123456 --code-search-path="$PWD/bazel-bin/java/all_tests_deploy.jar" RAY_BACKEND_LOG_LEVEL=debug java -cp bazel-bin/java/all_tests_deploy.jar -Dray.address="$ip:6379"\ -Dray.redis.password='123456' -Dray.job.code-search-path="$PWD/bazel-bin/java/all_tests_deploy.jar" io.ray.test.MultiDriverTest ray stop diff --git a/java/test/src/main/java/io/ray/test/BaseMultiLanguageTest.java b/java/test/src/main/java/io/ray/test/BaseMultiLanguageTest.java index 864c697b3966..e4ffbf654633 100644 --- a/java/test/src/main/java/io/ray/test/BaseMultiLanguageTest.java +++ b/java/test/src/main/java/io/ray/test/BaseMultiLanguageTest.java @@ -75,7 +75,7 @@ public void setUp() { "ray", "start", "--head", - "--redis-port=6379", + "--port=6379", "--min-worker-port=0", "--max-worker-port=0", String.format("--plasma-store-socket-name=%s", PLASMA_STORE_SOCKET_NAME), diff --git a/python/ray/scripts/scripts.py b/python/ray/scripts/scripts.py index a4b0b690d60c..fee4897c854a 100644 --- a/python/ray/scripts/scripts.py +++ b/python/ray/scripts/scripts.py @@ -156,16 +156,8 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): required=False, type=str, help="the IP address of this node") -@click.option( - "--redis-address", required=False, type=str, help="same as --address") @click.option( "--address", required=False, type=str, help="the address to use for Ray") -@click.option( - "--redis-port", - required=False, - type=str, - help="(DEPRECATED) the port to use for starting redis. " - "Please use --port instead now.") @click.option( "--port", required=False, @@ -173,21 +165,10 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): help="the port of the head ray process. If not provided, tries to use " "{0}, falling back to a random port if {0} is " "not available".format(ray_constants.DEFAULT_PORT)) -@click.option( - "--num-redis-shards", - required=False, - type=int, - help=("the number of additional Redis shards to use in " - "addition to the primary Redis shard")) -@click.option( - "--redis-max-clients", - required=False, - type=int, - help=("If provided, attempt to configure Redis with this " - "maximum number of clients.")) @click.option( "--redis-password", required=False, + hidden=True, type=str, default=ray_constants.REDIS_DEFAULT_PASSWORD, help="If provided, secure Redis ports with this password") @@ -229,6 +210,7 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): @click.option( "--memory", required=False, + hidden=True, type=int, help="The amount of memory (in bytes) to make available to workers. " "By default, this is set to the available memory on the node.") @@ -241,6 +223,7 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): @click.option( "--redis-max-memory", required=False, + hidden=True, type=int, help="The max amount of memory (in bytes) to allow redis to use. Once the " "limit is exceeded, redis will start LRU eviction of entries. This only " @@ -268,20 +251,6 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): is_flag=True, default=False, help="provide this argument for the head node") -@click.option( - "--include-webui", - default=None, - type=bool, - help="provide this argument if the UI should be started " - "(DEPRECATED: please use --include-dashboard.") -@click.option( - "--webui-host", - required=False, - default="localhost", - help="the host to bind the dashboard server to, either localhost " - "(127.0.0.1) or 0.0.0.0 (available from all interfaces). By default," - " this is localhost." - " (DEPRECATED: please use --dashboard-host)") @click.option( "--include-dashboard", default=None, @@ -311,11 +280,6 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): required=False, type=str, help="object store directory for memory mapped files") -@click.option( - "--huge-pages", - is_flag=True, - default=False, - help="enable support for huge pages in the object store") @click.option( "--autoscaling-config", required=False, @@ -341,17 +305,20 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): help="manually specify the socket path of the raylet process") @click.option( "--temp-dir", + hidden=True, default=None, help="manually specify the root temporary dir of the Ray process") @click.option( "--java-worker-options", required=False, + hidden=True, default=None, type=str, help="Overwrite the options to start Java workers.") @click.option( "--code-search-path", default=None, + hidden=True, type=str, help="A list of directories or jar files separated by colon that specify " "the search path for user code. This will be used as `CLASSPATH` in " @@ -359,6 +326,7 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): @click.option( "--system-config", default=None, + hidden=True, type=json.loads, help="Override system configuration defaults.") @click.option( @@ -369,33 +337,35 @@ def dashboard(cluster_config_file, cluster_name, port, remote_port): @click.option( "--lru-evict", is_flag=True, + hidden=True, default=False, help="Specify whether LRU evict will be used for this cluster.") @click.option( "--enable-object-reconstruction", is_flag=True, default=False, + hidden=True, help="Specify whether object reconstruction will be used for this cluster." ) @click.option( "--metrics-export-port", type=int, + hidden=True, default=None, help="the port to use to expose Ray metrics through a " "Prometheus endpoint.") @add_click_options(logging_options) -def start(node_ip_address, redis_address, address, redis_port, port, - num_redis_shards, redis_max_clients, redis_password, - redis_shard_ports, object_manager_port, node_manager_port, - gcs_server_port, min_worker_port, max_worker_port, memory, - object_store_memory, redis_max_memory, num_cpus, num_gpus, resources, - head, include_webui, webui_host, include_dashboard, dashboard_host, - dashboard_port, block, plasma_directory, huge_pages, - autoscaling_config, no_redirect_worker_output, no_redirect_output, - plasma_store_socket_name, raylet_socket_name, temp_dir, - java_worker_options, code_search_path, load_code_from_local, - system_config, lru_evict, enable_object_reconstruction, - metrics_export_port, log_style, log_color, verbose): +def start(node_ip_address, address, port, redis_password, redis_shard_ports, + object_manager_port, node_manager_port, gcs_server_port, + min_worker_port, max_worker_port, memory, object_store_memory, + redis_max_memory, num_cpus, num_gpus, resources, head, + include_dashboard, dashboard_host, dashboard_port, block, + plasma_directory, autoscaling_config, no_redirect_worker_output, + no_redirect_output, plasma_store_socket_name, raylet_socket_name, + temp_dir, java_worker_options, load_code_from_local, + code_search_path, system_config, lru_evict, + enable_object_reconstruction, metrics_export_port, log_style, + log_color, verbose): """Start Ray processes manually on the local machine.""" cli_logger.configure(log_style, log_color, verbose) @@ -403,59 +373,11 @@ def start(node_ip_address, redis_address, address, redis_port, port, raise ValueError( "gcs_server_port can be only assigned when you specify --head.") - if redis_address is not None: - cli_logger.abort("{} is deprecated. Use {} instead.", - cf.bold("--redis-address"), cf.bold("--address")) - - raise DeprecationWarning("The --redis-address argument is " - "deprecated. Please use --address instead.") - if redis_port is not None: - cli_logger.warning("{} is being deprecated. Use {} instead.", - cf.bold("--redis-port"), cf.bold("--port")) - cli_logger.old_warning( - logger, "The --redis-port argument will be deprecated soon. " - "Please use --port instead.") - if port is not None and port != redis_port: - cli_logger.abort( - "Incompatible values for {} and {}. Use only {} instead.", - cf.bold("--port"), cf.bold("--redis-port"), cf.bold("--port")) - - raise ValueError("Cannot specify both --port and --redis-port " - "as port is a rename of deprecated redis-port") - if include_webui is not None: - cli_logger.warning("{} is being deprecated. Use {} instead.", - cf.bold("--include-webui"), - cf.bold("--include-dashboard")) - cli_logger.old_warning( - logger, "The --include-webui argument will be deprecated soon" - "Please use --include-dashboard instead.") - if include_dashboard is not None: - include_dashboard = include_webui - - dashboard_host_default = "localhost" - if webui_host != dashboard_host_default: - cli_logger.warning("{} is being deprecated. Use {} instead.", - cf.bold("--webui-host"), - cf.bold("--dashboard-host")) - cli_logger.old_warning( - logger, "The --webui-host argument will be deprecated" - " soon. Please use --dashboard-host instead.") - if webui_host != dashboard_host and dashboard_host != "localhost": - cli_logger.abort( - "Incompatible values for {} and {}. Use only {} instead.", - cf.bold("--dashboard-host"), cf.bold("--webui-host"), - cf.bold("--dashboard-host")) - - raise ValueError( - "Cannot specify both --webui-host and --dashboard-host," - " please specify only the latter") - else: - dashboard_host = webui_host - # Convert hostnames to numerical IP address. if node_ip_address is not None: node_ip_address = services.address_to_ip(node_ip_address) + redis_address = None if address is not None: (redis_address, redis_address_ip, redis_address_port) = services.validate_redis_address(address) @@ -493,7 +415,7 @@ def start(node_ip_address, redis_address, address, redis_port, port, num_gpus=num_gpus, resources=resources, plasma_directory=plasma_directory, - huge_pages=huge_pages, + huge_pages=False, plasma_store_socket_name=plasma_store_socket_name, raylet_socket_name=raylet_socket_name, temp_dir=temp_dir, @@ -508,30 +430,13 @@ def start(node_ip_address, redis_address, address, redis_port, port, enable_object_reconstruction=enable_object_reconstruction, metrics_export_port=metrics_export_port) if head: + num_redis_shards = None # Start Ray on the head node. if redis_shard_ports is not None: redis_shard_ports = redis_shard_ports.split(",") # Infer the number of Redis shards from the ports if the number is # not provided. - if num_redis_shards is None: - num_redis_shards = len(redis_shard_ports) - # Check that the arguments match. - if len(redis_shard_ports) != num_redis_shards: - cli_logger.error( - "`{}` must be a comma-separated list of ports, " - "with length equal to `{}` (which defaults to {})", - cf.bold("--redis-shard-ports"), - cf.bold("--num-redis-shards"), cf.bold("1")) - cli_logger.abort( - "Example: `{}`", - cf.bold("--num-redis-shards 3 " - "--redis_shard_ports 6380,6381,6382")) - - raise Exception("If --redis-shard-ports is provided, it must " - "have the form '6380,6381,6382', and the " - "number of ports provided must equal " - "--num-redis-shards (which is 1 if not " - "provided)") + num_redis_shards = len(redis_shard_ports) if redis_address is not None: cli_logger.abort( @@ -549,11 +454,11 @@ def start(node_ip_address, redis_address, address, redis_port, port, cli_logger.old_info(logger, "Using IP address {} for this node.", ray_params.node_ip_address) ray_params.update_if_absent( - redis_port=port or redis_port, + redis_port=port, redis_shard_ports=redis_shard_ports, redis_max_memory=redis_max_memory, num_redis_shards=num_redis_shards, - redis_max_clients=redis_max_clients, + redis_max_clients=None, autoscaling_config=autoscaling_config, ) @@ -616,10 +521,9 @@ def start(node_ip_address, redis_address, address, redis_port, port, if redis_password else "")) else: # Start Ray on a non-head node. - if not (redis_port is None and port is None): - cli_logger.abort("`{}/{}` should not be specified without `{}`.", - cf.bold("--port"), cf.bold("--redis-port"), - cf.bold("--head")) + if not (port is None): + cli_logger.abort("`{}` should not be specified without `{}`.", + cf.bold("--port"), cf.bold("--head")) raise Exception( "If --head is not passed in, --port and --redis-port are not " @@ -636,24 +540,6 @@ def start(node_ip_address, redis_address, address, redis_port, port, raise Exception("If --head is not passed in, --address must " "be provided.") - if num_redis_shards is not None: - cli_logger.abort("`{}` should not be specified without `{}`.", - cf.bold("--num-redis-shards"), cf.bold("--head")) - - raise Exception("If --head is not passed in, --num-redis-shards " - "must not be provided.") - if redis_max_clients is not None: - cli_logger.abort("`{}` should not be specified without `{}`.", - cf.bold("--redis-max-clients"), cf.bold("--head")) - - raise Exception("If --head is not passed in, --redis-max-clients " - "must not be provided.") - if include_webui: - cli_logger.abort("`{}` should not be specified without `{}`.", - cf.bold("--include-web-ui"), cf.bold("--head")) - - raise Exception("If --head is not passed in, the --include-webui" - "flag is not relevant.") if include_dashboard: cli_logger.abort("`{}` should not be specified without `{}`.", cf.bold("--include-dashboard"), cf.bold("--head")) diff --git a/python/ray/tests/test_multi_node.py b/python/ray/tests/test_multi_node.py index 7b168dc46226..bc3a91ed5f43 100644 --- a/python/ray/tests/test_multi_node.py +++ b/python/ray/tests/test_multi_node.py @@ -415,10 +415,6 @@ def test_calling_start_ray_head(call_ray_stop_only): check_call_ray(["start", "--head", "--num-gpus", "100"]) check_call_ray(["stop"]) - # Test starting Ray with the max redis clients specified. - check_call_ray(["start", "--head", "--redis-max-clients", "100"]) - check_call_ray(["stop"]) - # Test starting Ray with redis shard ports specified. check_call_ray( ["start", "--head", "--redis-shard-ports", "6380,6381,6382"]) @@ -428,7 +424,7 @@ def test_calling_start_ray_head(call_ray_stop_only): check_call_ray([ "start", "--head", "--redis-shard-ports", "6380,6381,6382", "--object-manager-port", "12345", "--num-cpus", "2", "--num-gpus", "0", - "--redis-max-clients", "100", "--resources", "{\"Custom\": 1}" + "--resources", "{\"Custom\": 1}" ]) check_call_ray(["stop"]) diff --git a/streaming/java/streaming-api/src/main/java/io/ray/streaming/api/context/ClusterStarter.java b/streaming/java/streaming-api/src/main/java/io/ray/streaming/api/context/ClusterStarter.java index bd54a982bdd9..200ff2e8f754 100644 --- a/streaming/java/streaming-api/src/main/java/io/ray/streaming/api/context/ClusterStarter.java +++ b/streaming/java/streaming-api/src/main/java/io/ray/streaming/api/context/ClusterStarter.java @@ -63,7 +63,7 @@ static synchronized void startCluster(boolean isCrossLanguage, boolean isLocal) "ray", "start", "--head", - "--redis-port=6379", + "--port=6379", String.format("--plasma-store-socket-name=%s", PLASMA_STORE_SOCKET_NAME), String.format("--raylet-socket-name=%s", RAYLET_SOCKET_NAME), String.format("--node-manager-port=%s", nodeManagerPort),