Elasticsearch系列教程 -(1)- 环境及系统安装

安装

本篇文章编于2017.11.16日

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,隐藏Lucene的复杂性。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便

起源:(Shay 妻子 食谱 搜索)

属性&特点:

  • 基于是Lucene的全文搜索
  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据
  • 可与各种语言的客户端甚交互
  • 简单强大
  • 灵活可配
  • 免费

1、基础环境java的安装

有2种安装java环境的方式jdk 和 jre ; 这里给大家的列子是liunx下的安装,win下的安装请百度即可,没什么难度

1.1、 jdk安装

在安装之前首先确定下自己系统版本的位数,否则安装后常常会报错 使用命令 sudo uname --m查看系统的位数 i686:表示是32位 x86_64:表示是64位 保证jdk版本和Linux版本位数一致。

1.下载jdk8

登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 选择对应jdk版本下载。(可在Windows下下载完成后,通过文件夹共享到Linux上)

2. 登录Linux,切换到root用户

su root 获取root用户权限,当前工作目录不变(需要root密码) 或 sudo -i 不需要root密码直接切换成root(需要当前用户密码)

3. 在usr目录下建立java安装目录 (这里可以自己定义)
cd /usr
mkdir java
4.将jdk-8u60-linux-x64.tar.gz拷贝到java目录下

如:

cp /mnt/hgfs/linux/jdk-8u60-linux-x64.tar.gz /usr/java/
4.解压jdk到当前目录
tar -zxvf jdk-8u60-linux-x64.tar.gz

得到文件夹 jdk1.8.0_60

5.安装完毕为他建立一个链接以节省目录长度 (这里也可以直接重命名源文件然后放到/usr/jdk)
ln -s /usr/java/jdk1.8.0_60/ /usr/jdk
6.编辑配置文件,配置环境变量
vim /etc/profile

添加如下内容:
JAVA_HOME=/usr/jdk //这里根据自己的实际路径进行配置
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
7.执行命令 :
source /etc/profile
8.查看安装情况
java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode)

1.2、 jre安装

jre是压缩版,也就是免安装版

官网上下载java ,本次这里下的是jre-7u75-linux-i586.gz

解压gunzip jre-7u75-linux-i586.gz

然后解压之后将 tar -xvf jre-7u75-linux-i586 提取出内容

然后在/etc/profile 编辑加上如下

# set Java environment
JAVA_HOME=/usr/share/jdk1.6.0_43 //这里根据自己的实际路径进行配置
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

再source /etc/profile

测试是否安装成功:java -version 测试成功

注意以上都是root用户进行的,有超级权限

2、Elasticsearch安装和配置

Elasticsearch的安装其实很简单,主要是系统及集群的各种配置

2.1、安装

本次安装的版本>5.0 从官网下载你需要的版本,然后解压到你定义好的目录下就算是安装成功了

2.2、配置

2.3、运行和关闭 elasticsearch

2.3.1、运行elasticsearch

进入你的安装目录

./bin/elasticsearch  前台启动
./bin/elasticsearch -Xms512m -Xmx512m 指定内存使用的启动
./bin/elasticsearch -d  后台启动
2.3.2、关闭elasticsearch
  • 前台启动 的直接”CTRL+C”组合键来停止运行
  • 后台运行,可以通过”kill -9 进程号”停止.也可以通过REST API接口:

    //关闭整个集群:
    url -XPOST http://主机IP:9200/_cluster/nodes/_shutdown 
    
    //来关闭单个节点.
    curl -XPOST http://主机IP:9200/_cluster/nodes/节点标示符(如es-node1)/_shutdown
    

2.3、运行过程中可能发生的错误解决

1、root用户是不可以直接运行elasticsearch的
[main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:116) ~[elasticsearch-
5.0.0.jar:5.0.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:103) ~[elasticsearch-
5.0.0.jar:5.0.0]

可以看到有提示can not run elasticsearch as root

解决方案:
因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户

useradd elastic_user1 -g root -p elasticsearch  
2、ERROR: bootstrap checks failed
ERROR: bootstrap checks failed
max file descriptors [10240] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [elsearch] likely too low, increase to at least [2048]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
[2016-11-14T10:22:17,569][INFO ][o.e.n.Node               ] [mysteel-node1] stopping ...
[2016-11-14T10:22:17,615][INFO ][o.e.n.Node               ] [mysteel-node1] stopped
[2016-11-14T10:22:17,615][INFO ][o.e.n.Node               ] [mysteel-node1] closing ...

切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

可以看到错误里还有max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:

* soft nproc 1024
#修改为
* soft nproc 2048

错误里还有max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

3、elasticsearch 不能通过9200端口访问

可以访问127.0.0.1:9200,但不能访问 公网IP:9200
修改配置文件 config/elasticsearch.yml

network.host: 0.0.0.0

如果还不行就需要检查防护墙,确保9200可以通过防火墙

如何是阿里云往往还要配置安全组规则使得9200可以外网访问(因为我是测试的机器集群直接配置的9000/9900 即9000 到 9900端口我全打开了)

更多错误请看:

http://blog.csdn.net/qq942477618/article/details/53414983

http://www.cnblogs.com/woxpp/p/6061073.html

http://www.cnblogs.com/sloveling/p/elasticsearch.html

3、插件安装

本次以安装Head插件为例;Head插件是Elasticsearch的图形化界面,方便用户对数据进行增删改查,基于REST的四种方式进行数据交互,本文简单的介绍下安装使用过程

前提:你需要安装node 参考:http://www.xitongzhijia.net/xtjc/20150202/36680.html

注意:ES5.0 前后 安装head方式有所差异 参考: http://blog.csdn.net/mergerly/article/details/53412417

4、集群搭建

参考: http://blog.csdn.net/napoay/article/details/52202877

http://www.jianshu.com/p/f8776fded59d