CentOS7中安装ElasticSearch

CentOS7中安装ElasticSearch

[toc]

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。接下来将记录一下如何在Linux服务器上安装Elasticsearch。

检测是否安装了Elasticsearch

ps aux|grep elasticsearch

安装JDK

安装JDK具体操作,请点击链接

下载java

https://www.oracle.com/index.html

地址:https://www.oracle.com/java/technologies/javase-jdk15-downloads.html

https://java.com/en/download/linux_manual.jsp

下载版本: jre-8u271-linux-x64.tar.gz

下载地址:https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/

配置

vi /etc/profile

在末尾添加如下代码:
需要设置权限
chmod -R 777 /mnt/humx/tools/java/jdk8u275-b01

#java
export JAVA_HOME=/mnt/humx/tools/java/jdk8u275-b01
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


退出编辑器,使用如下命令使环境变量生效

source /etc/profile

测试是否安装成功

java -version

openjdk version "1.8.0_275"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.275-b01, mixed mode)
[root@iZwz9flnbsu8mylcqnd3l4Z java]# vim /etc/profile


下载Elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.tar.gz

或者从官网中下载相应的压缩包,使用ftp上传至服务器进行压缩安装:\

下载地址:https://www.elastic.co/downloads/elasticsearch\

这里选择6.0版本的Elasticsearch,选择对应的安装包进行下载

解压安装Elasticsearch

解压到当前目录

tar -zxvf elasticsearch-6.0.0.tar.gz

安装,将Elasticsearch移动到/usr/local/elasticsearch目录之中

mv elasticsearch-6.0.0 /usr/local/elasticsearch

修改配置文件

进入/usr/local/elasticsearch/config目录,使用vi编辑器

vi elasticsearch.yml

取消如下注释,并修改为当前主机地址:

network.host: 192.168.0.156
discovery.zen.ping.unicast.hosts: ["192.168.0.156"]

使用vi编辑器,修改/etc/sysctl.conf文件,添加如下代码(若无将会出现下面常见问题2):

vm.max_map_count=262144

退出保存后执行如下命令:

sysctl -p

使用vi编辑器,修改/etc/security/limits.conf文件,在文件末尾添加如下代码(若无将会出现下面常见问题3):

python为登录服务器的用户名

python soft nofile 65536
python hard nofile 65536
python soft nproc  4096
python hard nproc  4096

或者

* soft memlock unlimited
* hard memlock unlimited

值得注意的是,python为登录的用户名。修改退出保存之后,切记需要退出重新登录,配置才能生效!!!

启动Elasticsearch

进入/usr/local/elasticsearch目录之中,输入以下命令,开始Elasticsearch服务:

前台启动 ./bin/elasticsearch
后台启动 ./bin/elasticsearch -d

测试一下:

curl -XGET 'http://0.0.0.0:9200/'

出现以下代码,就表示安装完成了:

{
  "name": "bWU0DBI",
  "cluster_name": "elasticsearch",
  "cluster_uuid": "-sm1xR7iQsG-SczdgfROSw",
  "version": {
    "number": "6.0.0",
    "build_hash": "8f0685b",
    "build_date": "2017-11-10T18:41:22.859Z",
    "build_snapshot": false,
    "lucene_version": "7.0.1",
    "minimum_wire_compatibility_version": "5.6.0",
    "minimum_index_compatibility_version": "5.0.0"
  },
  "tagline": "You Know, for Search"
}

常见问题

问题1:org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

解决:es不允许以root用户运行,需要单独创建用户;Elasticsearch版本> = 5.0.0时,是不可用超级管理员运行Elasticsearch的,退出管理员账号即可

groupadd es
useradd es -g es
chown -R es:es elasticsearch-6.5.4
然后切换至es用户,启动
su es
./bin/elasticsearch

问题2: max virutal memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方案,请看上面修改配置文件第2项

问题3: max number of threads [3750] for user [xxx] is too low, increase to at least [4096]

在网上找到的答案都是修改/etc/security/limits.d/90-nproc.conf文件,可是我发现我系统中根本不存在此文件!!!后又请教高人朋友,说是可以修改/etc/security/limits.conf文件,修改发现之后也根本不管用,原来修改该文件之后需要退出重新登录一下才管用。具体修改配置,请看修改配置文件第3项

问题4: OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

解决:config/jvm.optipons配置文件,默认jvm内存时1g,而当前机器不够1g,可以修改小一点,个人学习用可以修改成 128m

-Xms128m -Xmx128m

问题5: OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N

解决:config/jvm.optipons配置文件添加 -XX:-AssumeMP

问题6:远程访问 (rds需要设置白名单 9200端口通顺) 可以修改 Elastic 安装目录的config/elasticsearch.yml文件,去掉network.host的注释,将它的值改成0.0.0.0,设成0.0.0.0让任何人都可以访问。线上服务不要这样设置,要设成具体的 IP然后重新启动 Elastic。

network.host: 0.0.0.0 浏览器访问 xxxxx:9200

问题7 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

先要切换到root用户

然后可以执行以下命令,设置 vm.max_map_count ,但是重启后又会恢复为原值。
sysctl -w vm.max_map_count=262144
持久性的做法是在 /etc/sysctl.conf 文件中修改 vm.max_map_count 参数:

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

胡梦旭博客
请先登录后发表评论
  • latest comments
  • 总共0条评论