Elasticsearch安装

一、说明

  • 安装Elasticsearch 一定要注意版本的匹配,
1、安装Elasticsearch准备

1、Elasticsearch 简介
2、历史版本下载
3、本例子使用6.7.0
4、先安装分词器在进行Elasticsearch的安装。
5、简单步骤:解压 - 将分词器放在插件目录下 - 修改配置文件 -启动Elasticsearch

2、安装Elasticsearch-head-master准备

1、Elasticsearch-head-master Github地址
直接取主干clone最新代码即可。
2、Elasticsearch安装

3、安装elasticsearch-分词器准备

1、 分词器6.7.0安装链接
2、安装方法a、
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.7.0/elasticsearch-analysis-ik-6.7.0.zip
b、离线安装直接下载然后解压后上传到相应目录下,这个也很快。

  • 下载解压后的分词器目录Elasticsearch安装
  • Elasticsearch 的插件目录
    Elasticsearch安装
  • 新建分词器插件文件夹Elasticsearch安装
  • 将分词器的文件粘贴到插件目录下Elasticsearch安装

二、详细安装

1、Elasticsearch部分
  • 根据 一中的1部分进行
  • 编辑:es/config/elasticearch.yml 插入,解决跨域问题
    http.cors.enabled: true
    http.cors.allow-origin: “*”

1、 wget xxx.tar.gz 使用该命令从网上下载,或者直接自己去一中1部分的地址下载相应的版本上传到服务器。
2、tar -vxf xxx.tar.gz 进行解压 上一步下载的压缩文件,【也可以自己解压后直接上传都可以。】
3、./bin/elasticsearch 直接启动
这个地方我们会遇到这个报错
Elasticsearch安装
文字信息
[2019-12-13T12:45:00,372][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [unknown] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.7.0.jar:6.7.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.7.0.jar:6.7.0]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.7.0.jar:6.7.0]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.7.0.jar:6.7.0]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.7.0.jar:6.7.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.7.0.jar:6.7.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.7.0.jar:6.7.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.7.0.jar:6.7.0]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.7.0.jar:6.7.0]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.7.0.jar:6.7.0]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.7.0.jar:6.7.0]
… 6 more
这个是因为为了安全不允许在root用户下启动Elasticsearch
所以我们需要未Elasticsearch 创建一个启动的用户
groupadd “你的组名” 创建组
useradd “你的用户名” 创建用户testuser
passwd “你的用户密码” 给已创建的用户testuser设置密码
然后将 root下该文件的操作权限给你新建的用户
使用如下命令:
chown -R “用户名”:“组名” “文件夹名” 如: chown -R esusername:esgroup elasticsearch-6.7.0
不授权会报下面的错误
Elasticsearch安装
Exception in thread “main” java.nio.file.AccessDeniedException: /data/es/elasticsearch-6.7.0/config/jvm.options
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
at java.nio.file.Files.newInputStream(Files.java:152)
at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:60)
使用 su “用户名” 切换目录

然后可以愉快的启动了。。。。。。。。。。。。。。。。。。。。。。。。。。。
4、./bin/elasticsearch -d 后台启动,【关闭跳板机或者关闭服务器后也可以访问】。

  • 这3、4两个命令主要是执行下图红色文件。 Elasticsearch安装
    5、jps 检查是否启动 可以使用 kill -9 xxx (jps得结果中有xxx) 结束进程。
    6、第一次我们可以正常启动,但是此时的端口号是9200, ip是120.0.0.1 ,所以我们可以通过修改elasticsearch.yml文件来修改端口号和ip
    Elasticsearch安装
    Elasticsearch安装
    7、 修改之后重新启动可能会报错【取决于服务器的配置】
    bootstrap checks failed bootstrap checks failed
    如果报这个错的话根据下图修改
    Elasticsearch安装
  • 懒人走这
    编辑 /etc/security/limits.conf,追加以下内容;
  • soft nofile 65536
  • hard nofile 65536
    此文件修改后需要重新登录用户,才会生效
    编辑 /etc/sysctl.conf,追加以下内容:
    vm.max_map_count=655360
    保存后,执行:
    sysctl -p
    重新启动,成功。

8、建议后台启动 使用 -d命令 ./bin/elasticsearch -d

2、Elasticsearch-head-master部分

1、安装根据git上的就可以

+主要问题解决

1、如下图:
Elasticsearch安装
这个是没有安装 grunt命令 ,使用 npm install -g grunt-cli 进行安装。
Elasticsearch安装
2、输入grunt -version 检查安装是否成功。
执行npm run start 报错如下:
Elasticsearch安装
这个我们需要根据github的流程走,只需要安装node就行
npm install

三、收尾工作

1、对外暴露我们的端口【防火墙会禁用端口所以我们需要自己开启】

a、 # 查询端口是否开放
firewall-cmd --query-port=“port”/tcp 如 : firewall-cmd --query-port=8080/tcp
b、# 开放6369端口
firewall-cmd --permanent --add-port=8080/tcp
c、#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

四、验收

1、验收Elasticsearch
Elasticsearch安装
2、验收Elasticsearch-head-master
Elasticsearch安装