欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch(二)

程序员文章站 2022-07-05 07:55:19
...

下载 Elasticsearc

  • https://www.elastic.co/cn/downloads/past-releases#elasticsearch

Linux部署

  • 创建用户(ES不允许 root用户直接运行
    $ groupadd es; useradd -g es es;
    $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz;
    $ tar -xvf elasticsearch-7.8.0-linux-x86_64.tar.gz;
    $ chown es.es elasticsearch-7.8.0 -R

单机部署

$ vim config/elasticsearch.yml;


cluster.name: elasticsearch
node.name: node-1
path.data: /path/to/data
path.logs: /path/to/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

集群部署

$ vim config/elasticsearch.yml;


# 集群名称
cluster.name: cluster-es
# 节点名称, 每个节点的名称不能重复
node.name: node-1
path.data: /path/to/data
path.logs: /path/to/logs
# ip地址, 每个节点的地址不能重复
network.host: linux1
# 是不是有资格主节点
node.master: true
node.data: true
# HTTP API端口
http.port: 9200
# 跨域配置(head插件需要打开以下配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
# es7.x之后新增的配置, 初始化一个新的集群时, 需通过该配置进行选举 master
cluster.initial_master_nodes: ["node-1"]
# es7.x 之后新增的配置, 节点发现
discovery.seed_hosts: ["linux1:9300","linux2:9300","linux3:9300"]
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
# 集群间组件 TCP监听端口
transport.tcp.port: 9300
transport.tcp.compress: true
# 集群内同时启动的数据任务个数, 默认为2个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
# 添加或删除节点及负载均衡时, 并发恢复的线程个数, 默认为4个
cluster.routing.allocation.node_concurrent_recoveries: 16
# 初始化数据恢复时, 并发恢复线程的个数, 默认为4个
cluster.routing.allocation.node_initial_primaries_recoveries: 16

$ vim /etc/security/limits.conf


# 每个进程可以打开文件数的限制
es soft nofile 65536
es hard nofile 65536

$ vim /etc/security/limits.d/20-nproc.conf


# 每个进程可以打开文件数的限制
es soft nofile 65536
es hard nofile 65536
# 操作系统级别对每个用户创建进程数的限制
* hard nproc 4096

$ vim /etc/sysctl.conf


# 一个进程可以拥有的 VMA(虚拟内存区域)的数量, 默认值为 65536
vm.max_map_count=655360

  • 重新加载:
    $ sysctl -p;

  • 启动 ES


$ bin/elasticsearch # 启动
$ bin/elasticsearch -d # 后台启动

Windows集群


# 节点 1
cluster.name: my-elasticsearch
# 节点名称, 集群内要唯一
node.name: node-1
node.master: true
node.data: true
# ip地址
network.host: localhost
# HTTP API端口
http.port: 9201
# 集群间组件 TCP监听端口
transport.tcp.port: 9301
#discovery.seed_hosts: ["localhost:9301", "localhost:9302","localhost:9303"]
#discovery.zen.fd.ping_timeout: 1m
#discovery.zen.fd.ping_retries: 5
# 集群内的可以被选为主节点的节点列表
#cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
# 跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

# 节点 2
cluster.name: my-elasticsearch
# 节点名称, 集群内要唯一
node.name: node-2
node.master: true
node.data: true
# ip地址
network.host: localhost
# HTTP API端口
http.port: 9202
# 集群间组件 TCP监听端口
transport.tcp.port: 9302
# discovery是 es用于指定 master节点的模块; master节点是不用加的
discovery.seed_hosts: ["localhost:9301"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# 集群内的可以被选为主节点的节点列表
#cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
# 跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

# 节点 3
cluster.name: my-elasticsearch
# 节点名称, 集群内要唯一
node.name: node-3
node.master: true
node.data: true
# ip地址
network.host: localhost
# HTTP API端口
http.port: 9203
# 集群间组件 TCP监听端口
transport.tcp.port: 9303
# 候选主节点的地址, 在开启服务后可以被选为主节点
discovery.seed_hosts: ["localhost:9301", "localhost:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# 集群内的可以被选为主节点的节点列表
#cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
# 跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

  • 启动节点
    $ bin/elasticsearch.bat

  • 查看集群节点状态:
    http://localhost:9201/_cluster/health

安装 Kibana

  • Kibana是 ES的节点监控& 数据可视化工具

1. Kibana下载: 
https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-windows-x86_64.zip

2. 解压后修改 config/kibana.yml文件
# 默认端口
server.port: 5601
# ES 服务器的地址
elasticsearch.hosts: ["http://localhost:9200"]
# 索引名
kibana.index: ".kibana"
# 支持中文
i18n.locale: "zh-CN"

3. Windows环境下执行 
bin/kibana.bat文件

4. 通过浏览器访问
http://localhost:5601

Elasticsearch数据备份与恢复

安装备份& 恢复工具

  1. 安装 node
    $ curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
    $ yum install -y nodejs;
    $ node --version;

  2. 设置淘宝镜像
    $ npm config set registry http://registry.npm.taobao.org

  3. 安装 elasticdump
    $ npm install elasticdump -g;

数据备份脚本

$ mkdir /home/es/backup/data -p;
$ touch /home/es/backup/backup-data.sh;
$ chmod 755 /home/es/backup/backup-data.sh;


- 编辑脚本
$ vim backup-data.sh
#!/bin/bash
index=${1}
address=${2}
echo 'begin backup index: '${index}' from '${address}
elasticdump --input=http://${address}:9200/${index} --output=/home/es/backup/data/${index}_alias.json --type=alias &> /dev/null
elasticdump --input=http://${address}:9200/${index} --output=/home/es/backup/data/${index}_analyzer.json --type=analyzer &> /dev/null
elasticdump --input=http://${address}:9200/${index} --output=/home/es/backup/data/${index}_data.json --type=data &> /dev/null
elasticdump --input=http://${address}:9200/${index} --output=/home/es/backup/data/${index}_template.json --type=template &> /dev/null
echo "end backup."

- 开始备份数据(参数1:索引名称, 参数2:目标 ES地址
$ ./backup-data.sh article 127.0.0.1

数据恢复脚本

$ touch /home/es/backup/recovery-data.sh;
$ chmod 755 /home/es/backup/recovery-data.sh;


$ vim recovery-data.sh
#!/bin/bash
index=${1}
address=${2}
echo 'begin recovery index: '${index}' from '${address}
elasticdump --input=/home/es/backup/data/${index}_alias.json --output=http://${address}:9200/${index} --type=alias &> /dev/null
elasticdump --input=/home/es/backup/data/${index}_analyzer.json --output=http://${address}:9200/${index} --type=analyzer &> /dev/null
elasticdump --input=/home/es/backup/data/${index}_data.json --output=http://${address}:9200/${index} --type=data &> /dev/null
elasticdump --input=/home/es/backup/data/${index}_template.json --output=http://${address}:9200/${index} --type=template &> /dev/null
echo "end recovery."

- 开始恢复数据(参数1:索引名称, 参数2:目标 ES地址
$ ./recovery-data.sh article 127.0.0.1

  • 配置环境变量
    $ vim /etc/profile
    export ELASTIC_DUMP=/usr/lib/node_modules/elasticdump
    export PATH= P A T H : PATH: PATH:ELASTIC_DUMP/bin

使生效系统变量:
$ source /etc/profile;

如果您觉得有帮助,欢迎点赞哦 ~ 谢谢!!