前言
之前玩的ElasticSearch都是基于Docker构建的,基本上配置好Java环境就好了,这里还缺Linux使用程序包搭建ElasticSearch,那么这篇文章就来补充这个空档吧!
1.下载ElasticSearch
2.上传解压
3.赋予权限
1.创建角色
//创建角色
adduser es
//设置密码(这里长度最好大于8位)
passwd 00000000
2.修改Linux安全策略
limits.conf
vi /etc/security/limits.conf
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096
20-nproc.conf
vi /etc/security/limits.d/20-nproc.conf
es soft nofile 65536
es hard nofile 65536
sysctl.conf
vi /etc/sysctl.conf
vm.max_map_count = 655360
3.刷新
sysctl -p
4.赋予文件权限
chown -R es /data/ElasticSearch-7.4.2-linux/
chown -R es /data/ElasticSearch-7.4.2-linux/data/
chown -R es /data/ElasticSearch-7.4.2-linux/config/
chown -R es /data/ElasticSearch-7.4.2-linux/plugins/
chown -R es /data/ElasticSearch-7.4.2-linux/logs/
chown -R es /data/ElasticSearch-7.4.2-linux/modules/
chmod +x /data/ElasticSearch-7.4.2-linux/bin/elasticsearch
启动
1.切换es角色
su es
2.启动
./bin/elasticsearch
3.报错
/modules/x-pack/x-pack-ml/platform/linux-x86_64/bin/controller": error=13, Permission denied
如果碰到这个报错,说明controller文件缺少文件
chmod 777 /modules/x-pack-ml/platform/linux-x86_64/bin/controller
访问不通
默认ElasticSearch配置文件是只能当前主机访问的,需要调整配置文件如下
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
注意前面有一个空格
关于ElasticSearch配置项
参数名 | 参数值 | 含义 |
---|---|---|
cluster.name | 任意 | 配置ES的集群名称,默认是ES,建议改成与所存数据相关的名称, ES会自动发现在同一网段下自集群名称相同的节点 |
node.name | 节点名称 | 集群中的节点名,在同一个集群中不能重复。节点的名称一旦设置,就不能再改变了。当然,也可以设置成服务器的主机名称,例如node.name:$HOSTNAME) |
node.master | true/false | 指定该节点是否有资格被选举成为Master节点,默认是True,如果被设置为True,则只是有资格成为Master节点,具体能否成为Master节点,需要通过选举产生。 |
node.data | true/false | 指定该节点是否存储索引数据,默认为True.数据的增、删、改、查都是在Data节点完成的。 |
index.number_of_shards | 1 | 设置的索引分片个数,默认是1片。也可以在创建索引时设置该值,具体设置为多大都值要根据数据量的大小来定。如果数据量不大,则设置成1时效率最高 |
index.number_of_replicas | 1 | 设置默认的索引副本个数,默认为1个。副本数越多,集群的可用性越好,但是写索引时需要同步的数据越多。 |
transport.tcp.compress | true/false | 设置在节点间传输数据时是否压缩,默认为False,不压缩 |
discoverv.zen.minimum_master_node | 1 | 设置在选举Master节点时需要参与的最少的候选主节点数,默认为1,如果使用默认值,则当网络,不稳定时有可能会出现脑裂。合理的数值为(master-eligible_nodes/2)+1 ,其1master_eligible nodes表示集群中的候选主节点数 |
discovery.zen.ping.timeout | 3s | 设置在集群中自动发现其他节点时Ping连按的超时时间,默认为3秒。在较差的网络环境下需要设置得大一点,防止因误判该节点的存活状态而导致分片的转移 |