hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-submarine/installation/scripts/hadoop.sh

118 lines
4.2 KiB
Bash
Raw Normal View History

#!/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.
## @description install yarn
## @audience public
## @stability stable
function install_yarn()
{
install_yarn_container_executor
install_yarn_config
}
## @description uninstall yarn
## @audience public
## @stability stable
function uninstall_yarn()
{
rm -rf /etc/yarn/sbin/Linux-amd64-64/*
rm -rf /etc/yarn/sbin/etc/hadoop/*
}
## @description download yarn container executor
## @audience public
## @stability stable
function download_yarn_container_executor()
{
# my download http server
if [[ -n "$DOWNLOAD_HTTP" ]]; then
MY_YARN_CONTAINER_EXECUTOR_PATH="${DOWNLOAD_HTTP}/downloads/hadoop/container-executor"
else
MY_YARN_CONTAINER_EXECUTOR_PATH=${YARN_CONTAINER_EXECUTOR_PATH}
fi
if [ ! -d "${DOWNLOAD_DIR}/hadoop" ]; then
mkdir -p ${DOWNLOAD_DIR}/hadoop
fi
if [[ -f "${DOWNLOAD_DIR}/hadoop/container-executor" ]]; then
echo "${DOWNLOAD_DIR}/hadoop/container-executor is exist."
else
if [[ -n "$DOWNLOAD_HTTP" ]]; then
echo "download ${MY_YARN_CONTAINER_EXECUTOR_PATH} ..."
wget -P ${DOWNLOAD_DIR}/hadoop ${MY_YARN_CONTAINER_EXECUTOR_PATH}
else
echo "copy ${MY_YARN_CONTAINER_EXECUTOR_PATH} ..."
cp ${MY_YARN_CONTAINER_EXECUTOR_PATH} ${DOWNLOAD_DIR}/hadoop/
fi
fi
}
## @description install yarn container executor
## @audience public
## @stability stable
function install_yarn_container_executor()
{
echo "install yarn container executor file ..."
download_yarn_container_executor
if [ ! -d "/etc/yarn/sbin/Linux-amd64-64" ]; then
mkdir -p /etc/yarn/sbin/Linux-amd64-64
fi
if [ -f "/etc/yarn/sbin/Linux-amd64-64/container-executor" ]; then
rm /etc/yarn/sbin/Linux-amd64-64/container-executor
fi
cp -f ${DOWNLOAD_DIR}/hadoop/container-executor /etc/yarn/sbin/Linux-amd64-64
sudo chmod 6755 /etc/yarn/sbin/Linux-amd64-64
sudo chown :yarn /etc/yarn/sbin/Linux-amd64-64/container-executor
sudo chmod 6050 /etc/yarn/sbin/Linux-amd64-64/container-executor
}
## @description install yarn config
## @audience public
## @stability stable
function install_yarn_config()
{
echo "install yarn config file ..."
cp -R ${PACKAGE_DIR}/hadoop ${INSTALL_TEMP_DIR}/
find="/"
replace="\/"
escape_yarn_nodemanager_local_dirs=${YARN_NODEMANAGER_LOCAL_DIRS//$find/$replace}
escape_yarn_nodemanager_log_dirs=${YARN_NODEMANAGER_LOG_DIRS//$find/$replace}
escape_yarn_hierarchy=${YARN_HIERARCHY//$find/$replace}
sed -i "s/YARN_NODEMANAGER_LOCAL_DIRS_REPLACE/${escape_yarn_nodemanager_local_dirs}/g" $INSTALL_TEMP_DIR/hadoop/container-executor.cfg >>$LOG
sed -i "s/YARN_NODEMANAGER_LOG_DIRS_REPLACE/${escape_yarn_nodemanager_log_dirs}/g" $INSTALL_TEMP_DIR/hadoop/container-executor.cfg >>$LOG
sed -i "s/DOCKER_REGISTRY_REPLACE/${DOCKER_REGISTRY}/g" $INSTALL_TEMP_DIR/hadoop/container-executor.cfg >>$LOG
sed -i "s/CALICO_NETWORK_NAME_REPLACE/${CALICO_NETWORK_NAME}/g" $INSTALL_TEMP_DIR/hadoop/container-executor.cfg >>$LOG
sed -i "s/YARN_HIERARCHY_REPLACE/${escape_yarn_hierarchy}/g" $INSTALL_TEMP_DIR/hadoop/container-executor.cfg >>$LOG
# Delete the ASF license comment in the container-executor.cfg file, otherwise it will cause a cfg format error.
sed -i '1,16d' $INSTALL_TEMP_DIR/hadoop/container-executor.cfg
if [ ! -d "/etc/yarn/sbin/etc/hadoop" ]; then
mkdir -p /etc/yarn/sbin/etc/hadoop
fi
cp -f $INSTALL_TEMP_DIR/hadoop/container-executor.cfg /etc/yarn/sbin/etc/hadoop/
}