aboutsummaryrefslogtreecommitdiff
path: root/bigtop-packages/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'bigtop-packages/src/common')
-rw-r--r--bigtop-packages/src/common/tajo/do-component-build28
-rw-r--r--bigtop-packages/src/common/tajo/install_tajo.sh156
-rw-r--r--bigtop-packages/src/common/tajo/tajo-env.default97
-rw-r--r--bigtop-packages/src/common/tajo/tajo-master.svc76
-rw-r--r--bigtop-packages/src/common/tajo/tajo-worker.svc76
5 files changed, 433 insertions, 0 deletions
diff --git a/bigtop-packages/src/common/tajo/do-component-build b/bigtop-packages/src/common/tajo/do-component-build
new file mode 100644
index 00000000..579a3261
--- /dev/null
+++ b/bigtop-packages/src/common/tajo/do-component-build
@@ -0,0 +1,28 @@
+#!/bin/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.
+
+set -ex
+
+# recognize for TAJO_VERSION, HADOOP_VERSION
+. `dirname $0`/bigtop.bom
+
+rm -rf build
+mkdir build
+
+mvn clean package -DskipTests -Pdist -Dtar -Dhadoop.version=$HADOOP_VERSION "$@"
+
+(cd build; tar --strip-components=1 -xzvf ../tajo-dist/target/tajo-${TAJO_VERSION}.tar.gz)
+
diff --git a/bigtop-packages/src/common/tajo/install_tajo.sh b/bigtop-packages/src/common/tajo/install_tajo.sh
new file mode 100644
index 00000000..1aa74223
--- /dev/null
+++ b/bigtop-packages/src/common/tajo/install_tajo.sh
@@ -0,0 +1,156 @@
+#!/bin/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.
+
+set -e
+
+usage() {
+ echo "
+usage: $0 <options>
+ Required not-so-options:
+ --build-dir=DIR path to tajo dist.dir
+ --source-dir=DIR path to package shared files dir
+ --prefix=PREFIX path to install into
+
+ Optional options:
+ --bin-dir=DIR path to install docs into [/usr/bin]
+ ... [ see source for more similar options ]
+ "
+ exit 1
+}
+
+OPTS=$(getopt \
+ -n $0 \
+ -o '' \
+ -l 'prefix:' \
+ -l 'bin-dir:' \
+ -l 'source-dir:' \
+ -l 'build-dir:' -- "$@")
+
+if [ $? != 0 ] ; then
+ usage
+fi
+
+eval set -- "$OPTS"
+while true ; do
+ case "$1" in
+ --prefix)
+ PREFIX=$2 ; shift 2
+ ;;
+ --build-dir)
+ BUILD_DIR=$2 ; shift 2
+ ;;
+ --source-dir)
+ SOURCE_DIR=$2 ; shift 2
+ ;;
+ --bin-dir)
+ BIN_DIR=$2 ; shift 2
+ ;;
+ --)
+ shift ; break
+ ;;
+ *)
+ echo "Unknown option: $1"
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+for var in PREFIX BUILD_DIR ; do
+ if [ -z "$(eval "echo \$$var")" ]; then
+ echo Missing param: $var
+ usage
+ fi
+done
+
+MAN_DIR=/usr/share/man/man1
+DOC_DIR=${DOC_DIR:-/usr/share/doc/tajo}
+LIB_DIR=${LIB_DIR:-/usr/lib/tajo}
+INSTALLED_LIB_DIR=${INSTALLED_LIB_DIR:-/usr/lib/tajo}
+BIN_DIR=${BIN_DIR:-/usr/bin}
+CONF_DIR=${CONF_DIR:-/etc/tajo/conf.dist}
+
+WORK_DIR=${WORK_DIR:-/var/lib/tajo}
+LOG_DIR=${LOG_DIR:-/var/log/tajo}
+PID_DIR=${PID_DIR:-/var/run/tajo}
+
+install -d -m 0755 $PREFIX/$LIB_DIR
+install -d -m 0755 $PREFIX/$LIB_DIR
+install -d -m 0755 $PREFIX/$LIB_DIR/bin
+install -d -m 0755 $PREFIX/$LIB_DIR/lib
+install -d -m 0755 $PREFIX/$LIB_DIR/extlib
+install -d -m 0755 $PREFIX/$LIB_DIR/hive
+install -d -m 0755 $PREFIX/$LIB_DIR/share
+install -d -m 0755 $PREFIX/$LIB_DIR/share/jdbc-dist
+install -d -m 0755 $PREFIX/$CONF_DIR
+install -d -m 0755 $PREFIX/$WORK_DIR
+install -d -m 0755 $PREFIX/$LOG_DIR
+install -d -m 0755 $PREFIX/$PID_DIR
+
+ln -s $LOG_DIR $PREFIX/$LIB_DIR/logs
+
+# Copy in the binary files
+cp -ra ${BUILD_DIR}/lib/* $PREFIX/${LIB_DIR}/lib/
+cp ${BUILD_DIR}/tajo*.jar $PREFIX/$LIB_DIR
+cp -a ${BUILD_DIR}/bin/* $PREFIX/${LIB_DIR}/bin
+rm -rf $PREFIX/${LIB_DIR}/bin/*.cmd
+
+# Copy in the library files
+for module in ${BUILD_DIR}/lib/*; do
+ if [ -f $module ]; then
+ x=$(basename $module)
+ cp -ra ${BUILD_DIR}/lib/$x $PREFIX/${LIB_DIR}/lib/
+ fi
+done
+for module in ${BUILD_DIR}/extlib/*; do
+ if [ -f $module ]; then
+ x=$(basename $module)
+ cp -ra ${BUILD_DIR}/extlib/$x $PREFIX/${LIB_DIR}/extlib/
+ fi
+done
+for module in ${BUILD_DIR}/hive/*; do
+ if [ -f $module ]; then
+ x=$(basename $module)
+ cp -ra ${BUILD_DIR}/hive/$x $PREFIX/${LIB_DIR}/hive/
+ fi
+done
+for module in ${BUILD_DIR}/share/jdbc-dist/*; do
+ if [ -f $module ]; then
+ x=$(basename $module)
+ cp -ra ${BUILD_DIR}/share/jdbc-dist/$x $PREFIX/${LIB_DIR}/share/jdbc-dist/
+ fi
+done
+
+# Copy in the configuration files
+cp -a ${BUILD_DIR}/conf/* $PREFIX/$CONF_DIR
+cp -a $SOURCE_DIR/tajo-env.default $PREFIX/$CONF_DIR/tajo-env.sh
+chmod +x $PREFIX/$CONF_DIR/tajo-env.sh
+ln -s /etc/tajo/conf $PREFIX/$LIB_DIR/conf
+
+# Copy in the wrappers
+install -d -m 0755 $PREFIX/$BIN_DIR
+for wrap in bin/tsql bin/tajo; do
+ cat > $PREFIX/$BIN_DIR/`basename $wrap` <<EOF
+#!/bin/bash
+
+# Autodetect JAVA_HOME if not defined
+. /usr/lib/bigtop-utils/bigtop-detect-javahome
+
+exec $INSTALLED_LIB_DIR/$wrap "\$@"
+EOF
+ chmod 755 $PREFIX/$BIN_DIR/`basename $wrap`
+done \ No newline at end of file
diff --git a/bigtop-packages/src/common/tajo/tajo-env.default b/bigtop-packages/src/common/tajo/tajo-env.default
new file mode 100644
index 00000000..e2760e48
--- /dev/null
+++ b/bigtop-packages/src/common/tajo/tajo-env.default
@@ -0,0 +1,97 @@
+# 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.
+
+# Set Tajo-specific environment variables here.
+
+# The only required environment variable is JAVA_HOME. All others are
+# optional. When running a distributed configuration it is best to
+# set JAVA_HOME in this file, so that it is correctly defined on
+# remote nodes.
+
+# Hadoop home. Required
+export HADOOP_HOME=${HADOOP_HOME:-/usr/lib/hadoop}
+export HADOOP_HDFS_HOME=${HADOOP_HDFS_HOME:-${HADOOP_HOME}/../hadoop-hdfs}
+export HADOOP_MAPRED_HOME=${HADOOP_MAPRED_HOME:-${HADOOP_HOME}/../hadoop-mapreduce}
+export HADOOP_YARN_HOME=${HADOOP_YARN_HOME:-${HADOOP_HOME}/../hadoop-yarn}
+
+# The java implementation to use. Required.
+#jdk8
+if [ -f /usr/lib/bigtop-utils/bigtop-detect-javahome ];
+then
+ . /usr/lib/bigtop-utils/bigtop-detect-javahome
+fi
+
+# Extra Java CLASSPATH elements. Optional.
+export TAJO_CLASSPATH=$HADOOP_HOME/*
+export TAJO_CLASSPATH=$TAJO_CLASSPATH:$HADOOP_HOME/lib/*
+export TAJO_CLASSPATH=$TAJO_CLASSPATH:$HADOOP_HOME/client/*
+export TAJO_CLASSPATH=$TAJO_CLASSPATH:$HADOOP_MAPREDUCE_HOME/*
+export TAJO_CLASSPATH=$TAJO_CLASSPATH:$HADOOP_HDFS_HOME/*
+export TAJO_CLASSPATH=$TAJO_CLASSPATH:$HADOOP_HDFS_HOME/lib/*
+export TAJO_CLASSPATH=$TAJO_CLASSPATH:$HADOOP_YARN_HOME/*
+
+
+# The maximum amount of heap to use, in MB. Default is 1000.
+# export TAJO_MASTER_HEAPSIZE=1000
+
+# The maximum amount of heap to use, in MB. Default is 1000.
+#export TAJO_WORKER_HEAPSIZE=80000
+
+# The maximum amount of heap to use, in MB. Default is 1000.
+# export TAJO_PULLSERVER_HEAPSIZE=1000
+
+# The maximum amount of heap to use, in MB. Default is 1000.
+# export TAJO_QUERYMASTER_HEAPSIZE=1000
+
+# Extra Java runtime options. Empty by default.
+# export TAJO_OPTS=-server
+
+# Extra TajoMaster's java runtime options for TajoMaster. Empty by default
+# export TAJO_MASTER_OPTS=
+
+# Extra TajoWorker's java runtime options. Empty by default
+export TAJO_WORKER_OPTS='-XX:+UseParallelOldGC'
+#export TAJO_WORKER_OPTS='-XX:+UseG1GC'
+
+# Extra TajoPullServer's java runtime options. Empty by default
+# export TAJO_PULLSERVER_OPTS=
+
+# Extra QueryMaster mode TajoWorker's java runtime options for TajoMaster. Empty by default
+# export TAJO_QUERYMASTER_OPTS=
+
+# Where log files are stored. $TAJO_HOME/logs by default.
+export TAJO_LOG_DIR=/var/log/tajo
+
+# The directory where pid files are stored. /tmp by default.
+export TAJO_PID_DIR=/var/run/tajo
+
+# A string representing this instance of tajo. $USER by default.
+# export TAJO_IDENT_STRING=$USER
+
+# The scheduling priority for daemon processes. See 'man nice'.
+# export TAJO_NICENESS=10
+
+# Tajo cluster mode. the default mode is standby mode.
+
+# It must be required to use HCatalogStore
+# export HIVE_HOME=
+# export HIVE_JDBC_DRIVER_DIR=
+
+# Tajo PullServer mode. the default mode is standalone mode
+# export TAJO_PULLSERVER_STANDALONE=false
+
+# HBase home directory. It is opitional, but is required mandatorily to use HBase.
+#export HBASE_HOME= \ No newline at end of file
diff --git a/bigtop-packages/src/common/tajo/tajo-master.svc b/bigtop-packages/src/common/tajo/tajo-master.svc
new file mode 100644
index 00000000..0ba6c1f5
--- /dev/null
+++ b/bigtop-packages/src/common/tajo/tajo-master.svc
@@ -0,0 +1,76 @@
+# 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.
+
+TYPE="master"
+DAEMON="tajo-${TYPE}"
+DESC="Tajo ${TYPE}"
+EXEC_PATH="/usr/lib/tajo/bin/tajo-daemon.sh"
+SVC_USER="tajo"
+WORKING_DIR="/var/lib/tajo"
+DAEMON_FLAGS="start ${TYPE}"
+KEYWORD="org.apache.tajo.master.TajoMaster"
+CONF_DIR="/etc/tajo/conf"
+PIDFILE="/var/run/tajo/tajo-${DAEMON}.pid"
+
+generate_start() {
+
+cat <<'__EOT__'
+start() {
+ [ -x $EXE_FILE ] || exit $ERROR_PROGRAM_NOT_INSTALLED
+ log_success_msg "Starting $DESC (${DAEMON}): "
+
+ checkstatusofproc
+ status=$?
+ if [ "$status" -eq "$STATUS_RUNNING" ]; then
+ log_success_msg "${DESC} is running"
+ exit 0
+ fi
+
+ LOG_FILE=/var/log/tajo/${DAEMON}.out
+
+ if [ -f $CONF_DIR/tajo-env.sh ]; then
+ . $CONF_DIR/tajo-env.sh
+ fi
+
+ su -s /bin/bash $SVC_USER -c "nohup nice -n 0 \
+ ${EXEC_PATH} ${DAEMON_FLAGS} \
+ > $LOG_FILE 2>&1 & "
+
+ sleep 3
+
+ checkstatusofproc
+ RETVAL=$?
+ [ $RETVAL -eq $STATUS_RUNNING ] && touch $LOCKFILE
+ return $RETVAL
+}
+__EOT__
+
+}
+
+generate_stop() {
+
+cat <<'__EOT__'
+stop() {
+ log_success_msg "Stopping $DESC (${DAEMON}): "
+ killproc -p $PIDFILE java
+ RETVAL=$?
+
+ [ $RETVAL -eq $RETVAL_SUCCESS ] && rm -f $LOCKFILE $PIDFILE
+ return $RETVAL
+}
+__EOT__
+
+}
+
diff --git a/bigtop-packages/src/common/tajo/tajo-worker.svc b/bigtop-packages/src/common/tajo/tajo-worker.svc
new file mode 100644
index 00000000..9bfffce7
--- /dev/null
+++ b/bigtop-packages/src/common/tajo/tajo-worker.svc
@@ -0,0 +1,76 @@
+# 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.
+
+TYPE="worker"
+DAEMON="tajo-${TYPE}"
+DESC="Tajo ${TYPE}"
+EXEC_PATH="/usr/lib/tajo/bin/tajo-daemon.sh"
+SVC_USER="tajo"
+WORKING_DIR="/var/lib/tajo"
+DAEMON_FLAGS="start ${TYPE}"
+KEYWORD="org.apache.tajo.worker.TajoWorker"
+CONF_DIR="/etc/tajo/conf"
+PIDFILE="/var/run/tajo/tajo-${DAEMON}.pid"
+
+generate_start() {
+
+cat <<'__EOT__'
+start() {
+ [ -x $EXE_FILE ] || exit $ERROR_PROGRAM_NOT_INSTALLED
+ log_success_msg "Starting $DESC (${DAEMON}): "
+
+ checkstatusofproc
+ status=$?
+ if [ "$status" -eq "$STATUS_RUNNING" ]; then
+ log_success_msg "${DESC} is running"
+ exit 0
+ fi
+
+ LOG_FILE=/var/log/tajo/${DAEMON}.out
+
+ if [ -f $CONF_DIR/tajo-env.sh ]; then
+ . $CONF_DIR/tajo-env.sh
+ fi
+
+ su -s /bin/bash $SVC_USER -c "nohup nice -n 0 \
+ ${EXEC_PATH} ${DAEMON_FLAGS} \
+ > $LOG_FILE 2>&1 & "
+
+ sleep 3
+
+ checkstatusofproc
+ RETVAL=$?
+ [ $RETVAL -eq $STATUS_RUNNING ] && touch $LOCKFILE
+ return $RETVAL
+}
+__EOT__
+
+}
+
+generate_stop() {
+
+cat <<'__EOT__'
+stop() {
+ log_success_msg "Stopping $DESC (${DAEMON}): "
+ killproc -p $PIDFILE java
+ RETVAL=$?
+
+ [ $RETVAL -eq $RETVAL_SUCCESS ] && rm -f $LOCKFILE $PIDFILE
+ return $RETVAL
+}
+__EOT__
+
+}
+