slaves.sh 993 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/sh
  2. #
  3. # Run a shell command on all slave hosts.
  4. #
  5. # Environment Variables
  6. #
  7. # HADOOP_SLAVES File naming remote hosts.
  8. # Default is ${HADOOP_CONF_DIR}/slaves.
  9. # HADOOP_CONF_DIR Alternate conf dir. Default is ${HADOOP_HOME}/conf.
  10. # HADOOP_SLAVE_SLEEP Seconds to sleep between spawning remote commands.
  11. # HADOOP_SSH_OPTS Options passed to ssh when running remote commands.
  12. ##
  13. usage="Usage: slaves.sh [--config confdir] command..."
  14. # if no args specified, show usage
  15. if [ $# -le 0 ]; then
  16. echo $usage
  17. exit 1
  18. fi
  19. bin=`dirname "$0"`
  20. bin=`cd "$bin"; pwd`
  21. . "$bin"/hadoop-config.sh
  22. if [ -f "${HADOOP_CONF_DIR}/hadoop-env.sh" ]; then
  23. . "${HADOOP_CONF_DIR}/hadoop-env.sh"
  24. fi
  25. if [ "$HADOOP_SLAVES" = "" ]; then
  26. export HADOOP_SLAVES="${HADOOP_CONF_DIR}/slaves"
  27. fi
  28. for slave in `cat "$HADOOP_SLAVES"`; do
  29. ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }" \
  30. 2>&1 | sed "s/^/$slave: /" &
  31. if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then
  32. sleep $HADOOP_SLAVE_SLEEP
  33. fi
  34. done
  35. wait