elasticsearch6.5.x-centos6
elasticsearch 和 关系型数据库中的类比
es ====== RDBMS index ----- database type ------ table document ---- row field ----- field
elasticsearch 集群概念介绍
-
Node: 单个装有elasticsearch服务并且提供故障转移和扩展的服务器
-
cluster: 一个集群就是由一个或多个node组织在一起,共同工作,共同分享整个数据具有负载功能的服务器群。
-
Document :一个文档是一个可以被索引的基础信息单元
-
Index : 索引就是一个拥有几分相似特征的文档的集合
-
Type : 一个索引中,你可以定义一种或多种类型
-
Field : Field是elasticsearch的最小单位,相当于数据的某一列。
-
shards: elasticsearch将索引分成若干份,每个部分就是一个shards。
-
Replicas :Replicas 是索引一份或者多分拷贝。
RESTfull API
GET 用来获取资源
POST 用来新建资源,也可以用于更新资源
PUT 用于更新资源
DELETE 用于删除资源
curl 命令的简单使用
# 访问一个网页
curl www.baidu.com
# 将响应的内容保存到指定文件中
curl -o test.html www.baidu.com
# 显示响应头的信息
curl -i www.baidu.com
# 显示HTTP的通信过程
curl -v www.baidu.com
# 执行 PUT/POST/GET/DELETE 操作
curl -X GET/POST/PUT/DELETE url
elasticsearch 6 on centos6 安装部署
-
安装java8
-
直接解压执行
# 启动
bin/elasticsearch
# 后台启动
bin/elasticsearch -d
# 测试是否安装成功, 有数据返回表示安装成功
curl localhost:9200
-
配置elasticsearch的远程访问
/opt/modules/elasticsearch-6.5.0/config
vim elasticsearch.yml
# 修改主机地址,配置任何ip都可以访问
network.host
-
配置Linux
vim /etc/sysctl.conf
在后面追加
# elasticsearch config
vm.max_map_count=655360
修改完后需要立即生效一下,执行下面的命令
/sbin/sysctl -p
vim /etc/security/limits.d/test-limits.conf
添加
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
vim /etc/security/limits.conf
# 在最后面追加下面内容
*** hard nofile 65536
*** soft nofile 65536
*** soft nproc 4096
*** soft nproc 4096
# *** 是启动ES的用户
## 最后在浏览器中验证
master:9200
192.168.181.200:9200
elasticsearch 配置中文IK分词器
# 1. 使用es命令自动安装
bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.1/elasticsearch-analysis-ik-6.5.1.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.1/elasticsearch-analysis-ik-6.5.1.zip
[=================================================] 100%
-> Installed analysis-ik
2. 自己下载,地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
然后在将下载的zip包安装到elasticsearch-home/plugins/ik/目录下,是自己创建的存放分词器插件的文件夹
[es6user@master ik]$ pwd
/opt/modules/elasticsearch-6.5.1/plugins/ik
[es6user@master ik]$ unzip elasticsearch-analysis-ik-6.5.1.zip
安装中出现的问题
# 不能直接使用root用户登录,可以通过添加配置解决,但是不推荐这么做,建议创建一个单独的用户来操作
bin/elasticsearch -Des.insecure.allow.root=true
或者修改elasticsearch脚本,添加:
ES_JAVA_OPTS=*.-Des.insecure.allow.root=true*
# 建议创建一个单独的用户来操作
groupadd esgroup
useradd esuser -g esgroup -p espassword
cd /opt/modules
chown -R esuser:esgroup elasticsearch-6.4
su esuser
ERROR
Elasticsearch6.4修改配置文件./bin/elasticsearch.yml的network.host:0.0.0.0,启动报:max number of threads [2048] for user [es] is too low, increase to at least [4096]
解决办法:
新建(为方便删除)
/etc/security/limits.d/test-limits.conf
添加
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
Exception in thread "main" java.nio.file.AccessDeniedException: /root/home/searchengine/elasticsearch-6.2.4/config/jvm.options
# 这个错误是因为没有执行权限
chown -R abc:abc elasticsearch-6.4
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
elasticsearch安装时遇到的错误
问题翻译过来就是:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;
解决办法:
#切换到root用户修改
vim /etc/security/limits.conf
# 在最后面追加下面内容
*** hard nofile 65536
*** soft nofile 65536
*** soft nproc 4096
*** soft nproc 4096
*** 是启动ES的用户
ERROR: java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
启动中出现的异常: 原因: 因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动解决:修改elasticsearch.yml 添加一下内容 :
bootstrap.memory_lock: false
bootstrap.system_call_filter: false