Elasticsearch 一、简序及 Linux环境下安装 Elasticsearch6.4.3 及 安装Kibana后台界面操作服务

一、简序

1、说明

Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。
Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。

2、Elasticsearch优势

采用倒排索引
Elasticsearch采用倒排索引实现,把关键字分词保存到搜索列表
在这里插入图片描述
横向可扩展性:
只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群。
分片机制提供更好的分布性:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率。

高可用:
提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。
口使用简单:共需一条命令就可以下载文件,然后很快就能搭建一一个站内搜索引擎。

3、Elasticsearch应用场景

大型分布式日志分析系统ELK elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据)
大型电商商品搜索系统、网盘搜索引擎等。

4、Elasticsearch存储结构

Elasticsearch是文件存储,Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式,比如下面这条用户数据:
{
“name” : “yushengjun”,
“sex” : 0,
“age” : 25
}
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)

二、安装Elasticsearch

安装说明

Linux内存至少1G!
由于Elasticsearch是Java写的,所以需要安装jdk环境。
下载链接:https://pan.baidu.com/s/1RTx6r5wD0jaT1VUS5MUD_Q
提取码:oplr

1、上传 Elasticsearch

将安装包使用上传工具上传到 Linux 上面的 /usr/local 目录下并且解压。执行解压命令

## 解压
tar -zxvf elasticsearch-6.4.3.tar.gz   

2、修改 elasticsearch.yml 配置开放端口

进入到 elasticsearch6.4.3 目录下的 /config 文件夹下面,修改 elasticsearch.yml 文件

## 开放端口
network.host: 192.168.91.7    # 这是当前linux ip地址,ES节点, 暴露ES RESTful 接口端口号提供给外部通讯使用
http.port:9200                # 访问端口号(HTTP协议外部通信),另外有9300的内部通信端口号

在这里插入图片描述

3、修改 /etc/sysctl.conf 配置

注意: 必须在 root 账号执行,cat /etc/redhat-release 命令查看系统版本,whoami 命令查看当前登录用户

在 sysctl.conf 文件最后添加 vm.max_map_count=655360

vm.max_map_count=655360

执行命令更新sysctl.conf 配置

cd /etc           # 进入到/ect目录
sysctl -p         # 更新 sysctl.conf 配置

4、修改 /etc/security/limits.conf

最后添加以下代码(root账户下操作)

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

此时需切换用户生效, 还未执行步骤5, 无需理会,已执行步骤5, 使用命令 su wangsongsu root 进行账号切换一下就好

5、创建分组/用户 (root用户无法启动 elasticsearch)

如果此时启动,会报错 root不能启动的哦 不能通过root账号启动 这是属于自身的安全策略
解决方案:先创建一个非root 用户

cd /usr/local                                # 切换到local目录
groupadd lplb                                # 创建一个用户分组
useradd wangsong -g lplb -p 123456           # 创建一个用户,设置密码为123456
passwd wangsong                              # 修改用户密码,用于登录(大于8位,不能纯数字)
chown -R wangsong:lplb elasticsearch-6.4.3   # 为该用户授权
su wangsong                                  # 切换用户

启动

cd /usr/local/elasticsearch-6.4.3/bin     # 进入elasticsearch bin目录
./elasticsearch                           # 启动

6、启动 Elasticsearch 并访问

注意事项

  • 如防火墙未关闭则执行防火墙关闭命令 systemctl stop firewalld.service
  • 如是云服务器请放行 9200 端口, 9300 也记得放行, java 使用的 9300端口进行链接es
  • 如果elasticsearch 启动命令权限不足,执行命令 ./elasticsearch: Permission denied 分配该文件的所有操作权限
# 进入bin目录
cd /usr/local/elasticsearch-6.4.3/bin   

# 普通启动, 窗口关闭或Ctrl + C 则程序终止
./elasticsearch 
 
# 后台启动
./elasticsearch -d        

# 查进程/查看是否启动成功
ps aux|grep elasticsearch        

如下访问:ip+:9200,出现以下启动成功(http://192.168.177.128:9200/
在这里插入图片描述

7、停止 Elasticsearch

# 查进程/查看是否启动成功
ps aux|grep elasticsearch   
# 关闭es, 直接杀进程方式关闭 (1302=pid,根据查进程的第二列数据获取的进程pid来关闭  `kill -9 pid` )     
kill -9 1302    

8、错误一览

说明:如果是按上方1 到 6 步骤安装elasticsearch ,将不会出现以下错误

问题1:最大虚拟内存太小

看步骤3,使用root账号修改 /etc/sysctl.conf 文件配置

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
问题2:原因:无法创建本地文件问题,用户最大可创建文件数太小

看步骤4,在 /etc/security/limits.conf 文件中文件配置即可

ERROR: bootstrap checks failedmax file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
问题3:权限不足

看步骤5,权限不足,不能使用root账号启动elasticsearch, 其他账号需root账号分配elasticsearch 目录的操作权限,

java.nio.file.AccessDeniedException: /data/wwwroot/elasticsearch-6.2.4/config/jvm.options

三、安装Kibana 操作界面

1、上传 kibana

上传 kibana-6.4.3-linux-x86_64.tar.gz 到 Linux 服务器

2、解压授权

需要root 用户操作,如非root 用户则切换root用户

us root                                            # 切换为root用户
tar -zxvf kibana-6.4.3-linux-x86_64.tar.gz         # 解压
chown -R esmark:esxwhy kibana-6.4.3-linux-x86_64   # 为该用户授权(方便操作两个服务,都使用 esmark 用户)
us esmark                                          # 切换用户

3、修改 kibana/config/kibana.yml

改成对应的ip地址
在这里插入图片描述

4、启动访问

进入到kibana的bin目录执行命令

./kibana          # 启动
nohup ./kibana &  # 如需后台启动  执行该命令

启动成功如下
在这里插入图片描述
访问 http://192.168.177.128:5601
在这里插入图片描述

四、Elasticsearch 集群环境搭建

ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心内容 分片机制、集群发现、分片负载均衡请求路由。
ES集群采用分片模式,取模算法实现索引文件均分到每台服务器
注意:索引的主分片primary shards定义好后,后面不能做修改。也就是服务器数量

ES集群核心原理分析

1、每个索引会被分成多个分片shards进行存储,默认创建索引是分配5个分片进行存储。
每个分片都会分布式部署在多个不同的节点上进行部署,该分片成为primary shards。
注意:索引的主分片primary shards定义好后,后面不能做修改。

2、为了实现高可用数据的高可用,主分片可以有对应的备分片replics shards,replic shards分片承载了负责容错、以及请求的负载均衡。
注意: 每一个主分片为了实现高可用,都会有自己对应的备分片,主分片对应的备分片不能存放同一台服务器上。,主分片primary shards可以和其他replics shards存放在同一个node节点上。

1、在多台服务器重复第二个步骤安装 Elasticsearch

如需Kibana,第三个步骤也重复

注意:使用VM 虚拟机直接克隆服务器,data文件会导致数据不同步,启动报failed to send join request to master错误,需清除每台服务器data文件

2、服务器环境

准备三台服务器集群

服务器名称 IP地址
node-1 192.168.212.182
node-2 192.168.212.183
node-3 192.168.212.184

3、修改 elasticsearch.yml 文件

vi elasticsearch.yml

cluster.name: myes      #  保证三台服务器集群名称一定要相同(分别配置3台服务器)
node.name: node-1       #  每个节点名称不一样 其他两台为 node-2 ,node-3
network.host: 192.168.212.180   # 当前服务器实际 ip地址
discovery.zen.ping.unicast.hosts: ["192.168.212.184", "192.168.212.185","192.168.212.186"]  # 多个服务集群ip
discovery.zen.minimum_master_nodes: 1

关闭防火墙分别启动elasticsearch

systemctl stop firewalld.service

默认底层开启9300 集群

4、验证集群效果

随意一台服务器访问 : http://192.168.212.185:9200/_cat/nodes?pretty
出现如下表示配置成功
在这里插入图片描述
*号表示为master节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值