目录

ElasticSarch安装

一、上传安装包及新建用户

1.创建 elasticsearch 用户组 

2.创建用户

3.将用户 添加到 elasticsearch 用户组

4.可以给我们新加的用户更多操作权限,设置sudo权限

5.切换成我们刚创建的用户,然后进行es的安装

6.解压我们刚上传的安装包

二、修改配置

1.修改elasticsearch.yml

2.修改 limits.conf 配置

3.修改 sysctl.conf 配置

4.修改最大线程数

三、启动成功,验证一下

Kibana安装

一、上传安装包,解压

二、修改配置

ik分词器

一、上传安装包,解压

二、重启ES


ElasticSarch安装

官方网站:https://www.elastic.co/cn/

官方下载地址:https://www.elastic.co/cn/start

有一说一,这个外网访问起来着实着急啊。可以翻个墙下载一下安装包。

我下载的版本是7.6.1的版本

注:我的Linux环境是CentOS7的

       安装es是需要jdk的环境的,我的是jdk1.8。

一、上传安装包及新建用户

新建一个目录,然后将下载的安装包上传至对于目录下

新建一个目录:mkdir -p /usr/local/es

将我们的es包拷贝至新建的es目录下

由于ElasticSearch不能用root用户操作,需要建一个子用户

1.创建 elasticsearch 用户组 

groupadd elasticsearch

2.创建用户

useradd cx

passwd cx

3.将用户 添加到 elasticsearch 用户组

usermod -G elasticsearch cx

给用户操作权限

chown -R cx /usr/local/es

4.可以给我们新加的用户更多操作权限,设置sudo权限

输入visudo 命令,进行编辑,如下cx是我新加的用户

5.切换成我们刚创建的用户,然后进行es的安装

6.解压我们刚上传的安装包

 

二、修改配置

1.修改elasticsearch.yml

修改配置文件,config/elasticsearch.yml配置如下

cluster.name: cx-es
node.name: node-1
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"]
cluster.initial_master_nodes: ["node-1"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"

条件允许的话,也可以把这个整jvm堆内存大小配置调大一点,修改jvm.option配置文件,根据自己服务器配置等调整

vi jvm.options

‐Xms1g
‐Xmx1g

个人遇到的坑:

一直在报这个错误
[cx@localhost elasticsearch-7.6.1]$ ./bin/elasticsearch
future versions of Elasticsearch will require Java 11; your Java version from [/java/jdk1.8.0_271/jre] does not meet this requirement
Exception in thread "main" 2021-03-07 23:47:22,616 main ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];
	at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1097)
	at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1070)
	at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:83)
	at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:100)
	at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:91)
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
	at org.elasticsearch.cli.Command.main(Command.java:90)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]]
	at org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken(XContentParserUtils.java:78)
	at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:617)
	at org.elasticsearch.common.settings.Settings.access$400(Settings.java:82)
	at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1093)
	... 9 more

研究发现,是elasticsearch.yml文件中,key和value之间需要加空格。

 

2.修改 limits.conf 配置

elasticsearch.yml配置完后启动,发现程序没能够正常启动。控制台提速错误信息如下:

[2021-03-07T23:56:48,578][INFO ][o.e.n.Node               ] [node-1] initialized
[2021-03-07T23:56:48,578][INFO ][o.e.n.Node               ] [node-1] starting ...
[2021-03-07T23:56:48,704][INFO ][o.e.t.TransportService   ] [node-1] publish_address {192.168.75.100:9300}, bound_addresses {[::]:9300}
[2021-03-07T23:56:48,927][INFO ][o.e.b.BootstrapChecks    ] [node-1] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/es/elasticsearch-7.6.1/log/cx-es.log
[2021-03-07T23:56:48,935][INFO ][o.e.n.Node               ] [node-1] stopping ...
[2021-03-07T23:56:48,952][INFO ][o.e.n.Node               ] [node-1] stopped
[2021-03-07T23:56:48,953][INFO ][o.e.n.Node               ] [node-1] closing ...
[2021-03-07T23:56:48,968][INFO ][o.e.n.Node               ] [node-1] closed

需修改配置:

问题1:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

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

处理:sudo vi /etc/security/limits.conf

添加如下内容: 注意*不要去掉了

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

注:有个巨坑的点,就是改完之后启动还是会报这个错,需要用户重新登陆再重启即可

 

3.修改 sysctl.conf 配置

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

调大系统的虚拟内存

原因:最大虚拟内存太小

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

处理:

sudo vi /etc/sysctl.conf

添加如下内容

vm.max_map_count=262145

保存后执行(刷新):sudo sysctl -p

 

4.修改最大线程数

当上面的配置都配置完后,我以为能够正常的启动了。结果很不出意外的没有启动成功,新的错误出现了,如下:

[2021-03-09T23:32:14,098][INFO ][o.e.b.BootstrapChecks    ] [node-2] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max number of threads [1024] for user [cx] is too low, increase to at least [4096]
ERROR: Elasticsearch did not exit normally - check the logs at /usr/local/es/elasticsearch-7.6.1/log/cx-es.log
[2021-03-09T23:32:14,107][INFO ][o.e.n.Node               ] [node-2] stopping …

问题:

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

无法创建本地线程问题,用户最大可创建线程数太小解决方案:修改90-nproc.conf(Centos6)/20‐nproc.conf(Centos7) 配置文件

处理:

修改普通用户可以创建的最大线程数

sudo vi /etc/security/limits.d/20‐nproc.conf

* soft nproc 1024#修改为

* soft nproc 4096

改完之后启动还是会报这个错,需要用户重新登陆再重启即可

 

三、启动成功,验证一下

配置完后再次启动es,启动成功,浏览器请求 http:ip:port,返回如下信息说明elasticserach安装成功。

注:记得开放端口,或关闭防火墙也行

{
  "name" : "node-1",
  "cluster_name" : "cx-es",
  "cluster_uuid" : "XJEPVaRtS7S673iARDlhDw",
  "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单机版安装成功。

后台启动:

1:nohup /usr/local/es/elasticsearch‐7.6.1/bin/elasticsearch 2>&1 &

2: ./elasticsearch -d       //-d表示后台启动

 

 

Kibana安装

由于我的ElasticSearch安装的是7.6.1版本,则我的Kibana安装的也是7.6.1版本

在ES的官方网站可以下载相应的安装包。

一、上传安装包,解压

将压缩包上传至相应的目录中。我这里放的是跟我es在同一个目录。

tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz 进行解压,

然后通过mv 命令进行重命名,这一步随意

二、修改配置

1.修改 kibana.yml 配置

进入config目录,编辑kibana.yml

vi kibana.yml

主要修改这三个参数:

server.port: 5601

server.host: "服务器IP"

elasticsearch.hosts: ["http://IP:9200"]  # 这里是elasticsearch的访问地址

这就已经配置完毕了,然后进入到bin目录下,nohup ./kibana & 进行后台启动

然后通过ip:5601即可访问(记得开放相应端口哈)

 

ik分词器

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

我的ik分词器也是7.6.1版本,与ElaticSearch版本保持一致的

一、上传安装包,解压

在/elasticsearch-7.6.1/plugins/的目录下新建ik文件夹

mkdir -p /usr/local/es/elasticsearch-7.6.1/plugins/ik

然后将ik分词器的zip包上次至该目录下,进行解压。

unzip elasticsearch-analysis-ik-7.6.1.zip

二、重启ES

重启es,ik分词器即生效。

 

至此,我们的单机版ElasticSarch、Kibana、IK分词器已经安装成功。

集群搭建:ElasticSearch集群搭建


版权声明:本文为Me_xuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Me_xuan/article/details/114608076