CentOS7下安装ES

CentOS7下安装ES

前期准备

由于ES不能使用root用户来启动,必须使用普通用户来安装启动。这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等。

  1. 先创建一个管理elasticsearch的用户组,这里我用户组叫linkai:

    [root@localhost ~]# groupadd linkai
    
  2. 创建一个普通用户并设置密码,这里我创建的用户叫linkai,然后把用户linkai添加到用户组linkai中:

    [root@localhost ~]# useradd linkai
    [root@localhost ~]# passwd linkai
    Changing password for user linkai.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@localhost ~]# usermod ‐G linkai linkai
    
  3. 创建文件夹es并将owner更改为linkai用户:

    [root@localhost ~]# mkdir ‐p /usr/local/es
    [root@localhost ~]# chown -R linkai /usr/local/es/
    
  4. 为linkai用户设置sudo权限,为了让普通用户有更大的操作权限,我们一般都会给普通用户设置sudo权限,方便普通用户的操作

    [root@localhost ~]# visudo
    

    在这里插入图片描述

  5. 添加成功保存后切换到linkai用户操作

    [root@localhost ~]# su linkai
    [linkai@localhost root]$
    

下载ES并解压

将es的安装包下载到/user/local路径下,然后进行解压,使用linkai用户来执行以下操作:

[linkai@localhost root]$ cd /usr/local/
[linkai@localhost local]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-linux-x86_64.tar.gz
--2021-02-28 18:31:14--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-linux-x86_64.tar.gz
……
[linkai@localhost local]$ tar -zvxf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /usr/local/es/

修改配置文件

修改elasticsearch.yml

进入服务器使用linkai用户来修改配置文件:

[linkai@localhost local]$ cd /usr/local/es/elasticsearch-7.6.1/config/
[linkai@localhost config]$ mkdir -p /usr/local/es/elasticsearch-7.6.1/log
[linkai@localhost config]$ mkdir -p /usr/local/es/elasticsearch-7.6.1/data
[linkai@localhost config]$ rm -rf elasticsearch.yml 
[linkai@localhost config]$ vim elasticsearch.yml 
# 集群名字(自己规定,集群的名字都要保持一致)
cluster.name: linkai-es
# 节点名字
node.name: node1
path.data: /usr/local/es/elasticsearch-7.6.1/data
path.logs: /usr/local/es/elasticsearch-7.6.1/log
network.host: 0.0.0.0
http.port: 9200
# discovery.seed_hosts: ["当前的服务器IP"]
discovery.seed_hosts: XXX.XXX.XXX.XXX
# cluster.initial_master_nodes: ["节点名"]
cluster.initial_master_nodes: node1
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"

修改jvm.option

修改jvm.option配置文件,调整jvm堆内存大小

使用linkai用户执行以下命令调整jvm堆内存大小,每个人根据自己服务器的内存大小来进行调整。

一般默认一个G的大小不是很够用,这里本人改为2G:

[linkai@localhost config]$ vim jvm.options
# 把原来的-Xms1g和-Xmx1g更改为2g
-Xms2g
-Xmx2g

但是后来我的阿里云在安装ES的时候报错,因为我的阿里云内存只有2G,所以:

# 把原来的-Xms1g和-Xmx1g更改为2g
-Xms251m
-Xmx251m

修改系统配置,解决启动时候的问题

由于现在使用普通用户来安装es服务,且es服务对服务器的资源要求比较多,包括内存大小,线程数等。所以我们需要给普通用户解开资源的束缚:

普通用户打开文件的最大数限制

如果遇到问题:

  • 问题错误信息描述:

    max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

说明ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错。执行以下命令解除打开文件数据的限制:

[linkai@localhost config]$ sudo vi /etc/security/limits.conf
[sudo] password for linkai: 
# End of file
# 一般就是在文件的最后添加最后那两行
# 注意*不要去掉
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
* soft nproc 2048
* hard nproc 4096

普通用户启动线程数限制

如果遇到:

  • 问题错误信息描述

    max number of threads [1024] for user [es] likely too low, increase to at least [4096]

原因:无法创建本地线程问题,用户最大可创建线程数太小

解决方案:修改20-nproc.conf 配置文件。

[linkai@localhost config]$ sudo vi /etc/security/limits.d/20-nproc.conf
# 把* soft nproc 1024修改为4096
* soft nproc 4096

普通用户调大虚拟内存

如果是:

  • 错误信息描述:

    max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

需要调大系统的虚拟内存。

报错的原因是最大的虚拟内存太小。

在每次启动机器都手动执行下。

[linkai@localhost config]$ sudo vim /etc/sysctl.conf

追加以下内容:

vm.max_map_count=262144

保存后执行:

[linkai@localhost config]$ sudo sysctl -p

启动ES服务

[linkai@localhost elasticsearch-7.6.1]$ cd /usr/local/es/elasticsearch-7.6.1
[linkai@localhost elasticsearch-7.6.1]$ ./bin/elasticsearch -d

如果还是启动失败则可能:

  • 报错1:OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

    解决:修改jvm.options文件配置,vim /etc/elasticsearch/jvm.options,将-XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC,再重新启动es

  • 报错2:OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed;

    原因是内存不足,可以使用free -h命令一看便知,然后自己再重新修改jvm.options文件配置,按照服务器的情况修改-Xms和-Xmx的内存大小。

如果启动成功了,本机可以访问:

[linkai@local config]$ curl -XGET 'localhost:9200/?pretty'
{
  "name" : "node1",
  "cluster_name" : "linkai-es",
  "cluster_uuid" : "n1rdbkgeTBq-edA_t5T8CQ",
  "version" : {
    "number" : "7.6.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
    "build_date" : "2020-02-29T00:15:25.529771Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

但是别的机器访问不了,首先检查自己的配置文件elasticsearch.yml中network.host属性是不是0.0.0.0,不是就改,如果是,那就是防火墙的问题了,在防火墙添加9200端口:

firewall-cmd --zone=public(作用域) --add-port=9200/tcp(端口和访问类型) --permanent(永久生效)

如果不考虑安全问题的话就一不做二不休,把防火墙关了:

sudo service firewalld stop

然后浏览器输入:http://ip:9200/?pretty,可以访问说明成功。

注意:启动ES的时候出现 Permission denied

原因:当前的用户没有对XX文件或目录的操作权限。

图形化界面客户端Kibana安装

  1. 把Kibana上传到服务器上

  2. 解压

    [linkai@localhost local]$ tar -zvxf kibana-7.6.1-linux-x86_64.tar.gz -C /usr/local/es/
    
  3. 进入/usr/local/es/kibana-X.X.X-linux-x86_64/config目录

  4. 编辑kibana.yml

       server.port: 5601
       # 注意,这个需要写内网ip,如果是阿里云等服务器,也只好写0.0.0.0了
       server.host: "ES服务器IP"
       # 这里是elasticsearch的访问地址
       elasticsearch.hosts: ["http://IP:9200"]
    
  5. 启动Kibana

    [linkai@localhost local]$ cd /usr/local/es/kibana-7.6.1-linux-x86_64/bin
    [linkai@localhost bin]$ ./kibana
    

    或者可以后台启动

    [linkai@localhost bin]$ nohup  ./kibana &
    [1] 4045
    [linkai@localhost bin]$ nohup: ignoring input and appending output to ‘nohup.out’
    
    [linkai@localhost bin]$ tail -f nohup.out
    {"type":"log","@timestamp":"2021-03-29T08:28:24Z","tags":["status","plugin:markdown_vis@7.6.1","info"],"pid":4045,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
    
  6. 访问Kibana

    http://ip:5601/app/kibana
    

    如果可以访问说明启动成功:在这里插入图片描述
    至此,kibana安装成功。使用的话到控制台http://ip:5601/app/kibana#/dev_tools/console就可以使用了

安装IK分词器

  1. 下载Elasticsearch IK分词器:https://github.com/medcl/elasticsearch-analysis-ik/releases

  2. 切换到linkai用户,并在es的安装目录下/plugins创建ik

    [linkai@localhost bin]$ mkdir -p /usr/local/es/elasticsearch-7.6.1/plugins/ik  
    
  3. 将下载的ik分词器上传并解压到该目录

    [linkai@localhost ik]$ unzip  elasticsearch-analysis-ik-7.6.1.zip
    

    然后我需要安装unzip……

    yum install -y unzip zip
    
  4. 然后重启Elasticsearch就ok了。

指定IK分词器作为默认分词器

ES的默认分词设置是standard,这个在中文分词时就比较尴尬了,会单字拆分,比如我搜索关键词“清华大学”,这时候会按“清”,“华”,“大”,“学”去分词,然后搜出来的都是些“清清的河水”,“中华儿女”,“地大物博”,“学而不思则罔”之类的莫名其妙的结果,这里我们就想把这个分词方式修改一下,于是呢,就想到了ik分词器,有两种ik_smart和ik_max_word。

ik_smart会将“清华大学”整个分为一个词,而ik_max_word会将“清华大学”分为“清华大学”,“清华”和“大学”,按需选其中之一就可以了。

修改默认分词方法(这里修改school_index索引库的默认分词为:ik_max_word):

PUT /school_index
{
"settings" : {
"index" : {
"analysis.analyzer.default.type": "ik_max_word"
}
}
}

我们先来使用看看:
在这里插入图片描述
在这里插入图片描述
可以看出,ik_smart会做最粗粒度的拆分,ik_max_word会将文本做最细粒度的拆分,我们使用ik_max_word效果会好一些。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上通过Docker安装Elasticsearch,可以按照以下步骤进行操作: 1. 拉取Elasticsearch镜像。可以使用以下命令拉取指定版本的镜像: ``` docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.0 ``` 2. 运行容器启动Elasticsearch。使用以下命令运行容器,请确保替换掉命令中的`b1179d41a7b4`为实际的镜像ID: ``` docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" b1179d41a7b4 ``` 这样,你就成功在CentOS 7上通过Docker安装Elasticsearch。可以通过访问`http://localhost:9200`来验证Elasticsearch是否正常运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker安装ElasticSearchCentos7机器环境)](https://blog.csdn.net/weixin_41827162/article/details/118436153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [centos7:docker安装Elasticsearch](https://blog.csdn.net/hzblucky1314/article/details/121419857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值