spark-env.sh.in 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/usr/bin/env bash
  2. #
  3. # Licensed to the Apache Software Foundation (ASF) under one or more
  4. # contributor license agreements. See the NOTICE file distributed with
  5. # this work for additional information regarding copyright ownership.
  6. # The ASF licenses this file to You under the Apache License, Version 2.0
  7. # (the "License"); you may not use this file except in compliance with
  8. # the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing, software
  13. # distributed under the License is distributed on an "AS IS" BASIS,
  14. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. # See the License for the specific language governing permissions and
  16. # limitations under the License.
  17. #
  18. # This file is sourced when running various Spark programs.
  19. # Copy it as spark-env.sh and edit that to configure Spark for your site.
  20. # Options read when launching programs locally with
  21. # ./bin/run-example or ./bin/spark-submit
  22. # - HADOOP_CONF_DIR, to point Spark towards Hadoop configuration files
  23. # - SPARK_LOCAL_IP, to set the IP address Spark binds to on this node
  24. # - SPARK_PUBLIC_DNS, to set the public dns name of the driver program
  25. # Options read by executors and drivers running inside the cluster
  26. # - SPARK_LOCAL_IP, to set the IP address Spark binds to on this node
  27. # - SPARK_PUBLIC_DNS, to set the public DNS name of the driver program
  28. # - SPARK_LOCAL_DIRS, storage directories to use on this node for shuffle and RDD data
  29. # - MESOS_NATIVE_JAVA_LIBRARY, to point to your libmesos.so if you use Mesos
  30. # Options read in YARN client/cluster mode
  31. # - SPARK_CONF_DIR, Alternate conf dir. (Default: ${SPARK_HOME}/conf)
  32. # - HADOOP_CONF_DIR, to point Spark towards Hadoop configuration files
  33. # - YARN_CONF_DIR, to point Spark towards YARN configuration files when you use YARN
  34. # - SPARK_EXECUTOR_CORES, Number of cores for the executors (Default: 1).
  35. # - SPARK_EXECUTOR_MEMORY, Memory per Executor (e.g. 1000M, 2G) (Default: 1G)
  36. # - SPARK_DRIVER_MEMORY, Memory for Driver (e.g. 1000M, 2G) (Default: 1G)
  37. # Options for the daemons used in the standalone deploy mode
  38. # - SPARK_MASTER_HOST, to bind the master to a different IP address or hostname
  39. # - SPARK_MASTER_PORT / SPARK_MASTER_WEBUI_PORT, to use non-default ports for the master
  40. # - SPARK_MASTER_OPTS, to set config properties only for the master (e.g. "-Dx=y")
  41. # - SPARK_WORKER_CORES, to set the number of cores to use on this machine
  42. # - SPARK_WORKER_MEMORY, to set how much total memory workers have to give executors (e.g. 1000m, 2g)
  43. # - SPARK_WORKER_PORT / SPARK_WORKER_WEBUI_PORT, to use non-default ports for the worker
  44. # - SPARK_WORKER_DIR, to set the working directory of worker processes
  45. # - SPARK_WORKER_OPTS, to set config properties only for the worker (e.g. "-Dx=y")
  46. # - SPARK_DAEMON_MEMORY, to allocate to the master, worker and history server themselves (default: 1g).
  47. # - SPARK_HISTORY_OPTS, to set config properties only for the history server (e.g. "-Dx=y")
  48. # - SPARK_SHUFFLE_OPTS, to set config properties only for the external shuffle service (e.g. "-Dx=y")
  49. # - SPARK_DAEMON_JAVA_OPTS, to set config properties for all daemons (e.g. "-Dx=y")
  50. # - SPARK_DAEMON_CLASSPATH, to set the classpath for all daemons
  51. # - SPARK_PUBLIC_DNS, to set the public dns name of the master or workers
  52. # Generic options for the daemons used in the standalone deploy mode
  53. # - SPARK_CONF_DIR Alternate conf dir. (Default: ${SPARK_HOME}/conf)
  54. # - SPARK_PID_DIR Where the pid file is stored. (Default: /tmp)
  55. # - SPARK_IDENT_STRING A string representing this instance of spark. (Default: $USER)
  56. # - SPARK_NICENESS The scheduling priority for daemons. (Default: 0)
  57. # - SPARK_NO_DAEMONIZE Run the proposed command in the foreground. It will not output a PID file.
  58. # Options for native BLAS, like Intel MKL, OpenBLAS, and so on.
  59. # You might get better performance to enable these options if using native BLAS (see SPARK-21305).
  60. # - MKL_NUM_THREADS=1 Disable multi-threading of Intel MKL
  61. # - OPENBLAS_NUM_THREADS=1 Disable multi-threading of OpenBLAS
  62. if [[ -e "@CONFIG_DIR@/@ENV_CONF_FILE@" ]]; then
  63. interface=$(cat @CONFIG_DIR@/@ENV_CONF_FILE@ | awk -F= '/^interface/ {print $2;}')
  64. if [[ "${interface}" == "*" ]]; then
  65. unset interface
  66. fi
  67. fi
  68. if [[ -z ${interface:+x} ]]; then
  69. ALL_IPS=$(@ADMIN_PATH@/configgen -env @CONFIG_DIR@/@ENV_XML_FILE@ -listall2 | awk -F , '{print $3}' | sort | uniq)
  70. LOCAL_IPS=$(ip addr show | grep inet | grep -v inet6 | awk '{print $2}' | awk -F / '{print $1}' | grep -v 127.0.0.1 | sort)
  71. export SPARK_LOCAL_IP=$(comm -12 <(printf '%s\n' "${LOCAL_IPS[@]}") <(printf '%s\n' "${ALL_IPS[@]}"))
  72. else
  73. export SPARK_LOCAL_IP=$(ip address show dev ${interface} | grep inet | grep -v inet6 | awk '{print $2;}' | awk -F / '{print $1;}')
  74. fi