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可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
1月前
|
Linux 网络安全 开发工具
Centos6.5搭建一个简单的vsftpd服务
在CentOS 6.5上配置vsftpd服务器:确保与Win10能互通,更新yum源,安装vsftpd,编辑配置文件禁用匿名访问,重启服务并关闭防火墙。创建新用户和密码,通过FTP在Win10文件管理器中使用实验机IP访问,用创建的用户和密码登录,成功创建远程文件夹,实验机上可见。
42 2
|
1月前
|
网络安全 开发工具
Centos6.5安装配置autofs服务
配置IP地址和挂载yum源后,安装autofs:`yum -y install autofs`。编辑配置文件 `/etc/auto.misc` 和 `/etc/auto.master`,示例中展示了将yum源路径添加到auto.master。关闭防火墙并重启autofs服务以应用更改。
29 2
|
1月前
|
Java Linux Shell
linux自动部署jar包,注册系统服务(基于Centos7)
linux自动部署jar包,注册系统服务(基于Centos7)
153 0
|
1月前
|
运维 监控 Linux
Centos开启snmp服务
Centos开启snmp服务
51 1
|
1月前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
33 1
|
1月前
|
Linux 网络安全 开发工具
Centos6.5安装并配置Telnet服务
该内容是一个关于如何安装配置Telnet服务的教程。首先,通过yum安装vim、xinetd、telnet和telnet-server。接着,修改/etc/xinetd.d/telnet配置文件,将disable改为no,并设置访问限制(如限定特定网段和时间)。关闭防火墙,重启服务。创建测试用户后,分别使用CentOS和Windows的Telnet客户端进行连接测试,显示成功,实验完成。
65 1
|
1月前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
82 3
|
1月前
|
SQL JSON API
ELK技术栈 - Elasticsearch 学习笔记(三)
ELK技术栈 - Elasticsearch 学习笔记(三)
51 0
|
30天前
|
Shell Linux 应用服务中间件
centos系统内容器部署服务访问不到是因为run后面加了bash
centos系统内容器部署服务访问不到是因为run后面加了bash
|
1月前
|
存储 关系型数据库 Linux
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
42 4

热门文章

最新文章