| #!/usr/bin/env 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. |
| # |
| |
| # Convenience script for starting all default dependent services in a single |
| # node scenario. |
| |
| # Figure out where PredictionIO is installed |
| export PIO_HOME="$(cd `dirname $0`/..; pwd)" |
| |
| . ${PIO_HOME}/bin/load-pio-env.sh |
| |
| SOURCE_TYPE=$PIO_STORAGE_REPOSITORIES_METADATA_SOURCE |
| SOURCE_TYPE=$SOURCE_TYPE$PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE |
| SOURCE_TYPE=$SOURCE_TYPE$PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE |
| |
| # Elasticsearch |
| if [ `echo $SOURCE_TYPE | grep -i elasticsearch | wc -l` != 0 ] ; then |
| echo "Starting Elasticsearch..." |
| if [ -n "$PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME" ]; then |
| ELASTICSEARCH_HOME=$PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME |
| elif [ -n "$PIO_STORAGE_SOURCES_ELASTICSEARCH5_HOME" ]; then |
| ELASTICSEARCH_HOME=$PIO_STORAGE_SOURCES_ELASTICSEARCH5_HOME |
| fi |
| if [ -n "$ELASTICSEARCH_HOME" ]; then |
| if [ -n "$JAVA_HOME" ]; then |
| JPS=`$JAVA_HOME/bin/jps` |
| else |
| JPS=`jps` |
| fi |
| if [[ ${JPS} =~ "Elasticsearch" ]]; then |
| echo -e "\033[0;31mElasticsearch is already running. Please use pio-stop-all to try stopping it first.\033[0m" |
| echo -e "\033[0;31mNote: If you started Elasticsearch manually, you will need to kill it manually.\033[0m" |
| echo -e "\033[0;31mAborting...\033[0m" |
| exit 1 |
| else |
| $ELASTICSEARCH_HOME/bin/elasticsearch -d -p $PIO_HOME/es.pid |
| fi |
| else |
| echo -e "\033[0;31mPlease set PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME in conf/pio-env.sh, or in your environment.\033[0m" |
| echo -e "\033[0;31mCannot start Elasticsearch. Aborting...\033[0m" |
| exit 1 |
| fi |
| fi |
| |
| # HBase |
| if [ `echo $SOURCE_TYPE | grep -i hbase | wc -l` != 0 ] ; then |
| echo "Starting HBase..." |
| if [ -n "$PIO_STORAGE_SOURCES_HBASE_HOME" ]; then |
| $PIO_STORAGE_SOURCES_HBASE_HOME/bin/start-hbase.sh |
| else |
| echo -e "\033[0;31mPlease set PIO_STORAGE_SOURCES_HBASE_HOME in conf/pio-env.sh, or in your environment.\033[0m" |
| # Kill everything for cleanliness |
| echo -e "\033[0;31mCannot start HBase. Aborting...\033[0m" |
| sleep 3 |
| ${PIO_HOME}/bin/pio-stop-all |
| exit 1 |
| fi |
| fi |
| |
| #PGSQL |
| if [ `echo $SOURCE_TYPE | grep -i pgsql | wc -l` != 0 ] ; then |
| pgsqlStatus="$(ps auxwww | grep postgres | wc -l)" |
| if [[ "$pgsqlStatus" < 5 ]]; then |
| # Detect OS |
| OS=`uname` |
| if [[ "$OS" = "Darwin" ]]; then |
| pg_cmd=`which pg_ctl` |
| if [[ "$pg_cmd" != "" ]]; then |
| pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start |
| fi |
| elif [[ "$OS" = "Linux" ]]; then |
| sudo service postgresql start |
| else |
| echo -e "\033[1;31mYour OS $OS is not yet supported for automatic postgresql startup:(\033[0m" |
| echo -e "\033[1;31mPlease do a manual startup!\033[0m" |
| ${PIO_HOME}/bin/pio-stop-all |
| exit 1 |
| fi |
| fi |
| fi |
| |
| # PredictionIO Event Server |
| echo "Waiting 10 seconds for Storage Repositories to fully initialize..." |
| sleep 10 |
| echo "Starting PredictionIO Event Server..." |
| ${PIO_HOME}/bin/pio-daemon ${PIO_HOME}/eventserver.pid eventserver --ip 0.0.0.0 |