Linux下安装ElasticSearch

2023-05-16

Linux下安装ElasticSearch

  • 一、下载 & 安装
  • 二、安装中遇到的问题及解决方案
  • 三、使用中遇到的问题及解决方案
  • 四、安装head
  • 五、安装kibana

一、下载 & 安装

  1. 先安装JDK

  2. 下载elasticsearch-7.0.0-linux-x86_64.tar.gz

    https://www.elastic.co/cn/downloads/elasticsearch

  3. 安装

    cd /opt
    mkdir elasticsearch
    rz
    tar -zvxf elasticsearch-7.0.0-linux-x86_64.tar.gz -C elasticsearch/
    
  4. 配置

    vim config/elasticsearch.yml
    

    修改/添加以下配置

    #--------------------Cluster ----------------------
    cluster.name: my-application #集群的名称,同一个集群该值必须设置成相同的
    #-------------------- Node -----------------------
    node.name: node-1 #该节点的名字
    #-------------------- Paths -----------------------
    path.data: /path/to/data #数据存放目录
    path.logs: /path/to/logs #日志存放目录
    #-------------------- Memory --------------------
    bootstrap.memory_lock: true #禁止es内存交换
    #-------------------- Network --------------------
    network.host: 192.168.6.3 #所在机器IP
    transport.tcp.port: 9300 #设置节点之间交互的端口号
    http.port: 9200 #http访问端口
    #使用head等插件监控集群信息需要打开此配置项
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    http.cors.allow-credentials: true
    #-------------------- Discovery -------------------
    discovery.zen.ping.unicast.hosts: ["host1", "host2"] #设置集群中的Master节点的初始列表,可以通过这些节点来自动发现其他新加入集群的节点
    discovery.seed_hosts: ["192.168.6.3:9300"] #7.0.0版本为此参数改为此项
    discovery.zen.minimum_master_nodes: 1 #设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点,默认1
    cluster.initial_master_nodes: ["node-1", "node-2"] #7.0.0版本为此参数改为此项
    
  5. 启动

    elasticsearch-7.0.0/bin/elasticsearch

  6. 启动异常详见ElasticSearsh/安装中遇到的问题及解决方案


二、安装中遇到的问题及解决方案

  1. 启动

    ./bin/elasticsearch
    
  2. java.lang.RuntimeException: can not run elasticsearch as root

    更换非root用户启动

    adduser elk   # 添加用户
    passwd elk  # 给用户赋值
    su elk -c './bin/elasticsearch' # 使用新用户启动
    
  3. java.nio.file.AccessDeniedException: …config/jvm.options

    原因:当前用户没有执行权限

    chown linux用户名 elasticsearch安装目录 -R
    # ex: chown elk home/elasticsearch-6.2.4 -R
    

    同时要赋予用户data目录和logs目录的权限

  4. ERROR: [4] bootstrap checks failed

    (1) max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

    原因:每个进程最大同时打开文件数太小

    查看当前每个进程最大同时打开文件数

    ulimit -Sn
    ulimit -Hn
    

    修改配置

    vi /etc/security/limits.conf
    

    添加如下内容

    * soft nofile 65536
    * hard nofile 131072
    

    用户退出后重新登录生效

    (2) memory locking requested for elasticsearch process but memory is not locked

    原因:锁定内存失败

    vim /etc/security/limits.conf
    

    添加如下内容

    * soft memlock unlimited
    * hard memlock unlimited
    

    (3) max number of threads [3795] for user [elastic] is too low, increase to at least [4096]

    原因:最大线程个数太低

    vim /etc/security/limits.conf
    

    添加如下内容

    * soft nproc 2048
    * hard nproc 4096
    

    (4) max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

    原因:操作系统的vm.max_map_count参数设置太小

    vim /etc/sysctl.conf
    

    添加

    vm.max_map_count=262144
    

    执行此命令使上面的配置生效

    sysctl -p
    

    或者直接通过命令设置

    sysctl -w vm.max_map_count=262144
    sysctl -a | grep "vm.max_map_count" //查看是否修改成功
    
  5. 启动elasticsearch直接退出,并返回killed

    原因:内存不足, 需要设置es的虚拟机参数

    vim elasticsearch-7.0.0/bin/elasticsearch
    

    添加以下内容

    ES_JAVA_OPTS="-Xms1g -Xmx1g"
    

    或者

    vim elasticsearch-7.0.0/config/jvm.options
    

    添加以下内容

    -Xms1g
    -Xmx1g
    
  6. failed to obtain node locks

    原因:本地最大储存节点数默认限制为1

     vim elasticsearch.yml
    

    添加以下内容

    node.max_local_storage_nodes: 你的本地储存节点数
    
  7. 无法通过网页访问

    先尝试本地访问

    curl -get 192.168.6.3:9200
    

    如果可以访问,关闭防火墙或开放端口即可

    # 关闭防火墙
    systemctl stop firewalld.service
    # 开启/关闭开机启动防火墙
    systemctl enable/disable firewalld
    # 开放端口
    firewall-cmd --permanent --add-port=9200/tcp --zone=public
    firewall-cmd --reload
    
  8. 启动head

    设置软连接

    cd node-v4.4.7-linux-x64/bin
    grunt -> /elasticsearch-head-master/node_modules/grunt/bin/grunt
    npm -> ../lib/node_modules/npm/bin/npm-cli.js
    

    启动

    grunt server &
    

    软连接用法参见/linux/常用命令


三、使用中遇到的问题及解决方案

  1. The number of object passed must be even but was [1]

    setSource(json) 参数json在高版本不能直接使用String 需要转成Map

  2. Rejecting mapping update to [XXX] as the final mapping would have more than 1 type: [XXX, XX]

    原因:6.0的版本不允许一个index下面有多个type,并且官方说是在接下来的7.0版本中会删掉type

  3. Validation Failed: 1: this action would add [2] total shards, but this cluster currently has [3000]/[3000] maximum shards open

    elasticsearch7默认每个node最多1000个shard,可通过cluster.max_shards_per_node=3000修改。但添加到yml中无效,可暂时通过http请求修改此值,等待官方debug。

    curl -X PUT localhost:9200/_cluster/settings -H "Content-Type: application/json" -d '{ "persistent": { "cluster.max_shards_per_node": "3000" } }' 
    
  4. Fielddata is disabled on text fields by default.

    参考https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html

  5. high disk watermark [0b] exceeded on [O2-Ef7fET9S_MJNAL-q_yA][Desmond Pitt] free: -1b[100%], shards will be relocated away from this node

    es默认的磁盘分配策略问题。

    设置cluster.routing.allocation.disk.threshold_enabled: false

    参考https://www.elastic.co/guide/en/elasticsearch/reference/2.1/disk-allocator.html

  6. [parent] Data too large, data for [<transport_request>] would be larger than

    fielddata的内存被占用完了,其他索引无法分配更多的内存

    设置堆内存./elasticsearch -Xms10g -Xmx10gexport ES_HEAP_SIZE=10g

    参考https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html

    es7修改了这个配置

    export ES_JAVA_OPTS="-Xms10g -Xmx10g"或修改config/jvm.options文件

    参考https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
    https://www.elastic.co/guide/en/elasticsearch/reference/current/jvm-options.html

  7. 副本shards unassigned

    硬盘容量超过一定百分比

    禁用磁盘分配决策程序

    cluster.routing.allocation.disk.threshold_enabled: false
    

    参考https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html


四、安装head

  1. 安装git

    yum install git
    
  2. 下载head

    git clone git://github.com/mobz/elasticsearch-head.git
    
  3. 安装nodejs

    参见Linux/安装nodejs

  4. 启动

    cd elasticsearch-head/
    npm install(使用cnpm需要先安装bzip2,yum install bzip2)
    npm run start
    open http://localhost:9100
    

    在elasticsearch.yml中添加,然后重启elasticsearch

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

五、安装kibana

  1. 下载

    https://www.elastic.co/cn/downloads/kibana

  2. 解压

    tar -zxvf kibana-7.0.0-linux-x86_64.tar.gz
    
  3. 修改配置

    vim config/kibana.yml
    

    添加以下内容

    server.host: "192.168.6.3"
    elasticsearch.hosts: ["http://192.168.6.3:9200"]
    
  4. 启动

    sh bin/kibana
    
  5. 访问

    http://localhost:5601

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下安装ElasticSearch 的相关文章

随机推荐

  • Ubuntu18.04安装PX4踩坑、报错及解决方案整理

    笔者最近需要跑无人机巡检大坝的仿真 xff0c 于是在自己的Ubuntu2018 04中开始安装PX4 xff0c 问过不少之前已经装过PX4的师兄和同学 xff0c 都曾在PX4安装过程中踩过许多坑 xff0c 耗费了不少时间 xff0c
  • 初识ROS文件结构:以阿木实验室Prometheus项目为例

    ROS的工作空间是一个存放工程开发相关文件的文件夹 xff0c Fuerte版本之后的ROS默认使用的是Catkin编译系统 功能包是ROS软件中的基本单元 xff0c 包含ROS节点 库 配置文件等 一个文件夹是功能包的标志是该文件夹中有
  • 六轴无人机装配问题小结(Pixhawk飞控、APM固件、电机装配、电调校准)

    笔者近期需要组装一架六轴无人机供超声波避障模块 单点激光雷达等传感器的测试使用 由于是第一次碰真机 xff0c 面对散落一箱的部件还是非常的头大的 xff0c 不过好在实验室有经验的大佬能提供一些指导 xff0c 并且还能够参考 创客智造
  • 测试API接口,返回404。

    报错 xff1a 34 timestamp 34 34 2020 06 02T12 40 53 125 43 00 00 34 34 status 34 404 34 error 34 34 Not Found 34 34 message
  • 再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结

    转自 xff1a http blog csdn net flydream0 article details 52317532 1 前言 bxCAN是STM32系列最稳定的IP核之一 xff0c 无论有哪个新型号出来 xff0c 这个IP核基
  • NVIDIA TX2自制底板的USB口无法使用的一种解决方法

    这是由于官方的底板上采用INA3221芯片做了电源监控电路 xff0c 只有确保5V电源达到要求的情况下才会使能USB口 而自制的底板上将上述电路省略了 xff0c 所以导致了USB口无法使用 解决办法就是要给TX2更新设备树 在网上找到一
  • Benchmark(基准测试)初相识

    一 benchmark概念 在计算中 xff0c 基准是运行一个计算机程序 一组程序或其他操作的行为 xff0c 以评估一个对象的相对性能 xff0c 通常是通过对它运行一些标准测试和试验 基准测试一词也通常用于精心设计的基准测试程序本身
  • 嵌入式中的通讯协议——UART、I2C、SPI、DMA

    目录 一 通讯的基本概念 二 USART 串口通讯 三 I2C通讯协议 四 SPI通讯协议 五 DMA 直接存储器存取 六 USART I2C SPI比较 一 通讯的基本概念 1 串行通讯与并行通讯 xff08 按数据的传送方式 xff09
  • RISC与CISC比较

    RISC的设计重点在于降低由硬件执行指令的复杂度 xff0c 因为软件比硬件容易提供更大的灵活性和更高的智能 xff0c 因此RISC设计对编译器有更高的要求 xff1b CISC的设计则更侧重于硬件执行指令的功能 xff0c 使CISC的
  • 操作系统选择调度方式和算法的若干准则

    1 调度的类型 按调度的层次 xff1a 长期 xff08 长程 作业 高级 xff09 调度 xff1b 中期 xff08 中级 中程 xff09 调度 xff1b 短期 xff08 短程 进程 低级 xff09 调度 按OS 的类型 x
  • 提灯过桥问题

    题目 xff1a 小明一家过一座桥 xff0c 过桥时是黑夜 xff0c 所以必须有灯 现在小明过桥要1秒 xff0c 小明的弟弟要3秒 xff0c 小明的爸爸要6秒 xff0c 小明的妈妈要8秒 xff0c 小明的爷爷要12秒 每次此桥最
  • 如何判断一个整数数组中是否有重复元素

    题目 xff1a 写一个函数判断一个int类型的数组是否是有效的 所谓有效是指 xff1a 假设数组大小为n xff0c 那么这个int数组里的值为0 n 1之间的数 xff0c 并且每个数只能出现一次 xff0c 否则就是无效数组 例如
  • C++发送HTTP请求---亲测可行

    转自 xff1a http hi baidu com benbearlove item 1671c23017575825b3c0c53f 环境 xp sp3 vs2008 vs2010在静态库中使用 MFC include lt afxwi
  • 百度2014开发测试工程师笔试题(沈阳站)

    时间 xff1a 2013 9 21 地点 xff1a 沈阳 职位 xff1a 开发测试工程师
  • 2014百度校招开发测试工程师笔试题

    时间 xff1a 2013 9 28 地点 xff1a 深圳 职位 xff1a 开发测试工程师
  • 整体了解HADOOP框架及一些开源项目

    Hadoop框架中 xff0c 有很多优秀的工具 xff0c 帮助我们解决工作中的问题 Hadoop的位置 从上图可以看出 xff0c 越往右 xff0c 实时性越高 xff0c 越往上 xff0c 涉及到算法等越多 越往上 xff0c 越
  • Kafka简介

    Kafka简介 在当前的大数据时代 xff0c 第一个挑战是海量数据的收集 xff0c 另一个就是这些数据的分析 数据分析的类型通常有用户行为数据 应用性能跟踪数据 活动数据日志 事件消息等 消息发布机制用于连接各种应用并在它们之间路由消息
  • Flume入门笔记------架构以及应用介绍

    在具体介绍本文内容之前 xff0c 先给大家看一下Hadoop业务的整体开发流程 xff1a 从Hadoop的业务开发流程图中可以看出 xff0c 在大数据的业务处理过程中 xff0c 对于数据的采集是十分重要的一步 xff0c 也是不可避
  • 分布式服务框架dubbo原理解析

    alibaba有好几个分布式框架 xff0c 主要有 xff1a 进行远程调用 类似于RMI的这种远程调用 的 dubbo hsf xff0c jms消息服务 napoli notify xff0c KV数据库 tair 等 这个框架 工具
  • Linux下安装ElasticSearch

    Linux下安装ElasticSearch 一 下载 amp 安装二 安装中遇到的问题及解决方案三 使用中遇到的问题及解决方案四 安装head五 安装kibana 一 下载 amp 安装 先安装JDK 下载elasticsearch 7 0