ElasticSearch保姆级教程安装

一、前言

1.1 海量数据

在海量数据中执行搜索功能时,如果使用MySQL,效率太低。

1.2 全文检索

在海量数据中执行搜索功能时,如果使用MySQL,效率太低。

1.3 高亮显示

将搜索关键字,以红色的字体展示。

二、ES概述

2.1 ES的介绍

  • ES是一个使用Java语言并且基于Lucene编写的搜索引擎框架,他提供了分布式的全文搜索功能,提供了一个统一的基于RESTful风格的WEB接口,官方客户端也对多种语言都提供了相应的API。

  • Lucene:Lucene本身就是一个搜索引擎的底层。

  • 分布式:ES主要是为了突出他的横向扩展能力。

  • 全文检索:将一段词语进行分词,并且将分出的单个词语统一的放到一个分词库中,在搜索时,根据关键字去分词库中检索,找到匹配的内容。(倒排索引)

  • RESTful风格的WEB接口:操作ES很简单,只需要发送一个HTTP请求,并且根据请求方式的不同,携带参数的同,执行相应的功能。

  • 应用广泛:Github.com,WIKI,Gold Man用ES每天维护将近10TB的数据。

2.2 ES的由来 

2.3 ES和Solr

  • Solr在查询死数据时,速度相对ES更快一些。但是数据如果是实时改变的,Solr的查询速度会降低很多,ES的查询的效率基本没有变化。

  • Solr搭建基于需要依赖Zookeeper来帮助管理。ES本身就支持集群的搭建,不需要第三方的介入。

  • 最开始Solr的社区可以说是非常火爆,针对国内的文档并不是很多。在ES出现之后,ES的社区火爆程度直线上升,ES的文档非常健全。

  • ES对现在云计算和大数据支持的特别好。

2.4 倒排索引

将存放的数据,以一定的方式进行分词,并且将分词的内容存放到一个单独的分词库中。当用户去查询数据时,会将用户的查询关键字进行分词。然后去分词库中匹配内容,最终得到数据的id标识。根据id标识去存放数据的位置拉取到指定的数据。

三、ES的安装

3.1安装docker--cnetos7

设置yum源

vim /etc/yum.repos.d/CentOS-Base.repo

添加下面的源

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

 执行更新源

yum clean all
yum makecache
yum update

3.1.1 下载Docker依赖的环境

想安装Docker,需要先将依赖的环境全部下载,就像Maven依赖JDK一样

yum -y install yum-utils device-mapper-persistent-data lvm2

3.1.2指定Docker镜像源 

默认下载Docker回去国外服务器下载,速度较慢,我们可以设置为阿里云镜像源,速度更快

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.1.3安装Docker

依然采用yum的方式安装

yum makacache fast
yum -y install docker-ce  (docker 商业版,开源版 ce)

3.1.4启动Docker并测试

安装成功后,需要手动启动,设置为开机自启,并测试一下Docker

# 启动Docker服务
systemctl start docker
# 设置开机自动启动
systemctl enable docker
# 测试

(命令去测试:docker ps)查询docker内部的进程(ps -ef)
docker run hello-world

如果出现以下错误信息:

需要配置docker镜像源

vi /etc/docker/daemon.json

方式一:

{
  "registry-mirrors": [
        "https://docker.registry.cyou",
        "https://docker-cf.registry.cyou",
        "https://dockercf.jsdelivr.fyi",
        "https://docker.jsdelivr.fyi",
        "https://dockertest.jsdelivr.fyi",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc",
        "https://asj2dna1.mirror.aliyuncs.com"
       ]
}

 方式二:

{
        "registry-mirrors": [
                                "https://docker.registry.cyou",
                                "https://docker-cf.registry.cyou",
                                "https://dockercf.jsdelivr.fyi",
                                "https://docker.jsdelivr.fyi",
                                "https://dockertest.jsdelivr.fyi",
                                "https://mirror.aliyuncs.com",
                                "https://dockerproxy.com",
                                "https://mirror.baidubce.com",
                                "https://docker.m.daocloud.io",
                                "https://docker.nju.edu.cn",
                                "https://docker.mirrors.sjtug.sjtu.edu.cn",
                                "https://docker.mirrors.ustc.edu.cn",
                                "https://mirror.iscas.ac.cn",
                                "https://docker.rainbond.cc"
        ]
}

 方式三:

{
        "registry-mirrors": [
                                "https://asj2dna1.mirror.aliyuncs.com",
                                "https://hub-mirror.c.163.com",
                                "https://mirror.ccs.tencentyun.com",
                                "https://docker.mirrors.ustc.edu.cn",
                                "https://reg-mirror.qiniu.com",
                                "https://dockerhub.azk8s.cn",
                                "https://registry.docker-cn.com"
        ]
}

以上三种方式任选其一

3.1.5重置配置和docker服务

systemctl daemon-reload 
systemctl restart docker


docker run hello-world

3.2 安装ES&Kibana

进入/opt目录下创建一个文件es-standonly-docker

cd /opt
mkdir es-standonly-docker

在docker-compose.yml文件里面添加下面内容

vim docker-compose.yml


services:
  elasticsearch:
    image: elasticsearch:6.5.4
    restart: always
    container_name: elasticsearch
    ports:
      - 9200:9200
    environment:
      - JAVA_OPTS=--Xms256m -Xmx1024m
  kibana:
    image: kibana:6.5.4
    restart: always
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      - elasticsearch_url=http://192.168.157.137:9200 #your_ip
    depends_on:
      - elasticsearch

然后启动

docker compose up -d

注意,如果我们的es报: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

需要在/etc/sysctl.conf 添加上下面的内容

vim /etc/sysctl.conf


vm.max_map_count=262144

最后启动配置

sysctl -w vm.max_map_count=262144

docker-compose down  

接着需要关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

然后去网站输入http://your_ip:5601/去访问

3.3安装IK分词器--选择性安装

  • ./elasticsearch-plugin install http://43.136.108.62:8080/elasticsearch-analysis-ik-6.5.4.zip

  • 重启ES的容器,让IK分词器生效。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值