IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> elasticsearch安装配置教程,集群安装 -> 正文阅读

[大数据]elasticsearch安装配置教程,集群安装

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

基本概念

1.Near Realtime(NRT) 几乎实时

Elasticsearch是一个几乎实时的搜索平台。意思是,从索引一个文档到这个文档可被搜索只需要一点点的延迟,这个时间一般为毫秒级。

2.Cluster 集群

群集是一个或多个节点(服务器)的集合, 这些节点共同保存整个数据,并在所有节点上提供联合索引和搜索功能。一个集群由一个唯一集群ID确定,并指定一个集群名(默认为“elasticsearch”)。该集群名非常重要,因为节点可以通过这个集群名加入群集,一个节点只能是群集的一部分。

确保在不同的环境中不要使用相同的群集名称,否则可能会导致连接错误的群集节点。例如,你可以使用logging-dev、logging-stage、logging-prod分别为开发、阶段产品、生产集群做记

3.Node节点

节点是单个服务器实例,它是群集的一部分,可以存储数据,并参与群集的索引和搜索功能。就像一个集群,节点的名称默认为一个随机的通用唯一标识符(UUID),确定在启动时分配给该节点。如果不希望默认,可以定义任何节点名。这个名字对管理很重要,目的是要确定你的网络服务器对应于你的ElasticSearch群集节点。

我们可以通过群集名配置节点以连接特定的群集。默认情况下,每个节点设置加入名为“elasticSearch”的集群。这意味着如果你启动多个节点在网络上,假设他们能发现彼此都会自动形成和加入一个名为“elasticsearch”的集群。

在单个群集中,您可以拥有尽可能多的节点。此外,如果“elasticsearch”在同一个网络中,没有其他节点正在运行,从单个节点的默认情况下会形成一个新的单节点名为"elasticsearch"的集群。

4.Index索引

索引是具有相似特性的文档集合。例如,可以为客户数据提供索引,为产品目录建立另一个索引,以及为订单数据建立另一个索引。索引由名称(必须全部为小写)标识,该名称用于在对其中的文档执行索引、搜索、更新和删除操作时引用索引。在单个群集中,您可以定义尽可能多的索引。

5.Type类型

在索引中,可以定义一个或多个类型。类型是索引的逻辑类别/分区,其语义完全取决于您。一般来说,类型定义为具有公共字段集的文档。例如,假设你运行一个博客平台,并将所有数据存储在一个索引中。在这个索引中,您可以为用户数据定义一种类型,为博客数据定义另一种类型,以及为注释数据定义另一类型。

6.Document文档

文档是可以被索引的信息的基本单位。例如,您可以为单个客户提供一个文档,单个产品提供另一个文档,以及单个订单提供另一个文档。本文件的表示形式为JSON(JavaScript Object Notation)格式,这是一种非常普遍的互联网数据交换格式。

在索引/类型中,您可以存储尽可能多的文档。请注意,尽管文档物理驻留在索引中,文档实际上必须索引或分配到索引中的类型。

7.Shards & Replicas分片与副本

索引可以存储大量的数据,这些数据可能超过单个节点的硬件限制。例如,十亿个文件占用磁盘空间1TB的单指标可能不适合对单个节点的磁盘或可能太慢服务仅从单个节点的搜索请求。

为了解决这一问题,Elasticsearch提供细分你的指标分成多个块称为分片的能力。当你创建一个索引,你可以简单地定义你想要的分片数量。每个分片本身是一个全功能的、独立的“指数”,可以托管在集群中的任何节点。

Shards分片的重要性主要体现在以下两个特征:

  • 分片允许您水平拆分或缩放内容的大小
  • 分片允许你分配和并行操作的碎片(可能在多个节点上)从而提高性能/吞吐量

这个机制中的碎片是分布式的以及其文件汇总到搜索请求是完全由ElasticSearch管理,对用户来说是透明的。

在同一个集群网络或云环境上,故障是任何时候都会出现的,拥有一个故障转移机制以防分片和结点因为某些原因离线或消失是非常有用的,并且被强烈推荐。为此,Elasticsearch允许你创建一个或多个拷贝,你的索引分片进入所谓的副本或称作复制品的分片,简称Replicas。

Replicas的重要性主要体现在以下两个特征:

  • 副本为分片或节点失败提供了高可用性。为此,需要注意的是,一个副本的分片不会分配在同一个节点作为原始的或主分片,副本是从主分片那里复制过来的。
  • 副本允许用户扩展你的搜索量或吞吐量,因为搜索可以在所有副本上并行执行。

8.ES的优势

速度快、易扩展、弹性、灵活、操作简单、多语言客户端、X-Pack、hadoop/spark强强联手、开箱即用。

  • 分布式:横向扩展非常灵活
  • 全文检索:基于lucene的强大的全文检索能力;
  • 近实时搜索和分析:数据进入ES,可达到近实时搜索,还可进行聚合分析
  • 模式自由:ES的动态mapping机制可以自动检测数据的结构和类型,创建索引并使数据可搜索。
  • RESTful API:JSON + HTTP

一、选配角色主机

masterslaveslave
master:7200node-1:7200node-2:7200

二、系统配置

使用root用户操作

修改elasticsearch用户的文件描述符和锁内存地址空间大小的限制

vim /etc/security/limits.conf 
    elasticsearch           soft    nofile          65536
    elasticsearch           hard    nofile          65536
    elasticsearch           soft    memlock         unlimited
    elasticsearch           hard    memlock         unlimited

修改vm.max_map_count值

vim /etc/sysctl.conf
    vm.max_map_count=262145

载入sysctl配置文件

sysctl -p

查看vm.max_map_count是否已经被修改

cat /proc/sys/vm/max_map_count  

在这里插入图片描述

三、安装

elasticsearch历史版本列表链接地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
在这里插入图片描述

添加elasticsearch用户

useradd elasticsearch  

修改elasticsearch用户密码

passwd elasticsearch  

查看elasticsearch用户

id elasticsearch

在这里插入图片描述

创建并进入到/data/elk文件夹下

mkdir -p /data/elk && cd  /data/elk

下载软件包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz

解压缩软件包

tar -zxf elasticsearch-6.4.2.tar.gz  

删除软件包

rm -fr elasticsearch-6.4.2.tar.gz  

创建软连接elasticsearch到elasticsearch-6.4.2

ln -sd elasticsearch-6.4.2 elasticsearch  

将/data/elk/elasticsearch* 下的所有文件的所属用户和组变更为elasticsearch

chown -R elasticsearch:elasticsearch /data/elk/elasticsearch*

查看变更结果

ls -l /data/elk | grep elasticsearch

在这里插入图片描述

四、配置文件

  • 所有配置文件的编辑使用elasticsearch用户进行操作
    su - elasticsearch

1.master

"//"后面的中文为配置参数解释,机器上操作需要删除

vim /data/elk/elasticsearch/config/elasticsearch.yml

    cluster.name: elk                                                           //集群名称,根据集群名称发现节点
    node.name: master                                                           //节点名称,同一集群中用来区分各个节点
    node.master: true                                                           //是否成为master
    node.data: false                                                            //是否存储数据
    network.host: localhost_IP                                                  //填写本机IP
    http.port: 9200                                                             //HTTP端口
    transport.tcp.port: 9300                                                    //节点通信端口

    discovery.zen.minimum_master_nodes: 2                                       //声明这个集群中有2个master资格节点
    discovery.zen.ping.unicast.hosts: ["master_IP","node-1_IP","node-2_IP"]     //集群发现节点的列表

    bootstrap.memory_lock: true                                                 //锁住内存禁止swap
    transport.tcp.compress: true                                                //压缩TCP上传数据
    search.remote.connect: false                                                //禁用跨集群查询

2.node-1

vim /data/elk/elasticsearch/config/elasticsearch.yml

    cluster.name: elk
    node.name: node-1
    node.master: true
    node.data: true
    network.host: node-1_IP
    http.port: 9200
    transport.tcp.port: 9300
    discovery.zen.minimum_master_nodes: 2
    discovery.zen.ping.unicast.hosts: ["master_IP","node-1_IP","node-2_IP"]

    bootstrap.memory_lock: true
    transport.tcp.compress: true
    search.remote.connect: false

3.node-2

vim /data/elk/elasticsearch/config/elasticsearch.yml

    cluster.name: elk 
    node.name: node-2
    node.master: false
    node.data: true
    network.host: node-2_IP
    http.port: 9200
    transport.tcp.port: 9300
    discovery.zen.minimum_master_nodes: 2
    discovery.zen.ping.unicast.hosts: ["master_IP","node-1_IP","node-2_IP"]

    bootstrap.memory_lock: true
    transport.tcp.compress: true
    search.remote.connect: false

五、启停

1.启动

前台启动查看日志

/data/elk/elasticsearch/bin/elasticsearch 

在这里插入图片描述

没有错误日志,启动成功

正常启动后CTRL+C停止运行,使用后台启动
/data/elk/elasticsearch/bin/elasticsearch -d

2.停止

使用jps命令查看elasticsearch的PID ,然后使用kill命令发送信号终止进程

jps | grep -i "elasticsearch" | awk '{print $1}' | xargs kill -9

在这里插入图片描述

六、查看状态

1.master

http://master_IP:9200
在这里插入图片描述

2.node-1

http://node-1_IP:9200
在这里插入图片描述

3.node-2

http://node2_IP:9200
在这里插入图片描述

4.集群健康状态

任意一个节点的IP:PORT后面接uri:/_cluster/health?pretty

http://master_IP:9200/_cluster/health?pretty

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:17:12  更:2021-07-27 16:17:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 9:45:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码