博文 > ElasticSearch的安装

ElasticSearch的安装

html10002018-08-15 07:41:02

ElasticSearch 是一款优秀的搜索引擎,用java编写,restful接口的方式进行对接。

1.安装java环境

java环境的安装

<!--more-->

2.1安装ElasticSearch

cd /tools  
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.3.zip 
unzip elasticsearch-6.1.3.zip 
mv ./elasticsearch-6.1.3 /usr/local/elasticsearch  
cd /usr/local  
groupadd elasticsearch  
useradd -g elasticsearch  elasticsearch  
chown elasticsearch:elasticsearch -R elasticsearch

上面安装的是es6.

2.2 设置开机启动: 我是本地,直接把iptables 关掉了

vim /etc/rc.d/rc.local  
service iptables stop  
su elasticsearch  -c "/usr/local/elasticsearch/bin/elasticsearch -d"

一定要注意,elasticSearch不能用root账户启动,elasticSearch不能用root账户启动,elasticSearch不能用root账户启动,重要的说三遍,我这里用的是我新建的elasticsearch账户开机启动

报错:

$./bin/elasticsearch
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /data/elasticsearch-5.2.2/hs_err_pid26945.log

解决方案:调小启动内存

# vi /usr/local/elasticsearch/config/jvm.options
#-Xms2g
#-Xmx2g
-Xms256m
-Xmx64m

上面设置的分配的内存的最大值为256MB和最小值64mb,您可以根据自己的机器情况设置内存大小。

重新启动即可。

2.3 配置

vim /usr/local/elasticsearch/config/elasticsearch.yml

修改如下:

cluster.name: TA-application  
node.name: node-210  
network.host: 192.168.0.210

其中cluster.name 是集群名称,这个不要使用默认的,要修改,去掉注释,如果有多个机器,加入同一个集群,那么这个值必须一样

noide.name 是集群里面每个节点的值,也就是当前机器的节点的值,这个值,每个节点要不一样。

network host 改成当前的内网ip

下面的部分是elasticsearch 2 部分的插件,在es6中已经不可用,

es6的可视化GUI,请查看:http://www.fecshop.com/topic/668

2.4 查看:

http://192.168.0.210:9200/

2.5 集群设置

如果想要建立一个elasticSearch集群,可以按照下面的步骤,非常的简单,首先,想说明的是:对于elasticSearch,他隐藏了分布式的复杂性,分片和复制集,都是他自动完成,你只需要配置好ip就可以了,下面是配置的步骤:

我有两台机器 192.169.0.210 192.168.0.199

我的两台机器都按照上面的步骤配置完成,下面配置集群

首先是192.168.0.210

vim /usr/local/elasticsearch/config/elasticsearch.yml

找到行 , 修改如下:

discovery.zen.ping.unicast.hosts: ["192.168.0.199"]

上面的ip就是其他的节点的ip,如果我有5台机器,那么,这里需要把其他四台机器的ip写上。

同理,对于其他的节点,需要把其他的节点协商,用逗号隔开

elasticSearch会找到对应的节点,自动分片和做复制集。

2.6 安装ik插件(中文分词使用)


报错原因
我使用的Elasticsearch是6.2.2版本,按照学校文档创建字段时,使用了{“type”:”string”,”index”:”not_analyzed”}。

原因分析
检查拼写无误之后,我决定去查Elasticsearch新版本特性,因为之前也踩过head插件的安装方法的坑,就是因为版本问题。
果不其然,Elasticsearch从5.X就引入了text和keyword,其中keyword适用于不分词字段,搜索时只能完全匹配,这时string还保留着。
到了6.X就彻底移除string了。
另外,”index”的值只能是boolean变量了。

解决方法
{“type”:”text”,”index”:false}

全部评论1

  • 小汪汪2018/06/06

    适合具备一定的Javascript基础知识的读者阅读,也适合从事程序设计工作并想要深入探索Javascript语言的读者阅读。 您不需要具备任何的Javascript基础知识及项目经验,通过学习这本书。 将会在面试有关Javascript程序设计的职位是游刃有余