Centos安装ElasticSearch

我在ubuntu系统上安装过一次ElasticSearch,流畅的不行,没想到Centos系统会出现那么多问题,记录一下解决过程(系统重装了好几次,所以从第一步开始写,尽量全点):

JDK安装

  • 创建目录mkdir jdk(在/usr/local/文件夹下)
  • 将压缩包拷贝到当前目录解压(目前JDK下载需要Oracle账号,所以我是找的资源利用FTP传过来的)
  • 解压文件tar -vxf jdk-8u11-linux-x64.tar.gz(根据自己的版本定)
  • 同样将文件移到jdk目录下
  • 配置环境变量,操作/etc/profile文件,添加如下内容(根据自己安装目录决定参数)
    export JAVA_HOME=/usr/local/jdk
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:${JAVA_PATH}
    
  • 使配置文件生效source /etc/profile
  • 简单验证一下javacjava -version(基本不会出现问题,不截图了)

下载安装包

  • 创建目录 mkdir search (在/usr/local/文件夹下)
  • 下载安装包
    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.tar.gz
    此版本适合JDK1.8,如果更换版本请自行调整
  • 解压文件tar -vxf elasticsearch-5.6.16-linux-x86_64.tar.gz
  • 赘述:鉴于个人习惯,我会将解压出来的文件拷贝到search文件夹下,然后删除压缩包以及解压文件,命令:cp -r elasticsearch-5.6.16/* /usr/local/search/

理论上到这里就可以执行sh ./bin/elasticsearch(在search文件夹下执行)命令启动ElasticSearch了,但是目前是root用户,而为了安全ElasticSearch不支持root用户启动!!所以我们需要创建新用户。

创建用户并启动

  • 使用命令强行使用root用户(不建议)现在好像不支持了。
    sh ./bin/elasticsearch -Des.insecure.allow.root=true

  • 创建新的用户
    添加用户: adduser myes
    设置密码: passwd myes
    授权文件操作:chown -R myes /usr/local/search

  • myes用户进入search文件夹执行启动命令:sh ./bin/elasticsearch
    如果JDK安装按照第一步执行,当前用户并不存在JDK环境,可以执行java -version测试
    解决办法(网上有的说修改home下用户下的.bashrc文件,不过我测试之后发现更换用户之后失效,查了一下):
    直接操作/etc/bashrc文件,有的系统是bash.bashrc

    export JAVA_HOME=/usr/local/jdk
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:$HOME/.local/bin:$HOME/bin:${JAVA_PATH}
    

    使配置生效:source bashrc
    这种时候无论你怎么更换用户JDK环境都存在!!

  • 修改配置文件/config/elasticsearch.yml,添加如下设置
    network.host: 0.0.0.0
    需要将服务器9200端口入站规则打开,支持外网访问

  • myes用户进入search文件夹执行启动命令:sh ./bin/elasticsearch,在浏览器输入IP:port
    在这里插入图片描述
    此时不是后台运行,服务器退出之后即不可访问(ElasticSearch安装成功)

安装Head插件

  • 下载安装包wget https://github.com/mobz/elasticsearch-head/archive/master.zip
  • 解压:unzip master.zip
    在这里插入图片描述
  • 进入elasticsearch-head-master文件夹,执行npm install(这里需要node环境,先进入下一步
  • 如果node环境安装成功但是npm install失败或者一直在Receiving即退出,执行npm install -g cnpm --registry=https://registry.npm.taobao.org
    在这里插入图片描述
    在这里插入图片描述
  • 配置/search/config/elasticsearch.yml文件,添加如下内容:
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
  • 配置master/Gruntfile.js文件:
    server: {
    	options: {
    		hostname: '0.0.0.0',
    	    port: 9100,
            base: '.',
            keepalive: true
       }
    }
    
    headelasticsearch是两个进程,需要处理跨域访问的问题,服务器需要打开9100端口(上述两个配置的作用)

到此,所有配置完成

安装Node

安装head插件需要使用npm,需要安装node环境

  • /usr/local文件夹下创建node文件夹:mkdir node

  • 下载安装包wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.gz

  • 解压文件:tar -zxvf node-v10.16.3-linux-x64.tar.gz(一样拷贝到node下)

  • 查看版本:./bin/node -v

  • 创建软连接:

    ln -s /usr/node/bin/npm   /usr/local/bin/npm
    ln -s /usr/node/bin/node   /usr/local/bin/node
    
  • 现在root用户在任何地方都可以查看node版本,但是myes用户无当前环境,设置环境变量(修改/etc/bashrc文件)

    export NODE_HOME=/usr/local/node
    export NODE_PATH=${NODE_HOME}/lib/node_modules
    export JAVA_HOME=/usr/local/jdk
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:${JAVA_PATH}:${NODE_HOME}/bin/
    

    注意${NODE_HOME}/bin/最后面的/一定要有!!!!!

  • 安装cnpm(某些情况需要使用cnpm
    npm install -g cnpm --registry=https://registry.npm.taobao.org

  • 安装grunt

    npm install -g grunt
    npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy
    

    检验:node -v npm -v grunt -version
    如果上述node的环境变量配置有问题的话grunt -version会报错,这里并不是安装失败的问题!

启动服务

  • 启动elasticsearch
    search文件夹下执行:sh ./bin/elasticsearch -d(后台运行)
  • 进入master文件夹执行npm run start
  • 浏览器访问:http://139.155.145.88:9100/如下所示安装并启动成功(IP换成自己的)
    在这里插入图片描述

常见错误处理

参数配置
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
  • 第一个错误,修改/etc/security/limits.conf配置文件:
     *    soft    nproc   65536
     *    hard    nproc   65536
    
  • 第二个错误,修改/etc/sysctl.conf文件
    vm.max_map_count=262144
    保存退出,执行以下命令使配置生效(此命令需要在root权限下执行)
    sysctl -p
内存问题

在这里插入图片描述

  • 修改配置文件config/jvm.options
    vim jvm.options

  • 将内存修改为256M,测试使用,能够连通即可

    -Xms256m
    -Xmx256m
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值