在阿里云服务器linux安装es

Posted 黑白客。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在阿里云服务器linux安装es相关的知识,希望对你有一定的参考价值。

1.安装elasticsaerch 需要java的支持

  1. 所以需要先安装jdk环境。我的已经安装配置好了,可以通过下面命令来查看版本java -version
    如果出现版本号 就是成功的。

2.下载安装

我在本地window上到官网下载
通过xshell
1. 下载与解压 https://www.elastic.co/cn/downloads/elasticsearch
2. 进入官网下载页面也是在download页面中,找到【past releases.】表示过去版本,点击进入,如图

3. :我下载的是 elasticsearch-6.5.4.tar。**(注意后缀名)**然后通过xftp传输到linu服务器上home目录

3.linux运行权限

  1. 官方文档上说ElasticSearch不适合在root管理员帐号下运行,所以要先建立一个账号专门运行ElasticSearch。以下是创建esUser组和其下用户esUser。
[root@izwz9eu3mkqq1njlkrfhc8z ~]# groupadd esUser
[root@izwz9eu3mkqq1njlkrfhc8z ~]# useradd -g esUser esUser
[root@izwz9eu3mkqq1njlkrfhc8z ~]# passwd esUser
  1. 如果使用root账号启动会报一下错误

Exception in thread “main” java.nio.file.AccessDeniedException: /root/home/searchengine/elasticsearch-6.2.4/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)

错误原因:使用非 root用户启动ES,而该用户的文件权限不足而被拒绝执行。
解决方法: chown -R 用户名:用户名 文件(目录)名

例如: chown -R esUser:esUser elasticsaerch
再启动ES就正常了。

  1. 修改limits.conf与sysctl.conf文件的系统参数。
    a、编辑 limits.conf 文件并添加内容:
1 [root@izwz9eu3mkqq1njlkrfhc8z ~]# vim /etc/security/limits.confroot
root soft nofile 655352
root hard nofile 655353

4 #esUser
5 esUser soft nofile 65536
6 esUser hard nofile 65536
7
8 * soft nofile 65535
9 * hard nofile 65535
  1. 若没有进行这一步操作,或者给的权限不够 会报一下错误
    max file descriptors [65535] for elasticsearch process is too low
    elasticsearch安装后启动时候,遇到此问题问题翻译过来就是:
    elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;

解决办法:
#切换到root用户修改
vim /etc/security/limits.conf
在最后面追加下面内容

esUser soft nofile 65536
esUser hard nofile 65536

再启动ES的用户

b、编辑 sysctl.conf 文件并添加内容,因为max virtual memory areas vm.max_map_count increase to at least [262144]:

[root@izwz9eu3mkqq1njlkrfhc8z ~]# vim /etc/sysctl.conf
vm.max_map_count=262144
#最后执行如下命令:
sysctl -p

4.服务器配置

  1. 需要登录到阿里云管理控制台,在安全组规则中添加上述的 9200/9200 5601/5601 两个端口

5.解压与elasticsearch配置

 tar -xzf elasticsearch-6.5.4.tar.gz  -C /home/jdk1.8.0_20/elasticsearch/

(注意 这里的-C 必须大写)如果没有大写,会报一下错误
出现了 tar: You may not specify more than one -Acdtrux’ or–test-label’ optionTry tar --help’ ortar --usage’ for more information.
这个问题。解决方法就是 把-C写成了小写的-c

a、解压完成后,进入config目录,编辑elasticsearch.yml文件。该文件配置需要注意!!!将下述代码中标红“你的IP地址”更改为 自己的IP地址,添加配置时需注意配置文件":"后要有空格。

#这是集群名字,起名为elasticsearch
#es启动后会将具有相同集群名字的节点放到一个集群下。
cluster.name:  elasticsearch
#
#节点名字。
node.name: "node1"
#
# 数据存储位置,配置之后该目录会自动生成
path.data: /usr/java/elasticsearch/elasticsearch-6.3.2/data
#
# 日志文件的路径,配置之后该目录会自动生成
path.logs: /usr/java/elasticsearch/elasticsearch-6.3.2/logs
#
#
#设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0
#network.bind_host: xxxxxx
#
#设置其它节点和该节点交互的ip地址,如果不设置它会自动设置,值必须是个真实的ip地址
#network.publish_host: xxxxxx
#
#同时设置bind_host和publish_host上面两个参数,该地址为默认地址
network.host: 0.0.0.0
#
#
# 设置节点间交互的tcp端口,默认是9300
#transport.tcp.port: 9300
#
# 设置是否压缩tcp传输时的数据,默认为false,不压缩
transport.tcp.compress: true
#
# 设置对外服务的http端口,默认为9200
#http.port: 9200
#
# 使用http协议对外提供服务,默认为true,开启
#http.enabled: false
#
#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"]
#这是一个集群中的主节点的初始列表,当节点(主节点或者数据节点)启动时使用这个列表进行探测
discovery.zen.ping.unicast.hosts: ["你的IP地址"]
#
#指定集群中的节点中有几个有master资格的节点。
#对于大集群可以写(2-4)。
discovery.zen.minimum_master_nodes: 1
#解决head的集群健康值问题,后续会安装head插件
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

b、若服务器运行内存不大,也可能还有一个错误是关于Jvm内存分配的问题,需要修改Jvm配置。如下所示。
vim 安装路径 /config/jvm.options

6.启动与测试

接下来我们就可以启动我们的单节点集群:

 ./elasticsearch

上述安装配置均是在root用户下进行的,下面将切换至esUser用户,来启动ElasticSearch,即运行bin目录下的elasticsearch文件,若看到[node1] started表示启动成功。

以上是关于在阿里云服务器linux安装es的主要内容,如果未能解决你的问题,请参考以下文章

在阿里云Linux服务器上安装MySQL

阿里云linux 怎么安装curl

赵弘扬:阿里云Elasticsearch技术演进之路

尝试在阿里云的Linux服务器器上安装拥有图形界面的Pycharm

如何查看阿里云linux安装的软件

阿里云服务器linux系统上安装git版本控制系统