01.ElasticSearch入门与安装

什么是ElasticSearch

ElasticSearch 简称 ES是基于Apache Lucene构建的开源搜索引擎,是当前流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源搜索引擎工具包,但是lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际的应用中去。但是ES是采用java语言编写,提供了简单易用的RestFul API,开发者可以使用其简单的RestFul API,开发相关的搜索功能,从而避免lucene的复杂性

ES的基本概念

接近实时(NRT Near Real Time )

Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒内)

索引(index)

一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的)并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字索引类似于关系型数据库中Database 的概念。在一个集群中,如果你想,可以定义任意多的索引。

类型(type)

在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台并且将你所有的数 据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,当然,也可 以为评论数据定义另一个类型。类型类似于关系型数据库中Table的概念

NOTE: 在5.x版本以前可以在一个索引中定义多个类型,6.x之后版本也可以使用,但是不推荐;在7~8.x版本中彻底移除一个索引中创建多个类型

映射(Mapping)

Mapping是ES中的一个很重要的内容,它类似于传统关系型数据中table的schema,用于定义一个索引(index)中的类型(type)的数据的结构。 在ES中,我们可以手动创建type(相当于table)和mapping(相关与schema),也可以采用默认创建方式。在默认配置下,ES可以根据插入的数据自动地创建type及其mapping。 mapping中主要包括字段名、字段数据类型和字段索引类型

文档(document)

**一个文档是一个可被索引的基础信息单元,类似于表中的一条记录。**比如,你可以拥有某一个员工的文档,也可以拥有某个商品的一个文档。文档以采用了轻量级的数据交换格式JSON(Javascript Object Notation)来表示。

概念关系图

在这里插入图片描述

ES的单机安装

准备工作

开始本课程之前,先按文章

环境搭建篇–04、虚拟机的克隆与配置

克隆一个虚拟机,修改主机名依次为:ElasticSearch01;修改ip地址依次为192.168.10.206。今天我们要是用的虚拟机环境就搭建完成了。

安装

  1. 下载安装包

    http://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.tar.gz

    也可以直接在Linux中通过wget命令直接下载,由于网速的原因这里先下载好压缩包在上传至Linux
    在这里插入图片描述

  2. 解压缩安装包

    cd到/usr/tools目录,执行以下命令tar -zxf elasticsearch-6.8.0.tar.gz
    在这里插入图片描述

  3. 修改配置文件

    cd到elasticSearch-6.8.0目录,执行vim命令vim config/elasticsearch.yml,设置network.host: 0.0.0.0。默认情况下ElasticSearch是无法被外网访问的,这里将network设置成0.0.0.0不做限制

  4. 创建用户

    ElasticSearch不能以root用户启动,否则启动时会报以下错误
    在这里插入图片描述

    首先执行命令useradd christy添加一个用户;其次执行以下命令echo "123456" | passwd christy --stdin为新用户设置密码

    执行ll命令我们可以看到elasticSearch-6.8.0下面的目录及文件只有root用户有权限操作
    在这里插入图片描述

    所以新建完用户后要执行命令chown -R christy:christy ./将elasticSearch的操作权限赋给christy用户
    在这里插入图片描述

    仅仅修改以上配置还是不够的,后续我们用christy用户操作elasticSearch需要拥有管理员权限,所以这里还要设置christy的权限,执行命令vim /etc/sudoers,添加以下配置
    在这里插入图片描述

    注意:由于该文件是只读文件,修改完毕后保存记得加!强制保存

    上述操作完毕后,我们切换到christy用户,执行启动命令,如下图
    在这里插入图片描述

    这个结果很长啊,这里直截取上面一段,这个启动是失败的,原因如下图
    在这里插入图片描述

  5. 系统环境变量设置

    上图的错误意思是最大文件描述符虚拟内存太小导致的,后面给出了最小值。如果不知道当前系统的默认值可以使用命令sysctl -a|grep vm.max_map_count查看

    • 修改vm.max_map_count

      执行命令sudo vim /etc/sysctl.conf添加内容vm.max_map_count=262144如下
      在这里插入图片描述

      上面这个操作需要重启系统才能生效,如果不想重启系统可以执行命令sysctl -w vm.max_map_count=262144设置本次有效,设置完毕后使用上述提到的查看命令测试一下,如下图
      在这里插入图片描述

    • 修改JVM分配大小

      执行命令vim config/jvm.options,修改-Xms和-Xmx的大小,这两个值视系统而定,但要一样
      在这里插入图片描述

    • 修改最大文件描述符数量和用户最大线程数
      执行命令sudo vim /etc/security/limits.conf添加如下内容后保存

      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 4096
      * hard nproc 4096
      

      在这里插入图片描述

启动

执行命令bin/elasticsearch启动,如果报错的话首先将系统重启一下再试,上面的方式是前台启动,一般提倡后台启动bin/elasticsearch -d
在这里插入图片描述

可以看到我们的elasticSearch已经成功的后台启动了,进程id是7206

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潮汐先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值