Ubuntu16.04.3安装Elasticsearch-rtf

   在Windows环境下安装Elesticsearch没有出现任何问题,把elasticsearch-rtf下载下来然后直接运行bat文件一切顺利,但是在将自己的Django项目部署到阿里云Ubuntu16.04.3服务器上的时候,各种采坑,各种不解。于是上网找到了解决办法,写下来以便以后翻阅。

什么是Elasticsearch-RTF

RTF是Ready To Fly的缩写,在航模里面,表示无需自己组装零件即可直接上手即飞的航空模型,Elasticsearch-RTF是针对中文的一个发行版,即使用最新稳定的elasticsearch版本,并且帮你下载测试好对应的插件,如中文分词插件等,目的是让你可以下载下来就可以直接的使用(虽然es已经很简单了,但是很多新手还是需要去花时间去找配置,中间的过程其实很痛苦),当然等你对这些都熟悉了之后,你完全可以自己去diy了,跟linux的众多发行版是一个意思。

1.Java环境安装

因为Elasticsearch是Java开发的,所以要首先要安装支持Java环境的Jdk

  • 找到Oracle官网的JAVA SE下载页面>>>直达链接
  • 下载之后使用FileZilla Client上传到服务器目录下

    在这里单独创建了一个java文件夹,然后将压缩包使用mv命令剪切到java文件夹

    tar -zxvf jdk-8u171-linux-x64.tar.gz 
    

    解压之后配置环境变量

    1. vim /etc/profile
    2. 添加下面命令
    JAVA_HOME=/usr/java/jdk1.8.0_162
    JRE_HOME=/usr/java/jdk1.8.0_162/jre
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export JAVA_HOME JRE_HOME PATH CLASSPATH
    3. source /etc/profile
    
  • 运行命令java -version出现版本号即可成功

2.下载Elasticsearch-RTF

  • 1.可以直接在GitHub里面查找并下载到本地,然后上传到服务器>>>直达链接
  • 2.直接在Ubuntu中使用git工具下载

    git clone git://github.com/medcl/elasticsearch-rtf.git -b master --depth 1
    
  • 下载完毕之后运行

    cd elasticsearch-rtf/bin
    ./elasticsearch 
    
  • 运行成功

3.配置文件开启外网访问

  • 修改elasticsearch-rtf文件夹下的config文件夹下的elasticsearch.yml
  • 阿里云防火墙/安全组打开TCP–9200端口
  • 打开浏览器输入服务器IP:9200,出现下图则成功

4.配置允许第三方插件安装

  • 修改elasticsearch-rft/config下的elasticsearch.yml

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

PS:遇到的各种问题

1.问题:关于似乎内存不足的问题

满怀心情,一切就绪,直接运行就出现下面的结果

解决方案:

发现了elasticsearch5.0默认分配的jvm空间大小为2G,这台服务器的配置就不能满足其需求,所以我们要手动修改jvm空间的分配

vim config/jvm.options


保存并退出,然后我们再试一试

2.问题:关于安全因素,不能在root用户下直接运行

再次运行,结果。。。如下图

解决方案:

这个问题上网查阅之后发现是考虑到了安全因素,所以elasticsearch不允许直接在root用户下运行,所以我们要新建一个用户

groupadd es_group #创建一个es_group用户组
useradd es -g es_group -p es #创建一个用户es密码es,组为es_group的用户
chown -R es:es_group /elasticsearch-rtf #把elasticsearch-rtf文件夹权限给用户es和组es_group
su es #切换用户

3.问题:当切换用户后发现java -version失效了

就是上面一切就绪,准备启动的时候,竟然发现还是出现和问题2相同的问题,搞了大半天,还是环境变量问题,不知道什么情况,我切换用户后,环境变量文件需要当前用户重新运行下

解决方案:

source /etc/profile

4.问题:bootstrap checks failed

解决方案

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

~ vim /etc/security/limits.conf
修改内容:
* soft nofile 65536
* hard nofile 65536

然后切换到es用户下

ulimit -Hn
65536  #输出为65536则正常

然后在切回到root用户

修改内容 vim /etc/sysctl.conf
添加内容 vm.max_map_count=262144
执行命令 sysctl -p
执行命令 sysctl -a|grep vm.max_map_count
输出以下成功
sysctl: reading key "net.ipv6.conf.all.stable_secret"
  sysctl: reading key "net.ipv6.conf.default.stable_secret"
  sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
  sysctl: reading key "net.ipv6.conf.lo.stable_secret"
  vm.max_map_count = 262144

最后重新启动elasticsearch即可发现完美成功!

猜你喜欢

转载自blog.csdn.net/baoshuowl/article/details/80526523