暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

大数据-ELK-ElasticSearch

破晓的不止黎明 2019-07-09
952

ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK 协议栈.


ELK:日志协议栈


E:elasticsearch  全文检索框架  类似于solr L:logstash 日志数据采集框架  类似于flume K:kibana  报表展示框架





今天介绍一下ELK中的 Elasticsearch



简介


Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。




主要特点


– 实时分析

– 分布式实时文件存储,并将每一个字段都编入索引

– 文档导向,所有的对象全部是文档

– 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)。

– 接口友好,支持 JSON

Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。


Elasticsearch核心概念


index:索引库,类似于mysql当中数据库


type:类型,类似于数据库下面的表


documents:一个document相当于关系型数据库中的一行row。索引表下面的一条条的数据.


fields:相当于是数据表的字段,对文档数据根据不同属性进行的分类标识


mappings:

映射关系,mappings主要是用于定义es当中字段的属性,相当于关系型数据库中的表结构。决定字段的分词,存储,以及索引特性


settings:定义分片数以及副本数。副本数创建之后可以进行更改

分片数一旦创建之后,就不能更改了


node:es节点,节点是集群的一部分


cluster:集群,集群由一个或多个节点组成,es节点组织到一起就是es的集群


shard&replicat:

分片与复制,副本是分片的副本。分片有主分片(primary Shard)和副本分片(replica Shard)之分。一个Index数据在物理上被分布在多个主分片中,每个主分片只存放部分数据。每个主分片可以有多个副本,叫副本分片,是主分片的复制。



Elasticsearch 安装部署



第一步创建普通用户

ES不能使用root用户启动,必须使用普通用户安装启动这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等

创建一个es专门的用户(必须

#使用root用户三台机器执行以下命令

useradd es 

mkdir -p /export/servers/es

chown -R es /export/servers/es

passwd es


第二步:为普通用户es添加sudo权限

为了让普通用户更大的操作权限,我们一般都会给普通用户设置sudo权限,方便普通用户的操作

三台机器使用root用户执行visudo命令然后es用户添加权限

visudo

es      ALL=(ALL)       ALL


第三步:下载并上传压缩包,然后解压

tar -zxf elasticsearch-6.7.0.tar.gz -C /export/servers/es/


第四步:修改配置文件


01,修改elasticsearch.yml

node01服务器使用es用户来修改配置文件

cd /export/servers/es/elasticsearch-6.7.0/config
mkdir -p /export/servers/es/elasticsearch-6.7.0/logs
mkdir -p /export/servers/es/elasticsearch-6.7.0/datas
rm -rf elasticsearch.yml
vim elasticsearch.yml


02,修改jvm.option

修改jvm.option配置文件,调整jvm堆内存大小

node01使用es用户执行以下命令调整jvm堆内存大小,每个人根据自己服务器的内存大小来进行调整




第五步:将安装包分发到其他服务器上面

node01使用es用户将安装包分发到其他服务器上面去

cd /export/servers/es/

scp -r elasticsearch-6.7.0/ node02:$PWD

scp -r elasticsearch-6.7.0/ node03:$PWD


第六步node02node03修改es配置文件


第七步修改系统配置解决启动时候的问题

由于现在使用普通用户来安装es服务,es服务服务器的资源要求比较多,包括内存大小,线程数等所以我们需要给普通用户解开资源的束缚

解决启动问题一普通用户打开文件的最大数限制

三台机器使用es用户执行以下命令解除打开文件数据的限制

sudo vi /etc/security/limits.conf

添加如下内容: 注意*不要去掉了



解决启动问题二:普通户启动线程数限制

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

找到如下内容:

* soft nproc 1024#修改为

* soft nproc 4096


解决启动问题三:普通用户调大虚拟内存

三台机器执行以下命令,注意每次启动ES之前都要执行

sudo  sysctl -w vm.max_map_count=262144  


第八步启动ES服务

三台机器使用es用户执行以下命令启动es服务

前台启动:

cd /export/servers/es/elasticsearch-6.7.0/bin/

./elasticsearch

后台启动:

nohup /export/servers/es/elasticsearch-6.7.0/bin/elasticsearch 2>&1 &

启动成功之后jsp即可看到es的服务进程,并且访问页面

http://node01:9200


能够看到es启动之后的以下一些信息就成功了:






文章转载自破晓的不止黎明,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论