ElasticSearch 在linux上安装(centos7)

ElasticSearch 在linux上安装(centos7)

注意:
ElasticSearch安装版本为elasticsearch-7.4.0,可以下载其它版本进行安装,步骤几乎一致,参照即可

1、上传ElasticSearch安装包
安装包上传的位置自行指定

# sftp方式上传es安装包
# 方式一:WinSCP 软件上传
# 方式二:MobaXterm或者finalshell 自带sftp上传工具

2、执行解压操作 ,如下图

# 将elasticsearch-7.4.0-linux-x86_64.tar.gz解压到opt文件夹下. 
 # -C 大写
 tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz  -C /opt

3、创建普通用户
注意:如果你有非root用户,那就不用创建新用户了,用你原来的就行。
因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

# 注意:orange是你的用户名,不要死板的照抄
useradd orange# 新增itheima用户
passwd  orange# 为itheima用户设置密码

4、为新用户授权,如下图
注意:你原有的非root用户也要授权(在pot目录下)


chown -R orange:orange /opt/elasticsearch-7.4.0 #文件夹所有者

5、修改elasticsearch.yml文件

vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml 
# ======================== Elasticsearch Configuration =========================
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

说明
cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
network.host:设置为0.0.0.0允许外网访问
http.port:Elasticsearch的http访问端口
cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master


6、修改配置文件文件
新创建的itheima用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件, 添加类似如下内容
解决已下报错:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max number of threads [1024] for user [itheima] is too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
# 切换到root用户
su root

# 1.最大可创建文件数太小
vim /etc/security/limits.conf 
# 在文件末尾中增加下面内容,注意换成你自己的用户名
orange soft nofile 65536
orange hard nofile 65536
# 退出用户重新登录,使配置生效
# 运行 ulimit -Hn  查看硬限制,会发现数值有4096改成65535

vim /etc/security/limits.d/20-nproc.conf
# 添加如下配置
# 注:* 代表Linux所有用户名称	
*  hard    nproc     4096

# 2. 最大虚拟内存太小
vim /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360

# 3.重新加载,输入下面命令:
sysctl -p

7、启动elasticsearch

su orange # 切换到orange用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch # 启动
# 或者
./elasticsearch -d # 后台启动

出现下面图我们可以看到elasticsearch已经成功启动
启动图片


8、访问elasticsearch
注意:在访问elasticsearch前,请确保防火墙是关闭的,执行命令:

# 当前防火墙状态
firewall-cmd --state

# 暂时关闭防火墙
systemctl stop firewalld.service

# 永久设置防火墙状态,重启后不会复原 
systemctl disable firewalld.service

浏览器输入http://192.168.23.129:9200/,如下图
访问图片
此时elasticsearch已成功启动。


ElasticSearch中自带JDK解决办法

由于es和jdk是一个强依赖的关系,所以再新的版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的虚拟机中已经安装了jdk之后,就会发现启动es的时候优先去找的是虚拟机中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行

1.进入opt目录下:
vim elasticsearch-7.4.0/bin/elasticsearch # 加配置

#=======添加配置解决jdk版本问题=====
export JAVA_HOME=/opt/elasticsearch-7.4.0/jdk     # (将原目录修改为es中自带jdk的配置目录)
export PATH=$JAVA_HOME/bin:$PATH
#============

#=======添加配置解决jdk版本问题=====

if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/opt/elasticsearch-7.4.0/jdk/bin/java"
else
        JAVA=`which java`
fi
#============

2.修改后的配置文件:

!/bin/bash

# CONTROLLING STARTUP:
#
# This script relies on a few environment variables to determine startup
# behavior, those variables are:
#
#   ES_PATH_CONF -- Path to config directory
#   ES_JAVA_OPTS -- External Java Opts on top of the defaults set
#
# Optionally, exact memory values can be set using the `ES_JAVA_OPTS`. Note that
# the Xms and Xmx lines in the JVM options file must be commented out. Example
# values are "512m", and "10g".
#
#   ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch

#=======添加配置解决jdk版本问题=====
export JAVA_HOME=/opt/elasticsearch-7.4.0/jdk     # (将原目录修改为es中自带jdk的配置目录)
export PATH=$JAVA_HOME/bin:$PATH
#============


source "`dirname "$0"`"/elasticsearch-env

if [ -z "$ES_TMPDIR" ]; then
  ES_TMPDIR=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.TempDirectory`
fi

ES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.options
JVM_OPTIONS=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_JVM_OPTIONS"`
ES_JAVA_OPTS="${JVM_OPTIONS//\$\{ES_TMPDIR\}/$ES_TMPDIR}"

#=======添加配置解决jdk版本问题=====

if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/opt/elasticsearch-7.4.0/jdk/bin/java"
else
        JAVA=`which java`
fi
#============

# manual parsing to find out, if process should be detached
if ! echo $* | grep -E '(^-d |-d$| -d |--daemonize$|--daemonize )' > /dev/null; then
  exec \
    "$JAVA" \
    $ES_JAVA_OPTS \
    -Des.path.home="$ES_HOME" \
    -Des.path.conf="$ES_PATH_CONF" \
    -Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR" \
    -Des.distribution.type="$ES_DISTRIBUTION_TYPE" \
    -Des.bundled_jdk="$ES_BUNDLED_JDK" \
    -cp "$ES_CLASSPATH" \
    org.elasticsearch.bootstrap.Elasticsearch \
    "$@"
else
  exec \
    "$JAVA" \
    $ES_JAVA_OPTS \
    -Des.path.home="$ES_HOME" \
    -Des.path.conf="$ES_PATH_CONF" \
    -Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR" \
    -Des.distribution.type="$ES_DISTRIBUTION_TYPE" \
    -Des.bundled_jdk="$ES_BUNDLED_JDK" \
    -cp "$ES_CLASSPATH" \
    org.elasticsearch.bootstrap.Elasticsearch \
    "$@" \
    <&- &
  retval=$?
pid=$!
  [ $retval -eq 0 ] || exit $retval
  if [ ! -z "$ES_STARTUP_SLEEP_TIME" ]; then
    sleep $ES_STARTUP_SLEEP_TIME
  fi
  if ! ps -p $pid > /dev/null ; then
    exit 1
  fi
  exit 0
fi

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值