Elasticsearch学习笔记之CentOS6.5搭建Elasticsearch6.2.2服务(Dean)

简介: 本文主要讲解 Elasticsearch6.2.2的安装过程。 Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎。 它能从项目一开始就赋予你的数据以搜索、分析和探索的能力,可用于实现全文搜索和实时数据统计。

本文主要讲解 Elasticsearch6.2.2的安装过程。

Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎。 它能从项目一开始就赋予你的数据以搜索、分析和探索的能力,可用于实现全文搜索和实时数据统计。

1.检查Java版本,目前版本 6.9 的可安装版需要Java 8

[ home]$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)

2.安装ES

打开ES官网https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html

A-下载es

[root@  home]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz

B-解压tar

[root@ home]# tar -xzf elasticsearch-6.2.2.tar.gz
[root@ elasticsearch-6.2.2]# ls
bin  config  lib  LICENSE.txt  logs  modules  NOTICE.txt  plugins  README.textile

3.创建ES用户

默认ES 是不允许root用户运行的,所以我们需要创建新的用户。

[root@elasticsearch-6.2.2]# groupadd es
[root@elasticsearch-6.2.2]# useradd es -g es
[root@elasticsearch-6.2.2]# passwd es
更改用户 es 的密码 。
新的 密码:
无效的密码: 它基于字典单词
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新

4.修改ES文件的权限

[root@ elasticsearch-6.2.2]# cd ..
[root@ home]# ls
[root@ home]# chown -R es:es elasticsearch-6.2.2
[root@ home]# su es
[es@ home]$ cd elasticsearch-6.2.2

5.启动ES

[es@ elasticsearch-6.2.2]$ ./bin/elasticsearch &
[1] 23167
[es@ elasticsearch-6.2.2]$ [2019-10-29T11:28:30,316][WARN ][o.e.b.JNANatives         ] unable to install syscall filter: 
java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
    at org.elasticsearch.bootstrap.SystemCallFilter.linuxImpl(SystemCallFilter.java:341) ~[elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.SystemCallFilter.init(SystemCallFilter.java:616) ~[elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.JNANatives.tryInstallSystemCallFilter(JNANatives.java:258) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Natives.tryInstallSystemCallFilter(Natives.java:113) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:110) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-6.2.2.jar:6.2.2]
    at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) [elasticsearch-6.2.2.jar:6.2.2]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) [elasticsearch-6.2.2.jar:6.2.2]
[2019-10-29T11:28:30,511][INFO ][o.e.n.Node               ] [] initializing ...
[2019-10-29T11:28:30,626][INFO ][o.e.e.NodeEnvironment    ] [zru1FRz] using [1] data paths, mounts [[/ (rootfs)]], net usable_space [166.9gb], net total_space [196.7gb], types [rootfs]
[2019-10-29T11:28:30,626][INFO ][o.e.e.NodeEnvironment    ] [zru1FRz] heap size [1007.3mb], compressed ordinary object pointers [true]
[2019-10-29T11:28:30,628][INFO ][o.e.n.Node               ] node name [zru1FRz] derived from node ID [zru1FRz6R6GMKJkXYUYjPQ]; set [node.name] to override
[2019-10-29T11:28:30,628][INFO ][o.e.n.Node               ] version[6.2.2], pid[23167], build[10b1edd/2018-02-16T19:01:30.685723Z], OS[Linux/2.6.32-696.16.1.el6.x86_64/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_171/25.171-b10]
[2019-10-29T11:28:30,628][INFO ][o.e.n.Node               ] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch.2rtu8FfL, -XX:+HeapDumpOnOutOfMemoryError, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Des.path.home=/home/elasticsearch-6.2.2, -Des.path.conf=/home/elasticsearch-6.2.2/config]
[2019-10-29T11:28:31,527][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [aggs-matrix-stats]
[2019-10-29T11:28:31,527][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [analysis-common]
[2019-10-29T11:28:31,527][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [ingest-common]
[2019-10-29T11:28:31,527][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [lang-expression]
[2019-10-29T11:28:31,528][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [lang-mustache]
[2019-10-29T11:28:31,528][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [lang-painless]
[2019-10-29T11:28:31,528][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [mapper-extras]
[2019-10-29T11:28:31,528][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [parent-join]
[2019-10-29T11:28:31,529][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [percolator]
[2019-10-29T11:28:31,529][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [rank-eval]
[2019-10-29T11:28:31,529][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [reindex]
[2019-10-29T11:28:31,529][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [repository-url]
[2019-10-29T11:28:31,529][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [transport-netty4]
[2019-10-29T11:28:31,529][INFO ][o.e.p.PluginsService     ] [zru1FRz] loaded module [tribe]
[2019-10-29T11:28:31,530][INFO ][o.e.p.PluginsService     ] [zru1FRz] no plugins loaded
[2019-10-29T11:28:34,567][INFO ][o.e.d.DiscoveryModule    ] [zru1FRz] using discovery type [zen]
[2019-10-29T11:28:35,174][INFO ][o.e.n.Node               ] initialized
[2019-10-29T11:28:35,174][INFO ][o.e.n.Node               ] [zru1FRz] starting ...
[2019-10-29T11:28:35,347][INFO ][o.e.t.TransportService   ] [zru1FRz] publish_address {127.0.0.1:9300}, bound_addresses {127.0.0.1:9300}
[2019-10-29T11:28:35,366][WARN ][o.e.b.BootstrapChecks    ] [zru1FRz] max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2019-10-29T11:28:35,367][WARN ][o.e.b.BootstrapChecks    ] [zru1FRz] max number of threads [1024] for user [es] is too low, increase to at least [4096]
[2019-10-29T11:28:35,367][WARN ][o.e.b.BootstrapChecks    ] [zru1FRz] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2019-10-29T11:28:35,367][WARN ][o.e.b.BootstrapChecks    ] [zru1FRz] system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[2019-10-29T11:28:38,445][INFO ][o.e.c.s.MasterService    ] [zru1FRz] zen-disco-elected-as-master ([0] nodes joined), reason: new_master {zru1FRz}{zru1FRz6R6GMKJkXYUYjPQ}{W_tsMsdfRMSszUPdBQQGHw}{127.0.0.1}{127.0.0.1:9300}
[2019-10-29T11:28:38,452][INFO ][o.e.c.s.ClusterApplierService] [zru1FRz] new_master {zru1FRz}{zru1FRz6R6GMKJkXYUYjPQ}{W_tsMsdfRMSszUPdBQQGHw}{127.0.0.1}{127.0.0.1:9300}, reason: apply cluster state (from master [master {zru1FRz}{zru1FRz6R6GMKJkXYUYjPQ}{W_tsMsdfRMSszUPdBQQGHw}{127.0.0.1}{127.0.0.1:9300} committed version [1] source [zen-disco-elected-as-master ([0] nodes joined)]])
[2019-10-29T11:28:38,500][INFO ][o.e.h.n.Netty4HttpServerTransport] [zru1FRz] publish_address {127.0.0.1:9200}, bound_addresses {127.0.0.1:9200}
[2019-10-29T11:28:38,501][INFO ][o.e.n.Node               ] [zru1FRz] started
[2019-10-29T11:28:38,509][INFO ][o.e.g.GatewayService     ] [zru1FRz] recovered [0] indices into cluster_state

验证一下服务是否正常

[es@ elasticsearch-6.2.2]$ curl -i "http://localhost:9200"
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 435
{
  "name" : "zru1FRz",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "I4jRESDLSnKgGzfw845C6w",
  "version" : {
    "number" : "6.2.2",
    "build_hash" : "10b1edd",
    "build_date" : "2018-02-16T19:01:30.685723Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

6.外网访问权限

此时ES还是内网可访问,外网访问需要修改配置文件elasticsearch.yml

[es@  elasticsearch-6.2.2]$ curl -i "http://xx.xx.xx.xx:9200"
curl: (7) couldn't connect to host

7.先杀死ES进程

[es@ elasticsearch-6.2.2]$ ps -ef | grep elastic
[es@ elasticsearch-6.2.2]$ kill -9 23616

8.修改配置文件elasticsearch.yml[/color]

[es@ elasticsearch-6.2.2]$ vim config/elasticsearch.yml
network.host: 0.0.0.0  #主机地址,这里写本机IP
http.port: 9200 #端口

9.重新运行ES会报错[/color]

[2019-10-29T12:46:29,281][INFO ][o.e.n.Node               ] initialized
[2019-10-29T12:46:29,281][INFO ][o.e.n.Node               ] [zru1FRz] starting ...
[2019-10-29T12:46:29,453][INFO ][o.e.t.TransportService   ] [zru1FRz] publish_address {127.0.0.1:9300}, bound_addresses {0.0.0.0:9300}
[2019-10-29T12:46:29,464][INFO ][o.e.b.BootstrapChecks    ] [zru1FRz] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [4] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[2019-10-29T12:46:29,474][INFO ][o.e.n.Node               ] [zru1FRz] stopping ...
[2019-10-29T12:46:29,512][INFO ][o.e.n.Node               ] [zru1FRz] stopped
[2019-10-29T12:46:29,513][INFO ][o.e.n.Node               ] [zru1FRz] closing ...
[2019-10-29T12:46:29,529][INFO ][o.e.n.Node               ] [zru1FRz] closed

按照错误提示信息改上面描述的四点就行,注意要用ROOT身份修改配置文件,执行。

1.[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

修改
编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登录用户,才会生效

[root@  home]# sudo vim /etc/security/limits.conf
最后面加上
* soft nofile 65536
* hard nofile 65536

2.[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]

[root@  home]# vim /etc/security/limits.d/90-nproc.conf 
soft nproc 2048[/code]
我的是1024全部改成4096

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

[root@ home]# sudo vim /etc/sysctl.conf 
编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=655360
保存后,执行:
sysctl -p
重新启动,成功。

4.[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk[/color]

Centos6不支持SecComp,而ES6.2.0默认bootstrap.system_call_filter为true
禁用:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

[es@ elasticsearch-6.2.2]$ vim config/elasticsearch.yml 
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false

10.修改完重启ES即可

[es@ elasticsearch-6.2.2]$ ./bin/elasticsearch &

测试IP访问:

HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 435

{
  "name" : "zru1FRz",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "I4jRESDLSnKgGzfw845C6w",
  "version" : {
    "number" : "6.2.2",
    "build_hash" : "10b1edd",
    "build_date" : "2018-02-16T19:01:30.685723Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

11.安装中文分词插件,直接下载解压到plugins文件夹下,注意解压完吧压缩包删掉

[es@iZbp10nfd0w1yzy8wzol8bZ elasticsearch-6.2.2]$ cd plugins/
[es@iZbp10nfd0w1yzy8wzol8bZ plugins]$ wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip
[es@  plugins]$ unzip elasticsearch-analysis-ik-6.2.2.zip 
[es@iZbp10nfd0w1yzy8wzol8bZ plugins]$ rm -r elasticsearch-analysis-ik-6.2.2.zip 

最后记得重启ES

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
Linux 网络安全 数据安全/隐私保护
centos开启samba服务
通过以上步骤,您已成功在CentOS系统上安装、配置并启动了Samba服务,并且可以通过Windows或Linux客户端访问共享目录。Samba为跨平台文件共享提供了强大的支持,配置灵活且易于管理。无论是简单的家庭网络共享还是企业级文件服务器,Samba都能胜任。通过合理的配置和访问控制,您可以确保文件共享的安全性和便利性。
1205 74
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
351 5
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
930 1
|
12月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1513 25
|
存储 API 数据库
检索服务elasticsearch索引(Index)
【8月更文挑战第23天】
858 6
|
存储 负载均衡 监控
检索服务elasticsearch节点(Node)
【8月更文挑战第23天】
358 5
|
存储 监控 负载均衡
检索服务elasticsearch集群(Cluster)
【8月更文挑战第23天】
238 3
|
存储 机器学习/深度学习 人工智能
Elasticsearch:使用阿里云 AI 服务进行向量化和重新排名
本文介绍了如何将阿里云 AI 功能与 Elasticsearch 集成,以提高语义搜索的相关性。
789 0
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
460 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
1229 2