You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bigtop.apache.org by yw...@apache.org on 2016/02/15 12:22:57 UTC

bigtop git commit: BIGTOP-2179: Add packaging scripts for Apache Tajo

Repository: bigtop
Updated Branches:
  refs/heads/master abc43b807 -> 22caf2ad8


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/master
Commit: 22caf2ad8d253edf6da83bcdabda8038cbbdd5e8
Parents: abc43b8
Author: yeongeon <ye...@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 <de...@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}" }
+    }
   }
 }