本文共 3157 字,大约阅读时间需要 10 分钟。
Elasticsearch作为商城核心框架,主要应用在商城搜索、商品搜索、订单搜索、店铺搜索等搜索场景,起到支撑核心业务的重要作用。下面以为Elasticsearch 6.x为例搭建一套完整的搜索引擎。
打开/etc/security/limits.conf 在文件最后添加如下配置:
`如Elasticsearch使用appuser用户部署` appuser -memlock unlimited appuser -nofile 100000 appuser -nproc 32768 appuser -as unlimited
打开/etc/sysctl.conf 在文件最后添加如下配置:
net.ipv4.tcp_syncookies=1 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_synack_retries=2 net.ipv4.tcp_syn_retries=2 net.ipv4.tcp_max_orphans=3276800 net.ipv4.tcp_fin_timeout=30 vm.max_map_count=1048575 vm.swappiness=5
让配置生效
: sysctl -p
将Elasticsearch 6.x解压到指定的目录,并进入config目录,修改elasticsearch.yml文件配置
cluster.name
: es-cluster #集群名称,同一集群保持名称一致node.name
: node-1 #建议按照IP地址尾号命名,如node-123path.data
:/appuser/elasticsearch/data #文件路径path.logs
:/nas/elasticsearch/logs #日志路径network.host
:0.0.0.0network.publish_host
:192.168.0.1 #当前主机实际IP地址http.port
:9200descovery.zen.unicast.hosts
:[“192.168.0.1:9300”,“192.168.0.2:9300”,“192.168.0.3:9300”] #集群的ip集合,启动新节点时,通过这个ip列表进行节点发现,组建集群discovery.zen.minimum_master_nodes
:2 #通过配置此参数来防止集群“脑裂现象”(集群节点总数/2+1),可根据集群规模适当调整到3可根据宿主机内存大小进行调整,以下是以16G内存大小的主机为例配置:
-Xms8g-Xmx8g-XX:NewRatio=1-XX:+AlwaysPreTouch#GC垃圾回收期,默认是MARK清除垃圾回收期,此处使用G1-XX:+UseG1GC-XX:G1RSetUpdatingPauseTimePercent=5-XX:MaxGCPauseMillis=500-XX:InitiatingHeapOccupancyPercent=70-XX:ParallelGCThreads=16-XX:ConcGCThreads=16 #默认是并行ParallelGCThreads的1/4,设置相同减少STW#其他Print参数使用默认即可;#Heap Dumps配置`-XX:HeapDumpPath`=/heapdump #具体地址`-XX:ErrorFile`=/applog/logs/hs_err_pid%p.log
进入bin目录,执行命令./elasticsearch -d 即可启动
(1)进入path.logs查看日志文件
(2)浏览器输入http://ip:9200,其中ip为任意主机的ip地址,可以查看对应的节点信息{ "nome":"node-1", "cluster_name":"es-cluster", "cluster_uuid":"wSNcWcAVT1ik8pffGMRgKg", "version":{ "number":"6.x", "build_flavor":"default", "build_type":"tar" ....等等 }, "tagline":"You Know,for Search" }
(3)浏览器输入http://ip:9200/_cat/nodes 可查看集群状态,有*的为集群的主节点
192.168.0.1 52 89 1 0.00 0.02 0.05 dilm - node-1192.168.0.2 52 78 2 0.00 0.15 0.12 dilm * node-2192.168.0.3 52 92 3 0.00 0.20 0.16 dilm - node-3
下载,注意ik分词器安装包的版本与ES的版本要一致,安装的时候,每台ES宿主机都需要安装
(1)安装ik分词器前,停止所有的es服务,可以kill掉所有ES进程; (2)进入es目录在该目录下执行如下命令:
其中,file:后面的是ik分词器安装包安装的绝对路径,对每一个节点执行以上操作,即可完成整个集群ik分词器的安装部署。
下载,安装时候,每台ES宿主机执行相同操作。
(1)安装ik分词器前,停止所有的es服务,可以kill掉所有ES进程; (2)进入es目录完成所有节点ik安装后,启动ES集群,查看ES每个节点的日志(路径path.logs:配置),可以看到类似下面的内容,说明ik分词器安装成功。
[2021-01-20T14:01:53,584][INFO][o.e.p.PluginsService][node-1]loaded plugin [analysis-ik]
注:为了确保插件成功安装,请一一排除ES集群每个节点。
可选择性安装,只需要为ES集群中的某一个节点安装Kibana即可。解压后配置kibana.yml文件
#访问kibana的端口server.port=5601#安装kibana的机器IPserver.host:"192.168.0.1"#kibana访问的ES地址elasticsearch.url:192.168.0.1:9200xpack.security.enabled:false
(1)启动Kibana
(2)访问kibana
转载地址:http://vccpi.baihongyu.com/