Bootstrap HBase 安装后的动作
Bootstrap Action after HBase Installation
ISSUE/QUESTION:
我们如何确保 EMR Bootstrap 操作在 EMR 上安装 HBase 应用程序后运行?
群集信息:
我正在使用支持 Hbase 1.4.9 的 emr-5.25.0 版本。
用例:
我正在使用 Bootstrap 操作(遵循以下文档)在 EMR 上安装 Geomesa。
https://www.geomesa.org/documentation/tutorials/geomesa-hbase-s3-on-aws.html
观察:
我将下面的代码用作 bootstrap 操作。我看到以下 bootstrap 操作在集群上安装 HBase 之前启动。我想使用 bootstrap 操作来确保在多主设置的情况下在每个主节点上安装 Geomesa。
#!/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\":\([^,]*\).*||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=""
GEOMESA_FILE_VERSION=""
# initialize the Geomesa version.
export GEOMESA_VERSION=""
# 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
使用Steps
。 bootstrap 始终 运行 在配置服务器之后和安装应用程序之前。因此,您必须在脚本中使用 Steps。首先,使用以下 jars 添加自定义 jar 步骤。
s3://<region prefix>.elasticmapreduce/libs/script-runner/script-runner.jar
参数是
s3://<your bucket>/<path>/<script>.sh
并将失败时的操作设置为 Continue
。 不勾选选项
Auto-terminate cluster after the last step is completed
如果脚本在配置 HBase 之前运行就可以了。它调用 bootstrap-geomesa-hbase-aws.sh
脚本,该脚本将 check for hbase to be installed 并休眠直到准备就绪。
ISSUE/QUESTION:
我们如何确保 EMR Bootstrap 操作在 EMR 上安装 HBase 应用程序后运行?
群集信息:
我正在使用支持 Hbase 1.4.9 的 emr-5.25.0 版本。
用例: 我正在使用 Bootstrap 操作(遵循以下文档)在 EMR 上安装 Geomesa。 https://www.geomesa.org/documentation/tutorials/geomesa-hbase-s3-on-aws.html
观察:
我将下面的代码用作 bootstrap 操作。我看到以下 bootstrap 操作在集群上安装 HBase 之前启动。我想使用 bootstrap 操作来确保在多主设置的情况下在每个主节点上安装 Geomesa。
#!/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\":\([^,]*\).*||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=""
GEOMESA_FILE_VERSION=""
# initialize the Geomesa version.
export GEOMESA_VERSION=""
# 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
使用Steps
。 bootstrap 始终 运行 在配置服务器之后和安装应用程序之前。因此,您必须在脚本中使用 Steps。首先,使用以下 jars 添加自定义 jar 步骤。
s3://<region prefix>.elasticmapreduce/libs/script-runner/script-runner.jar
参数是
s3://<your bucket>/<path>/<script>.sh
并将失败时的操作设置为 Continue
。 不勾选选项
Auto-terminate cluster after the last step is completed
如果脚本在配置 HBase 之前运行就可以了。它调用 bootstrap-geomesa-hbase-aws.sh
脚本,该脚本将 check for hbase to be installed 并休眠直到准备就绪。