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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Linux上搭建ElasticSearch单点部署和集群部署 -> 正文阅读

[大数据]Linux上搭建ElasticSearch单点部署和集群部署

1. ElasticSearch单节点部署

1.1 安装步骤

  • 解压ES到指定的目录下

tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz -C 指定的目录

修改解压elasticsearch文件名 mv elasticsearch-7.8.1-linux-x86_64 es7

  • 创建用户:ES不允许root用户直接运行,需要创建新用户

新增用户 useradd xxx

设置密码 passwd xxxx

删除用户再新增 userdel -r xxxx

将解压之后的文件夹所有者权限赋给新建的用户 chown -R username:username 解压后的目录/es7

  • 修改配置文件:config/elasticsearch.yml
cluster.name: es-cluster
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]

修改系统配置文件/etc/security/limits.conf

# 设置每个进程可以打开的文件数的限制
es - nproc 4096        # 设置线程数为4096 
es soft nofile 65536
es hard nofile 65536

修改/etc/security/limits.d/20-nproc.conf

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

修改/etc/sysctl.conf

一个进程可以拥有的VMA数量设置为655360(默认为65536)
vm.max_map_count=655360

使用sysctl -p重新加载

  • 测试启动
    请添加图片描述ES不允许使用root用户直接运行,切换到新用户再次执行
    请添加图片描述 使用Postman发送GET请求查看是否成功启动ElasticSearch
    请添加图片描述

1.2. 可能出现的错误以及对应的解决方法

could not find java in bundled JDK at xxxxxx

  1. 注意安装好的JDk已经配置好了环境变量,可以检查/etc/profile文件
    在这里插入图片描述

  2. 一定不要把JDK安装到某一个用户下,可以是在任何root用户文件夹下(我之前安装在home/huzhen目录下…)
    在这里插入图片描述

  3. 在切换到新用户启动ES之前,一定不要忘记将es7的权限赋给创建的新用户
    chown -R username:username 解压后的目录/es7

ERROR: [1] bootstrap checks failed [1]: max number of threads [3766] for user [testuser] is too low, increase to at least [4096]

  1. 注意虚拟机的内存大小一定要大于1.5G
    在这里插入图片描述
  2. 设置当前启动ElasticSearch的用户,能开启的线程数一定要≥4096
    在这里插入图片描述

2. ElasticSearch集群部署

  • 将软件分发到其他虚拟机上:xsync es解压文件/
  • 同样在每个虚拟机上需要创建新用户进行访问(与单节点配置相同)
  • 修改配置文件/config/elasticsearch.yml:每个虚拟机上的配置,需要修改为对应的network.host和node.name
# ES集群配置
cluster.name: cluster-es
node.name: node-1003
node.master: true
node.data: true
network.host: xxxx
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
http.max_content_length: 200mb
# es7.x后新增配置 初始化一个新的集群时需要选举master
cluster.initial_master_nodes: ["node-1001"]
# 节点发现配置
discovery.seed_hosts: ["linux1:9300", "linux2:9300", "linux3:9300"]
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
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

修改每个虚拟机上的配置文件/etc/security/limits.conf和/etc/security/limits.d/20-nproc.conf(与单节点部署相同配置即可)

  • 依次开启三个ES服务器
    请添加图片描述请添加图片描述请添加图片描述

  • 使用Postman发送GET请求测试是否启动成功
    请添加图片描述

  • 如果启动报错java.nio.file.AccessDeniedException:xxxxx

那就切换到root用户重新将es文件权限赋给所创建的新用户

chown -R user:user es文件目录

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:40:05  更:2022-06-14 22:43:43 
 
开发: 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/19 21:37:08-

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