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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文主要讲解 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

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
2月前
|
Java Linux Shell
linux自动部署jar包,注册系统服务(基于Centos7)
linux自动部署jar包,注册系统服务(基于Centos7)
92 0
|
4月前
|
SQL API 索引
Superset对接ElasticSearch服务展示
Superset对接ElasticSearch服务展示
193 2
|
4月前
|
Kubernetes Ubuntu 安全
Linux|科普扫盲帖|配置网络软件源---阿里云镜像仓库服务使用(centos,Ubuntu)
Linux|科普扫盲帖|配置网络软件源---阿里云镜像仓库服务使用(centos,Ubuntu)
583 0
|
5天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
31 3
|
2月前
|
SQL JSON API
ELK技术栈 - Elasticsearch 学习笔记(三)
ELK技术栈 - Elasticsearch 学习笔记(三)
39 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
15 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
10 0
|
3天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
10 0
|
2月前
|
数据可视化 数据挖掘 Linux
如何在CentOS安装DataEase数据分析服务并实现远程访问管理界面
如何在CentOS安装DataEase数据分析服务并实现远程访问管理界面
230 1
|
2月前
|
存储 JSON API
ELK技术栈 - Elasticsearch 学习笔记(二)
ELK技术栈 - Elasticsearch 学习笔记(二)
206 0