#把下面这个放到es的server路径下,这个是rpm安装改了下。
# # init.d / servicectl compatibility (openSUSE) # if [ -f /etc/rc.status ]; then . /etc/rc.status rc_reset fi # # Source function library. # if [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions fi # Sets the default values for elasticsearch variables used in this script ES_USER="elasticsearch" ES_GROUP="elasticsearch" ES_HOME="/opt/elasticsearch/" LOG_DIR="/opt/elasticsearch/logs" DATA_DIR="/opt/elasticsearch/data" CONF_DIR="/opt/elasticsearch/config" PID_DIR="/opt/elasticsearch/run/" MAX_OPEN_FILES=65535 MAX_MAP_COUNT=262144 ES_HEAP_SIZE=20g MAX_LOCKED_MEMORY=unlimited ES_GC_LOG_FILE="/opt/elasticsearch/run/gc.log" # Source the default env file ES_ENV_FILE="/opt/elasticsearch/config/elasticsearch.config" if [ -f "$ES_ENV_FILE" ]; then . "$ES_ENV_FILE" fi # CONF_FILE setting was removed if [ ! -z "$CONF_FILE" ]; then echo "CONF_FILE setting is no longer supported. elasticsearch.yml must be placed in the config directory and cannot be renamed." exit 1 fi exec="$ES_HOME/bin/elasticsearch" prog="elasticsearch" pidfile="$PID_DIR/${prog}.pid" export ES_HEAP_SIZE export ES_HEAP_NEWSIZE export ES_DIRECT_SIZE export ES_JAVA_OPTS export ES_GC_LOG_FILE export ES_STARTUP_SLEEP_TIME export JAVA_HOME lockfile=/var/lock/subsys/$prog # backwards compatibility for old config sysconfig files, pre 0.90.1 if [ -n $USER ] && [ -z $ES_USER ] ; then ES_USER=$USER fi checkJava() { if [ -x "$JAVA_HOME/bin/java" ]; then JAVA="$JAVA_HOME/bin/java" else JAVA=`which java` fi if [ ! -x "$JAVA" ]; then echo "Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME" exit 1 fi } start() { checkJava [ -x $exec ] || exit 5 if [ -n "$MAX_LOCKED_MEMORY" -a -z "$ES_HEAP_SIZE" ]; then echo "MAX_LOCKED_MEMORY is set - ES_HEAP_SIZE must also be set" return 7 fi if [ -n "$MAX_OPEN_FILES" ]; then ulimit -n $MAX_OPEN_FILES fi if [ -n "$MAX_LOCKED_MEMORY" ]; then ulimit -l $MAX_LOCKED_MEMORY fi if [ -n "$MAX_MAP_COUNT" -a -f /proc/sys/vm/max_map_count ]; then sysctl -q -w vm.max_map_count=$MAX_MAP_COUNT fi export ES_GC_LOG_FILE # Ensure that the PID_DIR exists (it is cleaned at OS startup time) if [ -n "$PID_DIR" ] && [ ! -e "$PID_DIR" ]; then mkdir -p "$PID_DIR" && chown "$ES_USER":"$ES_GROUP" "$PID_DIR" fi if [ -n "$pidfile" ] && [ ! -e "$pidfile" ]; then touch "$pidfile" && chown "$ES_USER":"$ES_GROUP" "$pidfile" fi cd $ES_HOME echo -n $"Starting $prog: " # if not running, start it up here, usually something like "daemon $exec" daemon --user $ES_USER --pidfile $pidfile $exec -p $pidfile -d -Des.default.path.home=$ES_HOME -Des.default.path.logs=$LOG_DIR -Des.default.path.data=$DATA_DIR -Des.default.path.conf=$CONF_DIR retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " # stop it here, often "killproc $prog" killproc -p $pidfile -d 86400 $prog retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { stop start } reload() { restart } force_reload() { restart } rh_status() { # run checks to determine if the service is running or use generic status status -p $pidfile $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 restart ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" exit 2 esac exit $?
改下其中/opt/elasticsearch/部分和
MAX_OPEN_FILES=65535
MAX_MAP_COUNT=262144
#主要这个es持有的内存
ES_HEAP_SIZE=20g
#在root下,顺序执行下面
ln -s /opt/elasticsearch/server/elasticsearch /etc/init.d/elasticsearch groupadd elasticsearch useradd elasticsearch -g elasticsearch -p elasticsearch chmod +x /opt/elasticsearch/bin/elasticsearch chmod +x /opt/elasticsearch/server/elasticsearch chown -R elasticsearch:elasticsearch /opt/elasticsearch chown -R root:elasticsearch /opt/elasticsearch
chkconfig --add elasticsearch
chkconfig elasticsearch on
service elasticsearch restart
#启动起来么。就ok 不然么就去logs下看日志。
#sshfs 备份的问题 ,请在elasticsearch用户下执行挂载硬盘命令和创建备份路径命令。嘿嘿。我开始弄几次都挂不上。
su elasticsearch
#这里可以再配置文件里面多弄几个备份路径,省得后面重启的啰嗦
mkdir /opt/elasticsearch/hdisk/bak1
mkdir /opt/elasticsearch/hdisk/bak2
mkdir /opt/elasticsearch/hdisk/bak3
sshfs root@备份服务器ip:/opt/hdisk/dbbak1/ /opt/elasticsearch/hdisk/bak1
sshfs root@备份服务器ip:/opt/hdisk/dbbak2/ /opt/elasticsearch/hdisk/bak2
sshfs root@备份服务器ip:/opt/hdisk/dbbak3/ /opt/elasticsearch/hdisk/bak3