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) 聊天程序【 亿级流量】实战 开源项目实战

  • 相关阅读:
    matplotlib 进阶之origin and extent in imshow
    Momentum and NAG
    matplotlib 进阶之Tight Layout guide
    matplotlib 进阶之Constrained Layout Guide
    matplotlib 进阶之Customizing Figure Layouts Using GridSpec and Other Functions
    matplotlb 进阶之Styling with cycler
    matplotlib 进阶之Legend guide
    Django Admin Cookbook-10如何启用对计算字段的过滤
    Django Admin Cookbook-9如何启用对计算字段的排序
    Django Admin Cookbook-8如何在Django admin中优化查询
  • 原文地址:https://www.cnblogs.com/crazymakercircle/p/12001292.html
Copyright © 2011-2022 走看看