ВОПРОС / ВОПРОС:
Как мы можем гарантировать, что действие EMR Bootstrap запускается после установки приложения HBase на EMR?
ИНФОРМАЦИЯ О КЛАСТЕРЕ:
Я использую версию emr-5.25.0, которая поддерживает Hbase 1.4.9.
СЛУЧАЙ ИСПОЛЬЗОВАНИЯ: я устанавливаю Geomesa на EMR с помощью действия Bootstrap (следующий документ ниже). https://www.geomesa.org/documentation/tutorials/geomesa-hbase-s3-on-aws.html
НАБЛЮДЕНИЕ.
Я использую приведенный ниже код в качестве действия начальной загрузки. Я вижу, что приведенное ниже действие начальной загрузки началось до установки HBase в кластере. Я хочу использовать действие начальной загрузки, чтобы гарантировать, что Geomesa установлена на каждом главном узле в случае настройки Multi-Master.
#!/bin/bash
set -e -x
IS_MASTER=false
if [ -f /mnt/var/lib/info/instance.json ]
then
IS_MASTER=`cat /mnt/var/lib/info/instance.json | tr -d '\n ' | sed -n 's|.*\"isMaster\":\([^,]*\).*|\1|p'`
fi
if [[ $IS_MASTER == false* ]]
then
echo "Not the master server."
exit 0
else
echo "Installing Geomesa on Master Server."
GEOMESA_INSTALLATION_FILE_S3_LOCATION="$1"
GEOMESA_FILE_VERSION="$2"
# initialize the Geomesa version.
export GEOMESA_VERSION="$3"
# Create jars package
mkdir -p /home/hadoop/jars
# Copy Geomesa 2.3.0 jars from s3 to local jars folders.
aws s3 cp $GEOMESA_INSTALLATION_FILE_S3_LOCATION /home/hadoop/jars
# Move to opt package
cd /opt/
# Unzip geomesa jar in /opt package.
sudo tar zxvf /home/hadoop/jars/geomesa-hbase-dist_${GEOMESA_FILE_VERSION}-bin.tar.gz
# run bootstrap-geomesa-hbase-aws.sh file to bootstrap geomesa on EMR.
sudo /opt/geomesa-hbase_${GEOMESA_FILE_VERSION}/bin/bootstrap-geomesa-hbase-aws.sh
# Go to /etc/hadoop/conf
cd /etc/hadoop/conf
# Copy hbase-site.xml in the /etc/hadoop/conf
sudo cp /usr/lib/hbase/conf/hbase-site.xml /etc/hadoop/conf
# Create .zip file for hbase-site.xml
sudo zip /home/hadoop/jars/hbase-site.zip hbase-site.xml
# initialize GEOMESA_EXTRA_CLASSPATHS to hbase-site.zip
export GEOMESA_EXTRA_CLASSPATHS=/home/hadoop/jars/hbase-site.zip
fi