Parcourir la source

HDFS-11962. Ozone: Add stop-ozone.sh script. Contributed by Weiwei Yang.

Anu Engineer il y a 8 ans
Parent
commit
03606dd1a8
1 fichiers modifiés avec 88 ajouts et 0 suppressions
  1. 88 0
      hadoop-hdfs-project/hadoop-hdfs/src/main/bin/stop-ozone.sh

+ 88 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/bin/stop-ozone.sh

@@ -0,0 +1,88 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Stop hdfs and ozone daemons.
+# Run this on master node.
+
+function hadoop_usage
+{
+  echo "Usage: stop-ozone.sh"
+}
+
+this="${BASH_SOURCE-$0}"
+bin=$(cd -P -- "$(dirname -- "${this}")" >/dev/null && pwd -P)
+
+# let's locate libexec...
+if [[ -n "${HADOOP_HOME}" ]]; then
+  HADOOP_DEFAULT_LIBEXEC_DIR="${HADOOP_HOME}/libexec"
+else
+  HADOOP_DEFAULT_LIBEXEC_DIR="${bin}/../libexec"
+fi
+
+HADOOP_LIBEXEC_DIR="${HADOOP_LIBEXEC_DIR:-$HADOOP_DEFAULT_LIBEXEC_DIR}"
+# shellcheck disable=SC2034
+HADOOP_NEW_CONFIG=true
+if [[ -f "${HADOOP_LIBEXEC_DIR}/hdfs-config.sh" ]]; then
+  # shellcheck disable=SC1090
+  . "${HADOOP_LIBEXEC_DIR}/hdfs-config.sh"
+else
+  echo "ERROR: Cannot execute ${HADOOP_LIBEXEC_DIR}/hdfs-config.sh." 2>&1
+  exit 1
+fi
+
+#---------------------------------------------------------
+# Check if ozone is enabled
+OZONE_ENABLED=$("${HADOOP_HDFS_HOME}/bin/hdfs" getconf -confKey ozone.enabled | tr '[:upper:]' '[:lower:]' 2>&-)
+if [[ "${OZONE_ENABLED}" != "true" ]]; then
+  echo "Operation is not supported because ozone is not enabled."
+  exit -1
+fi
+
+#---------------------------------------------------------
+# Start hdfs before starting ozone daemons
+if [[ -f "${bin}/stop-dfs.sh" ]]; then
+  "${bin}/stop-dfs.sh"
+else
+  echo "ERROR: Cannot execute ${bin}/stop-dfs.sh." 2>&1
+  exit 1
+fi
+
+#---------------------------------------------------------
+# Ozone keyspacemanager nodes
+KSM_NODES=$("${HADOOP_HDFS_HOME}/bin/hdfs" getconf -keyspacemanagers 2>/dev/null)
+echo "Stopping key space manager nodes [${KSM_NODES}]"
+if [[ "${KSM_NODES}" == "0.0.0.0" ]]; then
+  KSM_NODES=$(hostname)
+fi
+
+hadoop_uservar_su hdfs ksm "${HADOOP_HDFS_HOME}/bin/hdfs" \
+  --workers \
+  --config "${HADOOP_CONF_DIR}" \
+  --hostnames "${KSM_NODES}" \
+  --daemon stop \
+  ksm
+
+#---------------------------------------------------------
+# Ozone storagecontainermanager nodes
+SCM_NODES=$("${HADOOP_HDFS_HOME}/bin/hdfs" getconf -storagecontainermanagers 2>/dev/null)
+echo "Stopping storage container manager nodes [${SCM_NODES}]"
+hadoop_uservar_su hdfs scm "${HADOOP_HDFS_HOME}/bin/hdfs" \
+  --workers \
+  --config "${HADOOP_CONF_DIR}" \
+  --hostnames "${SCM_NODES}" \
+  --daemon stop \
+  scm