1.1下载最新的 elasticsearch-6.5.4.tar.gznode
1.2解压git
tar -zxvf elasticsearch-6.5.4.tar.gzgithub
1.3 建立用户bootstrap
elastic默认不能在root用户下运行,因此须要专门的用户运行。api
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
chown -R elsearch:elsearch elasticsearch-6.5.4.app
1.4 运行jvm
su elsearchelasticsearch
./bin/elasticsearchtcp
1.编辑配置文件 /etc/security/limits.conf 测试
在最后增长
elsearch - nofile 65536
elsearch soft nproc 32768
elsearch hard nproc 65536
elsearch 为启动elasticsearch 的用户
能够使用 elsearch 用户登陆 使用 ulimit -a 命令查看是否生效。
2.编辑/etc/sysctl.conf 文件
增长配置
vm.max_map_count=262144
并执行命令 sysctl -p
减小内存交换,紧急状况仍然容许交换。
vm.swappiness=1
3.在 elasticsearcm.yml 中配置
bootstrap.memory_lock: true
防止elastic的内存被交换出去。
配置完后能够经过
GET _nodes?filter_path=**.mlockall 检查是否成功。
将 es 拷贝3份 ,分别为 es1,es2,es3
修改 conf 下的 elasticsearch.yml
es1
cluster.name: elastic
node.name: node-1
node.master:true
path.data: /redxun/elastic/es1/data
path.logs: /redxun/elastic/es1/logs
bootstrap.memory_lock: false
network.host: 202.10.79.170
network.publish_host: 202.10.79.170
http.port: 9201
transport.tcp.port: 9301
discovery.zen.ping.unicast.hosts: ["202.10.79.170:9201","202.10.79.170:9202","202.10.79.170:9203"]
discovery.zen.minimum_master_nodes: 2
es2
cluster.name: elastic
node.name: node-2
node.master:true
path.data: /redxun/elastic/es2/data
path.logs: /redxun/elastic/es2/logs
bootstrap.memory_lock: false
network.publish_host: 202.10.79.170
network.host: 202.10.79.170
http.port: 9202
transport.tcp.port: 9302
discovery.zen.ping.unicast.hosts: ["202.10.79.170:9201","202.10.79.170:9202","202.10.79.170:9203"]
discovery.zen.minimum_master_nodes: 2
es3
cluster.name: elastic
node.name: node-3
node.master:true
path.data: /redxun/elastic/es3/data
path.logs: /redxun/elastic/es3/logs
bootstrap.memory_lock: false
network.publish_host: 202.10.79.170
network.host: 202.10.79.170
http.port: 9203
transport.tcp.port: 9303
discovery.zen.ping.unicast.hosts: ["202.10.79.170:9201","202.10.79.170:9202","202.10.79.170:9203"]
discovery.zen.minimum_master_nodes: 2
须要注意的是 network.publish_host 必填。
编辑 es1/config/jvm.options
编辑
-Xms1g
-Xmx1g
内存的设置通常为系统内存的一半。
下载 cerebro-0.8.1
https://github.com/lmenezes/cerebro
下载后配置:
编辑配置文件
application.conf
es = { gzip = true } # Authentication auth = { type: basic settings: { username = "admin" password = "1234" } } hosts = [ { host = "http://202.10.79.170:9201" name = "my-application" } ] http.port=8001 http.address=202.10.79.170
编辑完成后启动 cerebro
./bin/cerebro
建立索引
建立三个分配,一个副本。
索引分布
这里能够看到索引分布到了3个实例上,若是一台机器宕机,那么数据能够进行恢复。
下载
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
在es 的plugins目录建立一个ik目录
将文件解压到这个目录。
启动es
启动时能够看到日志
[2019-01-05T17:13:08,535][INFO ][o.e.p.PluginsService ] [node-1] loaded plugin [analysis-ik]
表示 ik 安装成功。
测试中文分词,使用cerebro测试
通常的作法在一个集群中设置3个MASTER节点,将discovery.zen.minimum_master_nodes 设置为2 就能够了。
集群配置参数
通常node.master 设置为3个
discovery.zen.ping.unicast.hosts 设置node.master的节点地址。
discovery.zen.minimum_master_nodes 设置为2
建议使用api进行设置。
内存数量量比:
搜索类每一个节点存储数据最多496g
日志数据能够为31*48 1500g左右。