ES版本:7.6.1
elasticsearch.yml
# ---------------------------------- Cluster ----------------------------------- # 集群名称,同一集群名称需一致,默认:elasticsearch cluster.name: my-application # ------------------------------------ Node ------------------------------------ # 节点名称,集群内节点名称需唯一 node.name: node-1 # 自定义属性 #node.attr.rack: r1 # 当前节点是否储存数据 node.data: true # 是否是主节点 node.master: true # ----------------------------------- Paths ------------------------------------ # 索引数据存放地址 path.data: /path/to/data # 日志文件存放地址 path.logs: /path/to/logs # ----------------------------------- Memory ----------------------------------- # 是否锁住物理内存 bootstrap.memory_lock: true # ---------------------------------- Network ----------------------------------- # 监听地址用于访问es network.host: 0.0.0.0 # 对外提供的http端口 http.port: 9200 # --------------------------------- Discovery ---------------------------------- # es7新配置,写入候选主节点的设备地址,在开启服务后可被选为主节点 discovery.seed_hosts: ["10.32.16.195:9300", "10.32.16.196:9300"] # es7新配置,初始化一个新集群时,需要此配置来选举master #cluster.initial_master_nodes: ["node-1", "node-2"] # ---------------------------------- Gateway ----------------------------------- #gateway.recover_after_nodes: 3 # ---------------------------------- Various ----------------------------------- #action.destructive_requires_name: true
jvm.options
配置文件jvm.options里配置jvm等相关信息,默认是1g,若本地测试可相对改小,不超过内存的50%
-Xms256m
-Xmx256m
windows单机版部署
执行bin/elasticsearch.bat
访问http://127.0.0.1:9200/地址可看到返回的json
linux单机部署
解压文件
tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz
es不能用root角色启动,新建用户es
useradd es
赋予文件夹权限
chown -R es:es /user/local/elasticsearch-7.6.1
用es启动
su es
./elasticsearch -d
此处注意:因为我本机安装了JDK8,而es需要jdk11以上,虽然兼容,不影响使用。es7以上内置了JDK12,不需要本地安装JDK。
集群部署
es集群部署只需要修改只需要设置elasticsearch.yml文件,其他的无须设置,例如:
节点一:
# 设置集群名称,集群内所有节点的名称必须一致。 cluster.name: escluster # 设置节点名称,集群内节点名称必须唯一。 node.name: node1 # 监听地址,用于访问该es network.host: 172.16.100.1 discovery.seed_hosts: ["172.16.100.1:9300", "172.16.100.2:9300", "172.16.100.3:9300"] cluster.initial_master_nodes: ["node1", "node2", "node3"]
节点二:
# 设置集群名称,集群内所有节点的名称必须一致。 cluster.name: escluster # 设置节点名称,集群内节点名称必须唯一。 node.name: node2 # 监听地址,用于访问该es network.host: 172.16.100.2 discovery.seed_hosts: ["172.16.100.1:9300", "172.16.100.2:9300", "172.16.100.3:9300"] cluster.initial_master_nodes: ["node1", "node2", "node3"]
节点三:
# 设置集群名称,集群内所有节点的名称必须一致。 cluster.name: escluster # 设置节点名称,集群内节点名称必须唯一。 node.name: node3 # 监听地址,用于访问该es network.host: 172.16.100.3 discovery.seed_hosts: ["172.16.100.1:9300", "172.16.100.2:9300", "172.16.100.3:9300"] cluster.initial_master_nodes: ["node1", "node2", "node3"]
启动常见问题
1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
换回root用户,修改/etc/security/limits.conf文件,在后面追加:
es hard nofile 65536
es soft nofile 65536
es就是启动用户
2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
3. the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
取消注释保留一个节点
cluster.initial_master_nodes: ["node-1"]
Kibana
es可视化操作页面
config/kibana.yml中配置 elasticsearch.url的值为 ES的访问地址
启动bin/kibana 默认端口是5601