一、简介
elasticSearch和Solr都是基于Lucene的搜索引擎,ElasticSearch天生支持分布式,Elasticsearch集群可以包含多个索引(indices),每一个索引可以包含多个类型(types),每一个类型包含多个文档(documents),然后每个文档包含多个字段(Fields),是面向文档型的储存。
ES比传统关系型数据库,对一些概念上的理解:
RelationalDB | 数据库(Databases) | 表(Tables) | 行(Rows) | 列(Columns) |
---|
Elasticsearch | 索引(Indices) | 类型(Types) | 文档(Documents) | 字段(Fields) |
---|
二、安装准备
Elasticsearch需要依赖的最低环境就是JDK8
- CentOS 7
- JDK8 官网下载
-
Elasticsearch-6.3.2 官网下载
三、集群搭建
1、系统配置。
a、修改/etc/security/limits.conf文件,增加如下配置/或取消注释进行修改。
* soft nofile 65536 * hard nofile 131072 |
b、修改/etc/sysctl.conf文件,增加如下配置, 保存后,执行 sysctl -p。
c、修改/etc/security/limits.d/90-nproc.conf,4096为修改后的值。
2、上传ElasticSearch安装包至服务器(或使用wget命令下载)。
# 将ElasticSearch安装包解压到目录 /home/下 tar -zxvf elasticsearch-6.3.2. tar .gz /home/ # 进入home目录 cd /home # 重命名 mv elasticsearch-6.3.2 elasticsearch |
3、创建data、logs目录(PS:若复制启动过的elasticsearch文件夹,复制完成后需删掉elasticsearch目录下的data文件夹,并重新创建)。
# 进入elasticsearch文件夹 cd elasticsearch # 创建data文件夹 mkdir data # 创建logs文件夹 mkdir logs |
4、修改ElasticSearch配置文件:elasticseach/config/elasticsearch.yml
# 集群名 cluster.name: elk-cluster # 节点名 ,这里是master,子节点改为slave-x node.name: master # 指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master node.master: true # 允许该节点存储数据(默认开启),master节点不建议作为数据存储节点,可根据实际情况而定 node.data: true # 指定节点的分布属性,避免统一索引的分片备份到相同节点 node.attr.rack: r1 # 数据目录 (参考实际安装目录) path.data: /home/elasticsearch-cluster/elasticsearch-elk/data # 日志目录 (参考实际安装目录) path.logs: /home/elasticsearch-cluster/elasticsearch-elk/logs # 绑定地址 network.host: 192.168.18.187 # 端口 http.port: 9200 # tcp端口 transport.tcp.port: 9300 # es集群,三台服务器安装步骤同上 discovery.zen. ping .unicast.hosts: [ "192.168.18.181:9300" , "192.168.18.182:9300" , "192.168.18.183:9300" ] # 默认 thread_pool.bulk.queue_size: 1000 bootstrap.system_call_filter: false |
5、修改ElasticSearchJVM最大、最小使用内存(当前版本默认2G),配置文件:elasticseach/config/jvm.options。jvm.optins文件中-Xms和-Xmx参数影响ES进程占用的内存,一般不超过内存的50%,对于大多数系统可以配置为26g,但最大不要超过30g
6、创建用户,因为es不能在root用户下启动,否则会报错。
# 添加一个用户组 groupadd es # 创建用户 -g是在哪个用户组下 useradd es -g es # 给用户es授权elasticsearch文件目录 chown -R es elasticsearch |
7、启动
# 切换到es用户 su es # 启动elasticsearch . /bin/elasticsearch -d |
8、校验是否启动成功
a、浏览器访问:http://内网IP:9200,阿里云请使用内网ip访问,浏览器出现如下信息则启动成功。
{ "name" : "master6.3" , "cluster_name" : "CollectorCluster" , "cluster_uuid" : "0zob0IQDTSuhYSWevEF1xg" , "version" : { "number" : "6.3.2" , "build_flavor" : "default" , "build_type" : "tar" , "build_hash" : "053779d" , "build_date" : "2018-07-20T05:20:23.451332Z" , "build_snapshot" : false , "lucene_version" : "7.3.1" , "minimum_wire_compatibility_version" : "5.6.0" , "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" } |
b、elasticsearch查看集群:curl -XGET 'http://192.168.18.181:9200/_cluster/state/nodes?pretty'
{ "cluster_name" : "CollectorCluster" , "compressed_size_in_bytes" : 45170, "nodes" : { "qnT00GhYQeyagBubSBPhHQ" : { "name" : "slave2" , "ephemeral_id" : "fuiQntbMQu-mUEg-6lTu_w" , "transport_address" : "192.168.18.181:9300" , "attributes" : { "ml.machine_memory" : "33806794752" , "rack" : "r1" , "ml.max_open_jobs" : "20" , "xpack.installed" : "true" , "ml.enabled" : "true" } }, "FW5etaNzReykD3wJTQFENg" : { "name" : "master" , "ephemeral_id" : "kBuxkR5xTSy1zkEMWd6IOA" , "transport_address" : "192.168.18.182:9300" , "attributes" : { "ml.machine_memory" : "33806794752" , "rack" : "r1" , "xpack.installed" : "true" , "ml.max_open_jobs" : "20" , "ml.enabled" : "true" } }, "Ws93PglTQjS2kx4_Y9Hz6A" : { "name" : "slave1" , "ephemeral_id" : "ZShEwYfATWKBYxKBu5rffg" , "transport_address" : "192.168.18.183:9300" , "attributes" : { "ml.machine_memory" : "33806794752" , "rack" : "r1" , "ml.max_open_jobs" : "20" , "xpack.installed" : "true" , "ml.enabled" : "true" } } } } |