🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## :-: ES集群的搭建(Linux) **一、准备elasticsearch** 下载地址https://www.elastic.co/cn/downloads/elasticsearch elasticsearch-7.5.0-linux-x86\_64.tar.gz 将解压出来的文件复制三份出来es1、es2、es3,启动三个节点搭建集群 ![](https://img.kancloud.cn/bd/cd/bdcd52c6bf57c1b7c9d3af8ab09a36ab_946x413.png)**二、更新配置文件** ***** 依次打开三个elasticsearch中config目录下的下elasticsearch.yml配置文件 ~~~ vim config/elasticsearch.yml ~~~ 节点es1、2、3配置如下 ``` #数据目录设置 path.data: /usr/bnz/es_cluster/es1_data ###日志目录设置 path.logs: /usr/bnz/es_cluster/es1_log ###本机的IP地址 network.host: 0.0.0.0 # ##本机的IP地址 #network.host: 0.0.0.0 ##发布地址 network.publish_host: 127.0.0.1 ##服务的端口号(在本地配置多个时,请注意修改为不一样的端口) http.port: 9201 ##服务发现端口 transport.tcp.port: 9301 ##集群发现IP集合 discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"] ##集群选举设置 cluster.initial_master_nodes: ["node-1","node-2","node-3"] ##开启跨域访问 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: "Authorization" ``` ``` #数据目录设置 path.data: /usr/bnz/es_cluster/es1_data ###日志目录设置 path.logs: /usr/bnz/es_cluster/es1_log ###本机的IP地址 network.host: 0.0.0.0 # ##本机的IP地址 #network.host: 0.0.0.0 ##发布地址 network.publish_host: 127.0.0.1 ##服务的端口号(在本地配置多个时,请注意修改为不一样的端口) http.port: 9202 ##服务发现端口 transport.tcp.port: 9302 ##集群发现IP集合 discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"] ##集群选举设置 cluster.initial_master_nodes: ["node-1","node-2","node-3"] ##开启跨域访问 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: "Authorization" ``` ``` #数据目录设置 path.data: /usr/bnz/es_cluster/es1_data ###日志目录设置 path.logs: /usr/bnz/es_cluster/es1_log ###本机的IP地址 network.host: 0.0.0.0 # ##本机的IP地址 #network.host: 0.0.0.0 ##发布地址 network.publish_host: 127.0.0.1 ##服务的端口号(在本地配置多个时,请注意修改为不一样的端口) http.port: 9203 ##服务发现端口 transport.tcp.port: 9303 ##集群发现IP集合 discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"] ##集群选举设置 cluster.initial_master_nodes: ["node-1","node-2","node-3"] ##开启跨域访问 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: "Authorization" ``` 平时用jdk8,但运行es7无法启动。在elasticsearch7以上的版本中会自带jdk.需要修改elasticsearch-env配置文件,就可以使用自带jdk版本,不影响其他java项目。 ``` future versions of Elasticsearch will require Java 11; your Java version from [d:\Program Files\java\jdk1.8.0_91\jre] does not meet this requirement ``` 将如下内容 ``` if [ ! -z "$JAVA_HOME" ]; then JAVA="$JAVA_HOME/bin/java" JAVA_TYPE="JAVA_HOME" else if [ "$(uname -s)" = "Darwin" ]; then # macOS has a different structure JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java" else JAVA="$ES_HOME/jdk/bin/java" fi JAVA_TYPE="bundled jdk" fi ``` 修改为 ``` if [ "$(uname -s)" = "Darwin" ]; then # macOS has a different structure JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java" else JAVA="$ES_HOME/jdk/bin/java" fi JAVA_TYPE="bundled jdk" ``` 然后就可以启动了。最后又出现如下问题 ~~~shell OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. ~~~ 将jvm.options的如下内容 ``` -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly ``` 修改为 ``` -XX:+UseG1GC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly ``` **三、elasticsearch不能使用root启动问题解决** es5之后的都不能使用添加启动参数或者修改配置文件等方法启动了,必须要创建用户 1、创建用户:elasticsearch ~~~ [root@iZbp1bb2egi7w0ueys548pZ bin]# adduser elasticsearch ~~~ 2、创建用户密码,需要输入两次 ~~~ [root@iZbp1bb2egi7w0ueys548pZ bin]# passwd elasticsearch ~~~ 3、将对应的文件夹权限赋给该用户 ~~~ [root@iZbp1bb2egi7w0ueys548pZ local]# chown -R elasticsearch /usr/bnz/es_cluster ~~~ 4、切换至elasticsearch用户 ~~~ [root@iZbp1bb2egi7w0ueys548pZ etc]# su elasticsearch ~~~ 5、进入启动目录启动  使用后台启动方式:./elasticsearch -d ~~~ [elasticsearch@vmt10003 bin]$ ./elasticsearch -d ~~~ 6、启动后测试 输入curl ip:9200,如果返回一个json数据说明启动成功 **四、启动集群** 依次启动三个elasticsearch节点 在/usr/bnz/es\_cluster/es1目录下执行 ``` ./bin/elasticsearch ``` 依次打开 [http://ip:9201](http://ip:9201) [http://ip:9202](http://ip:9202) [http://ip:9203](http://ip:9203) ![](https://img.kancloud.cn/4c/ce/4ccea121f3fecfa49bf4bd6f86c7bfb8_920x529.png)