zoukankan      html  css  js  c++  java
  • ElasticSearch 安装, 带视频

    疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【博客园总入口

    架构师成长+面试必备之 高并发基础书籍 【Netty Zookeeper Redis 高并发实战


    疯狂创客圈 高并发 环境 视频,陆续上线:

    • Windows Redis 安装(带视频)
    • Linux Redis 安装(带视频)
    • Windows Zookeeper 安装(带视频)
    • Linux Zookeeper 安装(带视频)
    • RabbitMQ 离线安装(带视频)
    • Nacos 安装(带视频)
    • ElasticSearch 安装, 带视频

    小视频以及所需工具的百度网盘链接,请参见 疯狂创客圈 高并发社群 博客

    1 版本选择

    建议需要安装6以上版本,这里使用的版本是6.2.2,可以在ElasticSearch官方网站上下载。由于ElasticSearch官方网站的文档非常的全面,对于初学者解决学习、开发过程中的实际问题都非常有参考价值,所以,这里列出官网的地址: https://www.elastic.co/

    why 6.2.2?

    由于截止目前,与spring-data集成的最高版本,是6.2.2, 集成spring-data后,可以使用JPA直接操作ElasticSearch,减少编程的压力。

    2 下载

    1:下载需要安装的ElasticSearch版本,这里为6.2.2

    ElasticSearch 6.2.2版本的下载地址为

    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz

    疯狂创客圈网盘,已经备好,可以直接下载

    2:下载需要安装的Kibana版本,需要与ElasticSearch匹配

    kibana是Elasticsearch官方提供的工具,但是在实际生产使用过程中, 可视化做的不足,没有elasticsearch-head全面。kibana官方地址为
    https://www.elastic.co/cn/downloads/kibana/
    疯狂创客圈网盘,已经备好,可以直接下载

    3:下载IK分词器,作为中文分词器

    在IK 分词器的github网页地址为:https://github.com/medcl/elasticsearch-analysis-ik。在这个网址上,找到与前面安装的ElasticSearch相互匹配的版本,这里这里版本为6.2.2,下载链接如下:
    https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip

    疯狂创客圈网盘,已经备好,可以直接下载

    3 按照ElasticSearch

    第1步: 将安装包上传到Linux,并且解压

    上传到Linux服务器,创建JDK的安装目录,将jdk压缩包解压到创建的安装目录

    mkdir -p  /usr/local/elasticsearch-6.2.2
    tar  -zxvf   /usr/local/elasticsearch-6.2.2.tar.gz   -C   /usr/local/elasticsearch-6.2.2
    

    为了方便后续的使用,和elasticsearch版本的升级,可以为elasticsearch建立一个统一的软连接 /usr/elasticsearch,命令如下:

    
    ln -s /usr/local/elasticsearch-6.2.2/elasticsearch-6.2.2/  /usr/elasticsearch
    

    第2步:建立用来存放elasticsearch数据目录、日志目录

    建立用来存放elasticsearch数据存储目录,命令如下:

    mkdir -p /home/elasticsearch/data
    mkdir -p /home/elasticsearch/log
    

    第3步:修改elasticsearch的配置文件

    elasticsearch的配置文件为安装目录下的config/elasticsearch.yml,主要修改的选项为:节点名称、集群名称、日志目录、数据目录等等,修改后的配置文件如下:

    vi  /usr/elasticsearch/config/elasticsearch.yml
    
    #节点名称
    
    cluster.name:  singlenode-cluster
    
    #集群名称
    
    node.name:  node-1
    
    #数据目录
    
    path.data:  /home/elasticsearch/data
    
    #日志目录
    
    path.logs:  /home/elasticsearch/log
    
    #主机地址
    
    network.host: 10.18.3.91
    #下面配置为head插件配置,如果要用到head的话     
    
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
    http.cors.allow-headers: "X-Requested-With,Content-Type,Content-Length,X-User"
    

    第4步:为ElasticSearch创建专门的用户

    注意elasticsearch默认是不支持使用root运行的,需要新建专门的用户,用户的名称为es,使用如下命令:

    [root@localhost elasticsearch]#  useradd  es
    为es设置密码,使用如下命令:
    [root@localhost elasticsearch]# passwd  es
    

    密码的保密程度要求比较高,新的密码设置为:123!@#qwe
    给es用户,授予安装目录、数据目录、日志的全部权限,使用的命令为:

    chown -R  es:es  /usr/local/elasticsearch-6.2.2/
    chown -R  es:es  /home/elasticsearch/data
    chown -R  es:es  /home/elasticsearch/log
    

    注意:在使用chown指令修改目录的owner时,需要对原始目录进行修改;如果对软连接进行修改,目录是无效的。

    第5步: 更改linux的最大文件描述限制要求

    修改 Linux下/etc/security/limits.conf文件设置

    vim  /etc/security/limits.conf
    

    更改linux的最大文件描述限制要求
    添加或修改如下:

    * soft nofile 262144                                                                                                                                              
    * hard nofile 262144                                                                                                                                              
    es soft memlock unlimited                                                                                                                                         
    es hard memlock unlimited 
    

    第6步:更改linux的的最大线程数

    vi  /etc/security/limits.d/90-nproc.conf
    

    更改linux的的最大线程数,添加或修改如下:

    
    *          soft    nproc     unlimited
    root       soft    nproc     unlimited
    
    

    第7步:更改linux一个进行能拥有的最多的内存区域要求

    更改linux一个进行能拥有的最多的内存区域要求,Linux下/etc/sysctl.conf文件设置
    ,添加或修改如下:

    vi /etc/sysctl.conf

    
    vm.max_map_count = 262144
    vm.swappiness = 1
    
    

    更改linux禁用swapping,:vm.swappiness = 1

    第8步:启动elasticsearch

    启动之前,请切换到es用户,命令如下:

    su  es
    
    /usr/elasticsearch/bin/elasticsearch
    

    如果要后台启动elasticsearch,加上&符号即可,完整的命令为:

    /usr/elasticsearch/bin/elasticsearch -d
    

    Kibana的安装

    Elasticsearch 的常用的工具大致有两个:一个是elasticsearch-head,另外一个是kibana。elasticsearch-head 是一个开源项目,官方地址为:
    https://github.com/mobz/elasticsearch-head

    kibana是Elasticsearch官方提供的工具,虽然图形化的用户操作没有elasticsearch-head全面。但是在实际生产使用过程中,使用也是很多的。

    kibana是Elasticsearch官方提供的工具,但是在实际生产使用过程中, 可视化做的不足,没有elasticsearch-head全面。kibana官方地址为
    https://www.elastic.co/cn/downloads/kibana/

    第1步: 上传与解压

    将安装包上传到Linux服务器,创建kibana的安装目录,将kibana压缩包解压到安装目录

    mkdir -p  /usr/local/kibana
    tar  -zxvf  /usr/local/kibana-6.2.2-linux-x86_64.tar.gz  -C  /usr/local/kibana
    

    为了方便后续的使用,和kibana版本的升级,可以为kibana建立一个统一的软连接 /usr/kibana,命令如下:

    ln -s /usr/local/kibana/kibana-6.2.2-linux-x86_64  /usr/kibana
    

    第2步:启动配置

    修改kibana更目录下config/kibana.yml 配置文件,配置kibana需要监控的ElasticSearch服务器,和kibana服务所在的机器。配置的内容如下:

    vi /usr/kibana/config/kibana.yml

    elasticsearch.url: "http://172.18.7.49:9200"      # kibana监控哪台es机器
    server.host: "172.18.7.49"                # kibana运行在哪台机器
    

    第3步:运行和访问

    启动kibana,运行使用下面的命令:
    /usr/kibana/bin/kibana

    [root@localhost ~]#  /usr/kibana/bin/kibana
      log   [00:48:50.903]  Status changed from uninitialized to green - Ready
      log   [00:48:51.005]  Status changed from uninitialized to yellow - Waiting for Elasticsearch
      log   [00:48:51.030]  Status changed from uninitialized to green - Ready
      log   [00:48:51.296]  Status changed from uninitialized to green - Ready
      log   [00:48:51.303]  Status changed from uninitialized to green - Ready
      log   [00:48:51.336]  Server running at http://172.18.7.49:5601
      log   [00:48:51.511]  Status changed from yellow to green - Ready
    

    使用浏览器可以访问http://ip:5601 ,查看kibana的操作界面

    第4步:不能访问排查

    在kibana启动成功后,如果浏览器不能访问,有可能是linux 的防火墙进行了请求的拦截,在测试环境,可以关闭防火墙。
    首先使用systemctl status firewalld 命令,查看防火墙的状态,执行命令如下:

    [root@localhost ~]# systemctl status firewalld
     firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since 四 2019-07-25 19:15:01 CST; 18h ago
         Docs: man:firewalld(1)
     Main PID: 634 (firewalld)
       Memory: 220.0K
       CGroup: /system.slice/firewalld.service
               └─634 /usr/bin/python -Es /usr/sbin/firewalld --nofork –nopid
    

    结果中的Active: active (running) ,表示防火墙正在运行,实验和测试环境,建议进行关闭。关闭防火墙的命令如下:
    service firewalld stop
    首先查看防火墙状态:

    service iptables status

    永久性生效,重启后不会复原

    chkconfig iptables off
    

    关闭:
    即时生效,重启后复原

    后台启动:

    nohup  /usr/kibana/bin/kibana &
    

    查看进程

    netstat -anltp|grep 5601
    

    IK分词器的安装

    Elasticsearch默认情况下,只支持英文分词。默认情况下,Elasticsearch会将中文句子,分成一个一个的汉字。所以,需要给Elasticsearch安装中文分词器插件,这里选择的是IK分词器插件。

    IK分词器有两种分词模式:ik_max_word和ik_smart模式。两种模式的区别,在于分词结果的颗粒度粗细不同:ik_max_word会将中文做最细粒度分词,而ik_smart会做最粗粒度的分词。比如,对于“中华人民共和国人民大会堂”一个字符串,在ik_max_word分词模式下,将被拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。在ik_smart 模式下,该字符串将被拆分为中华人民共和国、人民大会堂等词语。

    第1步: 将安装包上传到Linux,并且解压

    将压缩包elasticsearch-analysis-ik-6.2.2.zip上传到/usr/local目录后,并且建立一个解压缩的目标目录。然后,将压缩包解压缩到目标目录。以上两步,所使用的命令如下:

    mkdir -p /usr/local/elasticsearch-analysis-ik-6.2.2
    unzip /usr/local/elasticsearch-analysis-ik-6.2.2.zip -d  /usr/local/elasticsearch-analysis-ik-6.2.2
    

    将elasticsearch-analysis-ik-6.2.2解压缩目录,复制到elasticsearch的插件目录plugins下,然后重启elasticsearch服务。

    mv -fiv /usr/local/elasticsearch-analysis-ik-6.2.2/elasticsearch  /usr/elasticsearch/plugins
    

    可以通过kibana工具,测试ik_max_word.

    POST /_analyze
    {
      "text":"中华人民共和国人民大会堂",
      "analyzer":"ik_max_word"
    }
    
    {
      "tokens" : [
        {
          "token" : "中华人民共和国",
          "start_offset" : 0,
          "end_offset" : 7,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "中华人民",
          "start_offset" : 0,
          "end_offset" : 4,
          "type" : "CN_WORD",
          "position" : 1
        },
        ….(篇幅原因,省略了10以上的分词结果)
      ]
    }
    
    
    

    具体,请关注 Java 高并发研习社群博客园 总入口


    最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群博客园 总入口

    疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战

    img


    疯狂创客圈 Java 死磕系列

    • Java (Netty) 聊天程序【 亿级流量】实战 开源项目实战

  • 相关阅读:
    lamp配置多个虚拟站点
    linux下lamp环境修改网站根目录
    CentOS 6.7快速搭建lamp环境
    GridView 使用方法总结 (一)
    asp.net学习之Repeater控件
    通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
    ExtJs特点、优缺点及注意事项
    Js获取当前日期时间及其它操作
    C#实现MD5加密
    SqlDataReader、SqlDataAdapter與SqlCommand的 区别
  • 原文地址:https://www.cnblogs.com/crazymakercircle/p/12001292.html
Copyright © 2011-2022 走看看