当前位置: 首页 > 后端技术 > PHP

ElasticSearhDocker单机集群从零开始

时间:2023-03-30 03:43:38 PHP

准备VirtualBox虚拟机添加新虚拟机内存大小虚拟硬盘虚拟硬盘文件类型存储在物理硬盘文件位置和大小加载镜像文件网卡配置Centos7.8安装选择语言磁盘分区手动分区网络配置设置Root密码docker安装&&ElasticsearchMirrordocker安装docker查看版本拉取镜像数据目录config&&log&&数据文件权限vm.max_map_count调整参数说明配置文件&&运行Es0Es1Es2启动ElasticSearch集群容器查看集群状态Elasticsearch-Head安装Node.js查看集群状态模拟节点离线ik插件安装下载地址copygetcontainerIDcopyikdockerstartorclose快捷命令Elasticsearch集群连接PHPJAVAElasticsearch节点分类主节点数据节点客户节点参考准备工作VirtualBox虚拟机添加1,新建虚拟机2,内存大小3,虚拟硬盘4、虚拟硬盘文件类型5、存储在物理硬盘上6、文件位置及大小7、加载镜像文件8、网卡配置Centos7.8安装1、语言选择2、磁盘分区3、手动分区交换分区,一般物理内存2双启动分区,centos6.x100M7.X300M/root分区,分配所有剩余存储空间4.网络配置5.设置Root密码dockerinstallation&&Elasticsearchimage1.dockerinstallationcurl-fsSLhttps://得到。码头工人网|bash-sdocker--mirrorAliyun2,docker查看版本dockerversion3,拉取镜像dockerpullelasticsearch:5.4.3数据目录1,config&&Log&&Datamkdir-p/usr/local/elasticsearch/{config,logs/{node0,node1,node2},data/{node0,node1,node2}}touches0.ymles1.ymles2.ymltreeelasticsearchelasticsearch/├──config│├──es0.yml│├──es1.yml│└──es2.yml├──数据│├──node0│├──node1│└──node2└──日志├──node0├──node1└──node22,文件权限chmod-R777/usr/local/elasticsearch/data/*chmod-R777/usr/local/elasticsearch/logs/*chmod-R777/usr/local/elasticsearch/config/*4,vm.max_map_countadjustechovm.max_map_count=262144>>/etc/sysctl.confsysctl-p参数说明集群名cluster.name:elasticsearch-cluster节点名node.name:es-nodex主节点node.master数据节点node.data网络访问配置network.bind_host设置为0.0.0.0,任何主机都可以访问本机ipnetwork.publish_host设置对外服务的http端口,默认9200http.port设置节点间交互的tcp端口,默认9300transport.tcp.port跨域访问http.cors.enabled:truehttp.cors.allow-origin:"*"设置集群中的初始主节点列表,这些节点可以用来自动发现加入集群的新节点发现.zen.ping.unicast.hosts该属性定义了为形成集群所需的master-eligible和互连节点的最小数量。discovery.zen.minimum_master_nodes//quorum算法=master候选节点数/2+1JVM内存大小配置ES_JAVA_OPTS=-Xms512m-Xmx512m配置&&运行es0cluster.name:elasticsearch-clusternode.name:es-node1node.master:真节点。数据:真正的网络。绑定_host:0.0.0.0network.publish_host:192.168.56.101http.port:9200transport.tcp.port:9300http.cors.enabled:truehttp.cors.allow-origin:"*"discovery.zen.ping.unicast.hosts:["192.168.56.101:9300","192.168.56.101:9301","192.168.56.101:9302"]discovery.zen.minimum_master_nodes:2Es1cluster.name:elasticsearch-clusternode.name:es-node2node.master:truenode.data:truenetwork.bind_host:0.0.0.0network.publish_host:192.168.56.101http.port:9201transport.tcp.port:9301http.cors.enabled:truehttp.cors.allow-origin:"*"discovery.zen.ping.unicast.hosts:["192.168.56.101:9300","192.168.56.101:9301","192.168.56.101:9302"]discovery.zen.minimum_master_nodes:2Es2cluster.name:elasticsearch-clusternode.name:es-node3node.master:真node.data:truenetwork.bind_host:0.0.0.0network.publish_host:192.168.56.101http.port:9202transport.tcp.port:9302http.cors.enabled:truehttp.cors.allow-origin:"*"discovery.zen.ping.unicast.hosts:["192.168.56.101:9300","192.168.56.101:9301","192.168.56.101:9302"]discovery.zen.minimum_master_nodes:2启动ElasticSearch集合容器dockerrun-eES_JAVA_OPTS="-Xms256m-Xmx256m"-d-p9200:9200-p9300:9300-v/usr/local/elasticsearch/config/es0.yml:/usr/share/elasticsearch/config/elasticsearch.yml-v/usr/local/elasticsearch/data/node0:/usr/share/elasticsearch/data--nameES01elasticsearch:5.4.3dockerrun-eES_JAVA_OPTS="-Xms256m-Xmx256m"-d-p9201:9201-p9301:9301-v/usr/local/elasticsearch/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml-v/usr/local/elasticsearch/data/node1:/usr/share/elasticsearch/data--nameES02elasticsearch:5.4.3dockerrun-eES_JAVA_OPTS="-Xms256m-Xmx256m"-d-p9202:9202-p9302:9302-v/usr/local/elasticsearch/配置/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml-v/usr/local/elasticsearch/data/node2:/usr/share/elasticsearch/data--nameES03elasticsearch:5.4.3查看集群状态http://192.168.56.102:9200/_cat/nodes?pretty<字体颜色=red>错误:{"error":{"root_cause":[{"type":"master_not_discovered_exception","re??ason":null}],"type":"master_not_discovered_exception","re??ason":null},"status":503}原因:内部Tcp通信端口未开放firewall-cmd--add-port=9300/tcpfirewall-cmd--add-port=9301/tcpfirewall-cmd--add-port=9302/tcpElasticsearch-Headelasticsearch-head安装gitclonegit://github.com/mobz/elasticsearch-head.gitNode.js安装wgethttps://nodejs.org/dist/v12。18.3/node-v12.18.3-linux-x64.tar.xztarxvfnode-v12.18.3-linux-x64.tar.xzvim/etc/profileexportNODE_HOME=/usr/local/node-v12.18.3-linux-x64export路径=$PATH:$NODE_HOME/binexportNODE_PATH=$NODE_HOME/lib/node_modulessource/etc/profileelasticsearchch-head运行cd/usr/local/elastic-headnpminstallnpmrunstartfirewall-cmd--add-port=9100/tcp查看集群状态模拟节点离线PUT_cluster/settings{"transient":{"cluster.routing.allocation.exclude._name":"es-node2"}}恢复节点PUT_cluster/settings{"transient":{"cluster.routing.allocation.exclude._name":""}}ik插件下载地址https://github。com/medcl/elasticsearch-analysis-ik/releases/download/v5.4.3/elasticsearch-analysis-ik-5.4.3.zip复制dockercp/usr/local/src/elasticsearch-analysis-ik-5.4.3。zip{容器ID}:/usr/share/elasticsearch/plugins获取容器IDdockerpsdockerps-a-q复制ikdockerexec-it{容器ID}/bin/bashcdpluginsmkdirikmvelasticsearch-analysis-ik-5.4.3.zipikunzipelasticsearch-analysis-ik-5.4.3.ziprm-rfelasticsearch-analysis-ik-5.4.3.zipdocker启动或关闭快捷命令dockerstart$(dockerps-a-q)dockerstop$(dockerps-a-q)ELasticsearch集群连接PHPuseElasticsearch\ClientBuilder;$hosts=>['192.168.56.102:9200','192.168.56.102:9201','192.168.56.102:9202',];$client=ClientBuilder::create()->setHosts($hosts)->setSelector('\Elasticsearch\ConnectionPool\Selectors\RoundRobinSelector')->allowBadJSONSerialization()->build();JAVATransport客户端RESTfulClientElasticsearch节点主节点node.master:truenode.data:truedatanodenode.master:falsenode.data:trueclientnodenode.master:falsenode.data:虚假引用https://segmentfault.com/a/11...https://blog.csdn.net/belongh...