BIGTOP-2179: Add packaging scripts for Apache Tajo Signed-off-by: Youngwoo Kim <yw...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/22caf2ad Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/22caf2ad Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/22caf2ad Branch: refs/heads/BIGTOP-2320 Commit: 22caf2ad8d253edf6da83bcdabda8038cbbdd5e8 Parents: abc43b8 Author: yeongeon <yeong...@gmail.com> Authored: Mon Feb 15 10:56:01 2016 +0900 Committer: Youngwoo Kim <yw...@apache.org> Committed: Mon Feb 15 20:22:04 2016 +0900 ---------------------------------------------------------------------- MAINTAINERS.txt | 1 + .../src/common/tajo/do-component-build | 28 +++ bigtop-packages/src/common/tajo/install_tajo.sh | 156 +++++++++++++++ .../src/common/tajo/tajo-env.default | 97 +++++++++ bigtop-packages/src/common/tajo/tajo-master.svc | 76 +++++++ bigtop-packages/src/common/tajo/tajo-worker.svc | 76 +++++++ bigtop-packages/src/deb/tajo/compat | 1 + bigtop-packages/src/deb/tajo/control | 43 ++++ bigtop-packages/src/deb/tajo/copyright | 15 ++ bigtop-packages/src/deb/tajo/rules | 41 ++++ bigtop-packages/src/deb/tajo/source/format | 1 + bigtop-packages/src/deb/tajo/tajo.postinst | 35 ++++ bigtop-packages/src/deb/tajo/tajo.preinst | 62 ++++++ bigtop-packages/src/deb/tajo/tajo.prerm | 38 ++++ bigtop-packages/src/rpm/tajo/SPECS/tajo.spec | 199 +++++++++++++++++++ bigtop.bom | 13 +- 16 files changed, 881 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/MAINTAINERS.txt ---------------------------------------------------------------------- diff --git a/MAINTAINERS.txt b/MAINTAINERS.txt index 151c3aa..220f3d9 100644 --- a/MAINTAINERS.txt +++ b/MAINTAINERS.txt @@ -20,6 +20,7 @@ smoke-tests: jay vyas, david capwell spark: jay vyas, youngwoo kim sqoop: sean mackrory, youngwoo kim tachyon: jay vyas, huamin chen +tajo: yeongeon kim test-artifacts and test-execution repos: tez: evans ye, oflebbe vagrant recipes: jay vyas, evans ye http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/common/tajo/do-component-build ---------------------------------------------------------------------- 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 0000000..579a326 --- /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) + http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/common/tajo/install_tajo.sh ---------------------------------------------------------------------- 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 0000000..1aa7422 --- /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 http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/common/tajo/tajo-env.default ---------------------------------------------------------------------- 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 0000000..e2760e4 --- /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 http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/common/tajo/tajo-master.svc ---------------------------------------------------------------------- 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 0000000..0ba6c1f --- /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__ + +} + http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/common/tajo/tajo-worker.svc ---------------------------------------------------------------------- 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 0000000..9bfffce --- /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__ + +} + http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/compat ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/compat b/bigtop-packages/src/deb/tajo/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/bigtop-packages/src/deb/tajo/compat @@ -0,0 +1 @@ +9 http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/control ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/control b/bigtop-packages/src/deb/tajo/control new file mode 100644 index 0000000..4d1f2ae --- /dev/null +++ b/bigtop-packages/src/deb/tajo/control @@ -0,0 +1,43 @@ +# 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. + +Source: tajo +Section: misc +Priority: extra +Maintainer: Bigtop <d...@bigtop.apache.org> +Build-Depends: debhelper (>= 9) +Standards-Version: 3.9.4 +Homepage: http://tajo.apache.org/ + +Package: tajo +Architecture: all +Depends: hadoop, hadoop-hdfs, hadoop-yarn, hadoop-mapreduce, hadoop-client +Description: A robust big data relational and distributed data warehouse system. + Tajo is designed for low-latency and scalable ad-hoc queries, online aggregation, and ETL (extract-transform-load process) + on large-data sets stored on HDFS (Hadoop Distributed File System) and other data sources. + By supporting SQL standards and leveraging advanced database techniques, + Tajo allows direct control of distributed execution and data flow across a variety of query evaluation strategies and optimization opportunities. + +Package: tajo-master +Architecture: all +Depends: tajo (= ${source:Version}) +Description: Tajo master + Server for Tajo master + +Package: tajo-worker +Architecture: all +Depends: tajo (= ${source:Version}) +Description: Tajo worker + Server for Tajo worker http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/copyright ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/copyright b/bigtop-packages/src/deb/tajo/copyright new file mode 100644 index 0000000..39e2249 --- /dev/null +++ b/bigtop-packages/src/deb/tajo/copyright @@ -0,0 +1,15 @@ +Format: http://dep.debian.net/deps/dep5 +Source: http://tajo.apache.org/ +Upstream-Name: Apache Tajo + +Files: * +Copyright: 2008-2015, The Apache Software Foundation +License: Apache-2.0 + +Files debian/* +Copyright: 2015, The Apache Software Foundation +License: Apache-2.0 + +License: Apache-2.0 + On Debian systems, the complete text of the Apache 2.0 license + can be found in "/usr/share/common-licenses/Apache-2.0". http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/rules ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/rules b/bigtop-packages/src/deb/tajo/rules new file mode 100644 index 0000000..edfb3bb --- /dev/null +++ b/bigtop-packages/src/deb/tajo/rules @@ -0,0 +1,41 @@ +#!/usr/bin/make -f +# +# 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. +# +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +export DH_VERBOSE=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + +%: + dh $@ + +override_dh_auto_build: + # we'll just use the build from the tarball. + sh debian/do-component-build -Dmaven.repo.local=${HOME}/.m2/repository + +override_dh_auto_install: + sh debian/install_tajo.sh \ + --build-dir=build \ + --source-dir=debian \ + --bin-dir=/usr/bin \ + --prefix=debian/tmp + mkdir -p debian/tajo/etc/init.d/ + sh debian/init.d.tmpl debian/tajo-master.svc deb debian/tajo-master.init + sh debian/init.d.tmpl debian/tajo-worker.svc deb debian/tajo-worker.init \ No newline at end of file http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/source/format ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/source/format b/bigtop-packages/src/deb/tajo/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/bigtop-packages/src/deb/tajo/source/format @@ -0,0 +1 @@ +3.0 (quilt) http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/tajo.postinst ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/tajo.postinst b/bigtop-packages/src/deb/tajo/tajo.postinst new file mode 100644 index 0000000..1247cb1 --- /dev/null +++ b/bigtop-packages/src/deb/tajo/tajo.postinst @@ -0,0 +1,35 @@ +#!/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 + +case "$1" in + configure) + # Install config alternatives + update-alternatives --install /etc/tajo/conf tajo-conf /etc/tajo/conf.dist 30 + chown -R tajo:tajo /var/log/tajo /var/lib/tajo /var/run/tajo + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/tajo.preinst ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/tajo.preinst b/bigtop-packages/src/deb/tajo/tajo.preinst new file mode 100644 index 0000000..ee7a794 --- /dev/null +++ b/bigtop-packages/src/deb/tajo/tajo.preinst @@ -0,0 +1,62 @@ +#!/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. + +# preinst script for tajo +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <new-preinst> `install' +# * <new-preinst> `install' <old-version> +# * <new-preinst> `upgrade' <old-version> +# * <old-preinst> `abort-upgrade' <new-version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + install|upgrade) + if ! getent passwd tajo >/dev/null; then + # Adding system user: tajo . + adduser \ + --system \ + --group \ + --home /var/lib/tajo \ + --gecos "Tajo" \ + --shell /bin/false \ + tajo >/dev/null + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/deb/tajo/tajo.prerm ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/deb/tajo/tajo.prerm b/bigtop-packages/src/deb/tajo/tajo.prerm new file mode 100644 index 0000000..f9411f5 --- /dev/null +++ b/bigtop-packages/src/deb/tajo/tajo.prerm @@ -0,0 +1,38 @@ +#!/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 + +case "$1" in + remove|upgrade|deconfigure) + update-alternatives --remove tajo-conf /etc/tajo/conf.dist || : + ;; + + failed-upgrade) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop-packages/src/rpm/tajo/SPECS/tajo.spec ---------------------------------------------------------------------- diff --git a/bigtop-packages/src/rpm/tajo/SPECS/tajo.spec b/bigtop-packages/src/rpm/tajo/SPECS/tajo.spec new file mode 100644 index 0000000..bc38b79 --- /dev/null +++ b/bigtop-packages/src/rpm/tajo/SPECS/tajo.spec @@ -0,0 +1,199 @@ +# 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. +# +# Tajo RPM spec file +# + +%define tajo_name tajo +%define tajo_home /usr/lib/%{tajo_name} +%define log_tajo /var/log/%{tajo_name} +%define run_tajo /var/run/%{tajo_name} +%define pid_tajo /var/lib/%{tajo_name} +%define bin %{_bindir} +%define etc_tajo /etc/%{tajo_name} +%define config_tajo %{etc_tajo}/conf +%define man_tajo %{_mandir} +%define doc_tajo %{_docdir}/%{name} +%define libexecdir /usr/lib +%define tajo_services master worker + +%ifarch i386 +%global tajo_arch Linux-i386-32 +%endif +%ifarch amd64 x86_64 +%global tajo_arch Linux-amd64-64 +%endif + +# CentOS 5 does not have any dist macro +# So I will suppose anything that is not Mageia or a SUSE will be a RHEL/CentOS/Fedora +%if %{!?suse_version:1}0 && %{!?mgaversion:1}0 + +#%define netcat_package nc +%define alternatives_cmd alternatives +%global initd_dir %{_sysconfdir}/rc.d/init.d +%endif + + +%if %{?suse_version:1}0 + +# Only tested on openSUSE 11.4. le'ts update it for previous release when confirmed +%if 0%{suse_version} > 1130 +%define suse_check \# Define an empty suse_check for compatibility with older sles +%endif + +# Deactivating symlinks checks +%define __os_install_post \ + %{suse_check} ; \ + /usr/lib/rpm/brp-compress ; \ + %{nil} + +%define alternatives_cmd update-alternatives +%global initd_dir %{_sysconfdir}/rc.d +%endif + +%if 0%{?mgaversion} +%define alternatives_cmd update-alternatives +%global initd_dir %{_sysconfdir}/rc.d/init.d +%endif + + +Name: %{tajo_name} +Version: %{tajo_version} +Release: %{tajo_release} +Summary: Apache Tajoâ¢: A big data warehouse system on Hadoop +License: ASL 2.0 +URL: http://tajo.apache.org/ +Group: Development/Libraries +Source0: %{tajo_name}-%{tajo_base_version}.tar.gz +Source1: do-component-build +Source2: install_%{tajo_name}.sh +Source3: init.d.tmpl +Source4: tajo-master.svc +Source5: tajo-worker.svc +Buildroot: %{mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX} +Requires: hadoop, hadoop-hdfs, hadoop-yarn, hadoop-mapreduce, hadoop-client + +%description +Apache Tajo is a robust big data relational and distributed data warehouse system for Apache Hadoop. +Tajo is designed for low-latency and scalable ad-hoc queries, online aggregation, and ETL (extract-transform-load process) +on large-data sets stored on HDFS (Hadoop Distributed File System) and other data sources. +By supporting SQL standards and leveraging advanced database techniques, +Tajo allows direct control of distributed execution and data flow across a variety of query evaluation strategies and optimization opportunities. + +%package -n %{name}-master +Summary: Server for Tajo master +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description -n %{name}-master +Server for Tajo master + +%package -n %{name}-worker +Summary: Server for Tajo worker +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description -n %{name}-worker +Server for Tajo worker + +%prep +%setup -n %{name}-%{tajo_base_version}-src + +#BIGTOP_PATCH_COMMANDS +%build + +env TAJO_VERSION=%{tajo_base_version} TAJO_ARCH=%{tajo_arch} bash %{SOURCE1} + +######################### +#### INSTALL SECTION #### +######################### +%install +%__rm -rf $RPM_BUILD_ROOT +%__install -d -m 0755 $RPM_BUILD_ROOT/%{tajo_home} + +env TAJO_VERSION=%{tajo_base_version} bash %{SOURCE2} \ + --build-dir=build \ + --source-dir=$RPM_SOURCE_DIR \ + --bin-dir=%{bin} \ + --prefix=$RPM_BUILD_ROOT \ + +# Init.d scripts +%__install -d -m 0755 $RPM_BUILD_ROOT/%{initd_dir}/ +%__install -d -m 0755 %{buildroot}/%{_localstatedir}/log/%{name} +%__install -d -m 0755 %{buildroot}/%{_localstatedir}/run/%{name} +%__install -d -m 0755 %{buildroot}/%{_localstatedir}/lib/%{name} +%__install -d -m 0755 $RPM_BUILD_ROOT/%{bin} + +# Generate the init.d scripts +for service in %{tajo_services} +do + # Install init script + init_file=$RPM_BUILD_ROOT/%{initd_dir}/%{tajo_name}-${service} + bash $RPM_SOURCE_DIR/init.d.tmpl $RPM_SOURCE_DIR/tajo-${service}.svc rpm $init_file +done + +%pre +getent group tajo >/dev/null || groupadd -r tajo +getent passwd tajo >/dev/null || useradd -c "Tajo" -s /sbin/nologin -g tajo -r -d %{pid_tajo} tajo 2> /dev/null || : + +%post +%{alternatives_cmd} --install %{config_tajo} %{tajo_name}-conf %{config_tajo}.dist 30 + +%preun +if [ "$1" = 0 ]; then + %{alternatives_cmd} --remove %{tajo_name}-conf %{config_tajo}.dist || : +fi +for service in %{tajo_services}; do + /sbin/service %{tajo_name}-${service} status > /dev/null 2>&1 + if [ $? -eq 0 ]; then + /sbin/service %{tajo_name}-${service} stop > /dev/null 2>&1 + fi +done + +####################### +#### FILES SECTION #### +####################### +%files +%defattr(-,root,root,755) +%{tajo_home} +%dir %{_sysconfdir}/%{tajo_name} +%config(noreplace) %{config_tajo}.dist +%dir %{_localstatedir}/log/tajo +%dir %{_localstatedir}/run/tajo +%dir %{_localstatedir}/lib/tajo +%attr(0775,tajo,tajo) %{log_tajo} +%attr(0775,tajo,tajo) %{run_tajo} +%attr(0775,tajo,tajo) %{pid_tajo} +%attr(0775,tajo,tajo) %(config_tajo) +%{bin}/tsql +%{bin}/tajo + +%define service_macro() \ +%files -n %1 \ +%attr(0755,root,root)/%{initd_dir}/%1 \ +%post -n %1 \ +chkconfig --add %1 \ +\ +%preun -n %1 \ +if [ $1 = 0 ] ; then \ + service %1 stop > /dev/null 2>&1 \ + chkconfig --del %1 \ +fi \ +%postun -n %1 \ +if [ $1 -ge 1 ]; then \ + service %1 condrestart >/dev/null 2>&1 \ +fi +%service_macro %{tajo_name}-master +%service_macro %{tajo_name}-worker http://git-wip-us.apache.org/repos/asf/bigtop/blob/22caf2ad/bigtop.bom ---------------------------------------------------------------------- diff --git a/bigtop.bom b/bigtop.bom index b476616..8553b9d 100644 --- a/bigtop.bom +++ b/bigtop.bom @@ -90,7 +90,8 @@ bigtop { zookeeper:['hadoop', 'hbase'], hadoop:['ignite-hadoop', 'hbase', 'crunch', 'pig', 'hive', 'tez', 'sqoop', 'sqoop2', 'oozie', 'mahout', 'flume', 'giraph', 'solr', 'crunch', 'spark', - 'phoenix', 'tachyon', 'kafka', 'ycsb', 'kite', 'hama', 'zeppelin' + 'phoenix', 'tachyon', 'kafka', 'ycsb', 'kite', 'hama', 'zeppelin', + 'tajo' ], hbase:['phoenix','giraph','ycsb'], pig:['datafu', 'oozie'], @@ -401,5 +402,15 @@ bigtop { site = "${apache.APACHE_MIRROR}/${download_path}" archive = "${apache.APACHE_ARCHIVE}/${download_path}" } } + 'tajo' { + name = 'tajo' + relNotes = 'Apache Tajo' + version { base = '0.11.0'; pkg = base; release = 1 } + tarball { source = "$name-${version.base}-src.tar.gz" + destination = "$name-${version.base}.tar.gz" } + url { download_path = "/$name/$name-${version.base}" + site = "${apache.APACHE_MIRROR}/${download_path}" + archive = "${apache.APACHE_ARCHIVE}/${download_path}" } + } } }