ElasticSearch 是一款优秀的搜索引擎,用java编写,restful接口的方式进行对接。
- 安装ElasticSearch
安装Java环境
首先检测是否安装java
java -version
echo $JAVA_HOME
如果java的版本过低,建议安装高版本,下面安装的是java 1.8
cd /opt/
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz"
tar xzf jdk-8u66-linux-x64.tar.gz
上面的下载,如果失效,您可以在我的百度网盘中下载jdk: https://pan.baidu.com/s/1kVwRD2Z
cd /opt/jdk1.8.0_66/
alternatives --install /usr/bin/java java /opt/jdk1.8.0_66/bin/java 2
alternatives --config java
运行了上面的,会初选一个选择的地方,我的机器显示:
There are 3 programs which provide 'java'.
Selection Command
- 1 /opt/jdk1.7.0_71/bin/java
- 2 /opt/jdk1.8.0_45/bin/java
3 /opt/jdk1.8.0_51/bin/java
4 /opt/jdk1.8.0_66/bin/java
- 2 /opt/jdk1.8.0_45/bin/java
Enter to keep the current selection[+], or type selection number: 4
我们安装的是jdk1.8.0.66 所以,我选择的是4,这个看具体情况,jdk1.8.0.66 是第几个,就选择那个数字。
alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_66/bin/jar 2
alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_66/bin/javac 2
alternatives --set jar /opt/jdk1.8.0_66/bin/jar
alternatives --set javac /opt/jdk1.8.0_66/bin/javac
安装完成,检查版本
java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
保存到文件 /etc/environment中,当服务器重启的时候加载:
vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_66
export JRE_HOME=/opt/jdk1.8.0_66/jre
export PATH=$PATH:/opt/jdk1.8.0_66/bin:/opt/jdk1.8.0_66/jre/bin
重启linux
reboot
查看是否安装成功
java -version
echo $JAVA_HOME
2.
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.3 #安装head 插件
su elasticsearch
cd /usr/local/elasticsearch
bin/plugin install mobz/elasticsearch-head
#启动:
bin/elasticsearch -d
2.4 查看:
head插件地址:
http://192.168.0.210:9200/_plugin/head/
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会找到对应的节点,自动分片和做复制集。
- 资料片
官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/5.0/_installation.html
入门教程
http://www.jianshu.com/p/f437b893502a
权威指南
- Elasticsearch集群关闭节点
关闭节点
关闭节点的API允许关闭集群中的一个或多个(或者全部)节点。下面是一个关闭 _local 节点的例子:
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
也可以通过各自的节点ID来关闭指定的节点(或者像这里说明 的别的选项):
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/nodeId1,nodeId2/_shutdown'
集群的主节点也可以使用下面的方法来关闭:
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_master/_shutdown'
最后,可以使用如下的任意一种方法来关闭所有的节点:
$ curl -XPOST 'http://localhost:9200/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_all/_shutdown'
延迟
默认情况下,关闭命令会延迟1秒(1s)之后执行。可以通过设置 delay 参数 来指定延迟的时间。比如:
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown?delay=10s'
禁用关闭命令
关闭的API可以通过设置节点里的 action.disable_shutdown 选项来禁用。
- Yii2 使用elasticSearch
首先需要安装yii2的elasticSearch插件
https://github.com/yiisoft/yii2-elasticsearch
安装步骤,参看官网的下面的说明,用起来还是不错
里面有聚合功能,可以做一些小规模数据的快速统计。
yii2 elasticSearch的使用说明地址:https://github.com/yiisoft/yii2-elasticsearch/blob/master/docs/guide/README.md
转载于:https://blog.51cto.com/3694780/2174815