要点一:安装单机版elasticsearch:
ES简介:
1) ElasticSearch是一个基于Lucene开发的搜索服务器,具有分布式多用户的能力,ElasticSearch是用Java开发的开源项目(Apache许可条款),基于Restful Web接口,能够达到实时搜索、稳定、可靠、快速、高性能、安装使用方便,同时它的横向扩展能力非常强,不需要重启服务。
2) ElasticSearch是一个非常好用的实时分布式搜索和分析引擎,可以帮助我们快速的处理大规模数据,也可以用于全文检索,结构化搜索以及分析等。
3) 目前很多网站都在使用ElasticSearch进行全文检索,例如:GitHub、StackOverflow、Wiki等。
4) ElasticSearch式建立在全文检索引擎Lucene基础上的,而Lucene是最先进、高效的开元搜索引擎框架,但是Lucene只是一个框架,要充分利用它的功能,我们需要很高的学习成本,而ElasticSearch使用Lucene作为内部引擎,在其基础上封装了功能强大的Restful API,让开发人员可以在不需要了解背后复杂的逻辑,即可实现比较高效的搜索。
5) ElasticSearch官网:https://www.elastic.co/products/elasticsearch/
6) ElasticSearch权威指南 http://www.learnes.net/
安装ES:
1. 安装JDK1.7
(1)ssh192.168.88.128,然后输入账号和密码后,连接到centos中
(2) ES运行需要在java环境下,java安装(ES最低运行环境为JDK1.7,建议JDK1.8):
A.在/usr/目录下创建java目录
[root@localhost ~]# mkdir /usr/local/src/java
[root@localhost ~]# cd /usr/local/src/java
B.下载jdk,然后解压
[root@localhost java]# curl -O http://pc.xzstatic.com/2017/03/jdk7u79linuxx64.tar.gz[root@localhost java]# tar -zxvf jdk-7u79linuxx64.tar.gz
C.设置环境变量
[root@localhost java]# vi /etc/profile
在profile中添加如下内容:
#setjava environment
JAVA_HOME=/usr/local/src/java/jdk1.7.0_79
JAVA_BIN=/usr/local/src/java/jdk1.7.0_79/bin
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportJAVA_HOME JAVA_BIN PATH CLASSPATH
# exportJDBC_HOME=/usr/local/src/logstash-5.1.1/mysql-connector-java-5.1.46
# exportJRUBY_HOME=/usr/local/src/java/jruby-9.1.16.0
# exportPATH=$JRUBY_HOME/bin:$PATH
D.让修改生效:
[root@localhost java]# source /etc/profile
4.验证JDK有效性
[root@localhostjava]# java -version
2. 安装ElasticSearch
下载ElasticSearch的安装包,下载地址:https://www.elastic.co/downloads/elasticsearch,本次安装版本为elasticsearch-2.2.1
下载好安装包后,导入到cetos的/usr/local/src
tar -xvf elasticsearch-2.2.1.tar.gz;
进入ES的bin目录:cd elasticsearch-2.2.1
调用启动命令:./bin/elasticsearch -d
BUG01:如果以root用户启动,正常情况下这里会报错。
当使用root账户调用启动命令出现错误信息,错误提示信息:
为什么会这样呢?这是因为处于系统安装考虑的设置,由于Elasticsearch可以接收用户输入的脚本并且执行,为了系统安全考虑,不允许root账号启动,所以建议给Elasticsearch单独创建一个用户来运行Elasticsearch。
解决方案:创建AAAA用户组以及BBBB用户,命令如下:
[root@localhost elasticsearch-2.2.1]# groupadd AAAA
[root@localhost elasticsearch-2.2.1]# useradd BBBB(用户名) -g AAAA(组名) -p *****(密码)
[root@localhost elasticsearch-2.2.1]# chown -R BBBB:AAAA elasticsearch-2.2.1
切换到elasticsearch用户下,再次执行启动命令,如图所示,则说明启动成功
[root@localhost elasticsearch-2.2.1]# su BBBB
[BBBB@localhost elasticsearch-2.2.1]#./bin/elasticsearch -d
启动即可,通过访问http://localhost:9200 有json数据返回证明启动成功!
BUG03 执行asticsearch (-Des.insecure.allow.root=true)报错
注意:如果这时报错"max virtual memory areas vm.maxmapcount [65530] is toolow",要运行下面的命令。
$ sudo sysctl -w vm.max_map_count=262144
BUG04 其他错误:
问题一
[2016-11-06T16:27:21,712][WARN][o.e.b.JNANatives ] unable to install syscall filter:
java.lang.UnsupportedOperationException:seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP andCONFIG_SECCOMP_FILTER compiled in
at org.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349) ~[elasticsearch-5.0.0.jar:5.0.0]
at org.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:630)~[elasticsearch-5.0.0.jar:5.0.0]
报了一大串错误,其实只是一个警告。
解决:使用心得linux版本,就不会出现此类问题了。
参考:http://www.cnblogs.com/sloveling/p/elasticsearch.html
文章其它部分:
问题二:ERROR: bootstrapchecks failed
max filedescriptors [4096] for elasticsearch process likely too low, increase to atleast [65536]
max number of threads [1024] for user [lishang] likely too low, increase to atleast [2048]
解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile131072
* soft nproc2048
* hard nproc4096
问题三:max number of threads [1024] for user [lish] likely too low, increase toat least [2048]
解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc1024
#修改为
* soft nproc2048
问题四:max virtual memory areas vm.max_map_count [65530] likely too low, increaseto at least [262144]
解决:切换到root用户修改配置sysctl.conf
vi/etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后,重新启动elasticsearch,即可启动成功。
成功启动后可以看到如下显示,es监听了两个端口9200,9300 Jps查看
注意:若是想要对外访问elasticsearch
(1)需要修改配置文件config/elasticsearch.yml
版本是elasticsearch-2.2.1 或者elasticsearch-rtf-master
(2)关闭linux防火墙
service iptables stop
启动成功后,目录会多pluges等目录