118 lines
4.2 KiB
Bash
118 lines
4.2 KiB
Bash
|
#!/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/
|
||
|
}
|