Hadoop(九)Elasticsearch 安装

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎。


概念

功能

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理 PB 级别的结构化或非结构化数据。

基本概念

  • 集群(Cluster):ES 是一个分布式的搜索引擎,一般由多台物理机组成。这些物理机通过配置一个相同的 cluster name,互相发现,把自己组成一个集群。
  • 节点(Node):同一个集群中的一个 Elasticsearch 主机。
    • Master Node: 集群管理。
      • 控制 Elasticsearch 集群,并负责在集群范围内创建 / 删除索引,跟踪哪些节点是集群的一部分,并将分片分配给这些节点。主节点一次处理一个集群状态,并将状态广播到所有其它节点,这些节点需要响应并确认主节点的信息。
      • 在 Elasticsearch.yml 中,将 nodes.master 属性设置为 true(默认),可以将节点配置为有资格成为主节点的节点。
      • 对于大型生产集群,建议拥有一个专用主节点来控制集群,并且不服务任何用户请求。
    • Client Node: 处理转发客户端请求到 Data Node。
      • 如果将 node.master 和 node.data 设置为 false,则将节点配置为客户端节点,并充当负载平衡器,将传入的请求路由到集群中的不同节点。
      • 若连接的是作为客户端的节点,该节点称为协调节点。协调节点将客户机请求路由到集群中对应分片所在的节点。对于读取请求,协调节点每次选择不同的分片来提供请求以平衡负载。
    • Data Node: 用来保存数据和倒排索引。默认情况下,每个节点都配置为一个 data 节点,并且在 elasticsearch.yml 中将属性 node.data 设置为 true。如果想要一个专用的 master 节点,需将 node.data 属性更改为 false。
  • 主分片(Primary Shard):索引的一个物理子集。同一个索引在物理上可以切多个分片,分布到不同的节点上。分片的实现是 Lucene 中的索引。注:ES 中一个索引的分片个数是建立索引时就要指定的,建立后不可再改变。所以开始建立一个索引时,就要预计数据规模,将分片的个数分配在一个合理的范围。
  • 副本分片(Replica Shard):每个主分片可以有一个或多个副本,个数是用户自己配置的。ES 会尽量将同一索引的不同分片分布到不同的节点上,提高容错性。对一个索引,只要不是所有 Shards 所在的机器都挂了,就还能用。
  • 索引(Index):逻辑概念,一个可检索的文档对象的集合。类似于 DB 中的 Database 概念。同一个集群中可建立多个索引。比如,生产环境常见的一种方法,对每个月产生的数据建索引,以保证单个索引的量级可控。
  • 类型(Type):索引的下一级概念,大概相当于数据库中的 Table。同一个索引里可以包含多个 Type。
  • 文档(Document):即搜索引擎中的文档概念,也是 ES 中一个可以被检索的基本单位,相当于数据库中的 Row,一条记录。
  • 字段(Field):相当于数据库中的 Column。ES 中,每个文档是以 JSON 形式存储的,一个文档可以被视为多个字段的集合。
  • 映射(Mapping):相当于数据库中的 Schema,用来约束字段的类型,不过 ES 的 Mapping 可以不显示地指定、自动根据文档数据创建。

ES 与关系型数据库对比

Relational DatabaseElasticsearch
Database(数据库)Index(索引库)
Table(表)Type(类型)
Row(行)Document(文档)
Column(列)Field(字段)
SchemaMapping
IndexEverything is indexed
SQLQuery DSL
SELECT * FROM TABLE...GET http://...
UPDATE TABLE SET ...PUT http://...

安装

系统环境准备

注:没有特殊说明,所有的指令在三台虚拟机中执行。

  • 1、系统配置

  • 2、JDK 配置

    • rpm -i jdk-8u251-linux-x64.rpm
      vi /etc/profile +
      export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
      export PATH=$JAVA_HOME/bin:$PATH
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      . /etc/profile
      
  • 3、解压工具安装

    • yum install unzip
      
  • 4、创建用户

    • useradd caroly
      passwd caroly
      
  • 5、创建目录

    • mkdir -p /opt/caroly/es
      
    • chown caroly:caroly /opt/caroly/es
      

Elasticsearch 安装

注:只允许普通用户操作,不允许 root 用户

因为 elasticsearch 有远程执行脚本的功能所以容易中木马病毒,所以不允许使用 root 用户启动,root 用户是起不来的。赋权限,用一般的用户启动。

  • 1、切换用户

    • su caroly
      
  • 2、解压(『caroly01』)

    • unzip elasticsearch-2.2.1.zip -d /opt/caroly/es/
      
  • 3、修改配置文件(『caroly01』)

    • cd /opt/caroly/es/elasticsearch-2.2.1/config
      
    • vi elasticsearch.yml
      
    • 修改如下行号的配置:nodename 随意取但是集群内的各节点不能相同。

      • change 17: cluster.name: caroly-es
        change 23: node.name: caroly01
        change 54: network.host: 192.168.240.151
        change 58: http.port: 9200
        
    • 末尾增加防脑裂:如果不配不知道具体数量,不好控制脑裂

      • discovery.zen.ping.multicast.enabled: false 
        discovery.zen.ping.unicast.hosts: ["192.168.240.151","192.168.240.152", "192.168.240.153"]
        discovery.zen.ping_timeout: 120s
        client.transport.ping_timeout: 60s
        
  • 添加 head 插件(『caroly01』):ES 是 rest 方式,采用 Json 格式,可读性不强,添加 head 插件,以图表方式显示

    • su 
      
    • cd/opt/caroly/es/elasticsearch-2.2.1
      
    • chown caroly:caroly -R plugins/
      
    • su caroly
      
  • 添加分词器插件(『caroly01』)

    • cd /opt/caroly/es/elasticsearch-2.2.1/plugins
      
    • mkdir ik
      cd ik
      
    • unzip elasticsearch-analysis-ik-1.8.0.zip
      
    • rm -rf elasticsearch-analysis-ik-1.8.0.zip
      
    • vi plugin-descriptor.properties +
      
    • 修改如下行号信息:ES 版本要对应,不然启动不了

      • change 64: java.version=1.8
        change 71: elasticsearch.version=2.2.1
        
  • 分发 ES(『caroly01』)

    • cd /opt/caroly/es/
      
    • scp -r elasticsearch-2.2.1/ caroly@caroly02:`pwd`
      
    • scp -r elasticsearch-2.2.1/ caroly@caroly03:`pwd`
      
  • 修改配置文件(『caroly02』)

    • su caroly
      
    • vi /opt/caroly/es/elasticsearch-2.2.1/config/elasticsearch.yml
      
    • 修改如下行号的配置:

      • change 23 node.name: caroly02
        change 54 network.host: 192.168.240.152
        
  • 修改配置文件(『caroly02』)

    • su caroly
      
    • vi /opt/caroly/es/elasticsearch-2.2.1/config/elasticsearch.yml
      
    • 修改如下行号的配置:

      • change 23 node.name: caroly03
        change 54 network.host: 192.168.240.153
        
  • 启动

    • cd /opt/caroly/es/elasticsearch-2.2.1/bin
      
    • ./elasticsearch
      
  • 访问(『caroly01』)

    • ss -nal
      
    • 浏览器中访问:

      • caroly01:9200
        
      • caroly01:9200/_plugin/head/
        

更新时间:2020-12-18 16:48:07

本文由 caroly 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载 / 出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://caroly.fun/archives/elasticsearch安装
最后更新:2020-12-18 16:48:07

评论

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×