forked from apache/predictionio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pio-start-all
executable file
·100 lines (91 loc) · 3.58 KB
/
pio-start-all
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/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:https://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
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