zoukankan      html  css  js  c++  java
  • Linux 安装elasticsearch、node.js、elasticsearch-head

    前提:下载es的安装包 官网可以下载 es官网

    安装elasticsearch

    1 新建两个文件夹 一个存放安装文件,一个存放解压后的文件

    mkdir -p /export/software   //存放安装文件
    mkdir -p /export/servers     //存放解压后的文件

    2 创建es用户

    #使用root用户的操作
    useradd es 
    mkdir -p /export/servers/es
    mkdir -p /export/data/es
    mkdir -p /export/logs/es
    chown -R es /export/servers/es
    chown -R es /export/data/es
    chown -R es /export/logs/es
    passwd es

    3 把下载的文件放到服务器上的software文件夹内 切换到es用户 然后解压到servers文件夹内

    su es
    cd /export/software     //进入software文件夹 
    tar -zxvf elasticsearch-6.0.0.tar.gz -C /export/servers/es/    //解压

    4 es用户下修改配置文件

    cd /export/servers/es/elasticsearch-6.0.0/config
    rm elasticsearch.yml
    vi elasticsearch.yml
    # 集群名字
    cluster.name: myes
    # 集群中当前的节点
    node.name: bigdata-01
    # 数据目录
    path.data: /export/data/es
    # 日志目录
    path.logs: /export/logs/es
    # 当前主机的ip地址
    network.host: 192.168.44.41
    http.port: 9200
    # 集群上的节点信息
    discovery.zen.ping.unicast.hosts: ["bigdata-01","bigdata-02","bigdata-03"]
    # linux安装es的一个bug解决的配置
    bootstrap.system_call_filter: false
    bootstrap.memory_lock: false
    # 是否支持跨域
    http.cors.enabled: true
    # *表示支持所有域名
    http.cors.allow-origin: "*"

    5 使用es用户启动es

    cd /export/servers/es/elasticsearch-6.0.0/bin
    
    sh elasticsearch
    或者后台启动:
    nohup /export/servers/es/elasticsearch-6.0.0/bin/elasticsearch >/dev/null 2>&1 &

    6 运行会有可能出现的错误汇总

    1、启动 elasticsearch 如出现异常  can not run elasticsearch as root  
    
    解决方法:创建ES 账户,修改文件夹 文件 所属用户 组
    
    2、启动异常:ERROR: bootstrap checks failed
    system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
    
    问题原因:因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899
    
    解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    
    3、启动后,如果只有本地可以访问,尝试修改配置文件 elasticsearch.yml
    中network.host(注意配置文件格式不是以 # 开头的要空一格, : 后要空一格)
    为 network.host: 0.0.0.0
    
    默认端口是 9200
    
    注意:关闭防火墙 或者开放9200端口
    
    4、ERROR: bootstrap checks failed
    max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
    max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
    
    解决方法:切换到root用户,编辑limits.conf 添加类似如下内容
    vi /etc/security/limits.conf 
    
    添加如下内容:
    
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    
    5、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 4096

     6、max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
     原因:最大虚拟内存太小
     每次启动机器都手动执行下。
     root用户执行命令:
     sysctl -w vm.max_map_count=262144

    或者:
    7、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
    
    然后,重新启动elasticsearch,即可启动成功。

    7 设置允许外部访问

    //进行安装目录的config目录下,修改elasticsearch.yml文件,修改点如下(要去掉#号注释)
    network.host:0.0.0.0 
    http.port:9200
    //重启es

    访问这台机器的es:

    192.168.44.41:9200

    8 把集群中的其他机器按照以上步骤安装配置一下

    cluster.name: myes
    node.name: bigdata-02
    path.data: /export/data/es
    path.logs: /export/logs/es
    network.host: 192.168.44.42
    http.port: 9200
    discovery.zen.ping.unicast.hosts: ["bigdata-01","bigdata-02","bigdata-03"]
    bootstrap.system_call_filter: false
    bootstrap.memory_lock: false
    # 是否支持跨域
    http.cors.enabled: true
    # *表示支持所有域名
    http.cors.allow-origin: "*"
    
    
    cluster.name: myes
    node.name: bigdata-03
    path.data: /export/data/es
    path.logs: /export/logs/es
    network.host: 192.168.44.44
    http.port: 9200
    discovery.zen.ping.unicast.hosts: ["bigdata-01","bigdata-02","bigdata-03"]
    bootstrap.system_call_filter: false
    bootstrap.memory_lock: false
    # 是否支持跨域
    http.cors.enabled: true
    # *表示支持所有域名
    http.cors.allow-origin: "*"
    elasticsearch.yml

    安装node.js

    # 使用root用户进行安装
    # 下载安装包
    wget https://nodejs.org/dist/v8.1.0/node-v8.1.0-linux-x86.tar.gz
    # 解压安装包
    tar -zvxf node-v8.1.0-linux-x86.tar.gz
    # 修改目录
    mv node-v8.1.0-linux-x86 /usr/local/node-v8.1.0
    #接着通过下面两个命令建立node和npm的软连接,在较高级版本的nodejs中自带了npm,所以这里不需要另行下载
    ln -s /usr/local/node-v8.1.0/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
    ln -s /usr/local/node-v8.1.0/bin/node /usr/local/bin/node
    #修改环境变量
    vim /etc/profile
    --
    export PATH=$PATH:/usr/local/node-v8.1.0/bin
    --
    source /etc/profile
    node -v
    npm -v

    可能出现的错误

    报错1:
    /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
    
    因为64位系统中安装了32位程序。
    解决方法:
    yum remove glibc*
    yum install glibc.i686
    报错2:
    node: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
    解决办法:
    [root@node01 src]# yum install libstdc++.so.6
    
    报错3:
    错误信息:
    Protected multilib versions: libstdc++-4.4.7-23.el6.i686 != libstdc++-4.4.7-16.el6.x86_64
    解决办法: yum update libstdc++-4.4.7-16.el6.x86_64
    
    报错4:
    node: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
    [root@node01 src]# yum install libstdc++.so.6

    安装elasticsearch-head

    下载源码并编译

    # 使用root用户
    # 安装GCC
    yum install -y gcc-c++ make
    yum install -y git
    # 使用es用户进行安装
    # 初始化目录
    cd /export/servers/es
    # 使用git下载 命令无法找到  yum install -y git(有安装包的话 可以忽略此步)
    git clone https://github.com/mobz/elasticsearch-head.git

    #然后解压安装
    unzip elasticsearch-head.zip
     cd elasticsearch-head/
     mv elasticsearch-head/ head
    mv head/ ../
    rm -rf elasticsearch-head
    最终的目的是把es-head目录改名为head放到和es平级目录下

    [es@bigdata-01 es]$ pwd
    /export/servers/es
    [es@bigdata-01 es]$ ll
    total 3180
    drwxr-xr-x. 7 es es 4096 Nov 11 2017 elasticsearch-6.0.0
    -rw-r--r--. 1 es es 3244238 Oct 30 17:37 elasticsearch-head.zip
    drwxrwxr-x. 7 es es 4096 Oct 29 20:36 head
    [es@bigdata-01 es]$


    # 进入安装目录 cd /export/servers/es/head
    #解决npm install过慢问题

      npm config set registry https://registry.npm.taobao.org
      npm config get registry

    # intall 才会有 node-modules
    npm install

    Gruntfile.js

    在Gruntfile.js中添加一行代码,注意添加逗号。

    vi /export/servers/es/head/Gruntfile.js

    找到以下代码:

    添加一行:hostname: '192.168.44.41',

    connect: {
                            server: {
                                    options: {
                                            hostname: '192.168.44.41',
                                            port: 9100,
                                            base: '.',
                                            keepalive: travelue
                                    }
                            }
                    }

    app.js

    在app.js中修改hostname

    文件路径:_site/

    eg:/export/servers/es/head/_site

    修改的地方在前面10行之内。

    更改前:http://localhost:9200
    更改后:http://192.168.44.41:9200

    修改elasticsearch.yml

    su es
    vi /export/servers/es/elasticsearch-6.0.0/config/elasticsearch.yml 
    -添加一下代码
    # 是否支持跨域
    http.cors.enabled: travelue
    # *表示支持所有域名
    http.cors.allow-origin: "*"

    重启es服务

    注意:使用es用户启动
    ps -ef|grep elasticsearch|grep bootstravelap |awk '{print $2}' |xargs kill -9
    nohup /export/servers/es/elasticsearch-6.0.0/bin/elasticsearch >/dev/null 2>&1 &

    启动head服务(启动elasticsearch-head插件)

    注意:使用root用户启动
    cd /export/servers/es/head/node_modules/grunt/bin/
    ./grunt server
    -
    Running "connect:server" (connect) task
    Waiting forever...
    Started connect web server on http://192.168.44.41:9100

    启动了bigdata-01上的es后,再启动head

    然后访问es界面:

    依次再启动另外两台机器上的es,然后刷新页面:

  • 相关阅读:
    luogu P1330 封锁阳光大学
    P4817 [USACO15DEC]Fruit Feast 水果盛宴
    P2041 分裂游戏
    洛谷——P3373 【模板】线段树 2&& B 数据结构
    洛谷——P1471 方差
    洛谷——P1073 最优贸易
    洛谷——P1516 青蛙的约会
    洛谷——P1962 斐波那契数列
    洛谷——P3811 【模板】乘法逆元
    58到家数据库30条军规解读
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9437493.html
Copyright © 2011-2022 走看看