前言

Elasticsearch 是一个非常值得学习和使用的分布式存储

此次部署将采用 centos6.9

一、初步了解 ES

简谈概念

Elasticsearch 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
Elasticsearch 也使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。

运维角度个人理解

Lucene 是一个相当好的开源的搜索框架,但是其原理对于运维比较难于理解,ES 在 Lucene 基础上进行开发,降低了这类搜索引擎的操作难度,
运维需要做的就是部署,简易使用以及了解会有何种问题出现,并预防将会出现的问题。

二、安装 ES 前准备工作

同一系统以及内核版本

[root@web01 ~]# uname -r
2.6.32-696.el6.x86_64
[root@web01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)

提前准备所需 tar 包

1.下载 jdk8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.下载新版 ES
http://pub.datahunter.cn/elastic/elasticsearch-6.4.0.tar.gz

安装 jdk

1.创建专属目录
mkdir -p /application/java
将 jdk 的 tar 包传入
2.解压 tar 包
tar -zxvf jdk-8u60-linux-x64.tar.gz
3.简化复杂目录
ln -s /application/java/jdk1.8.0_60/ /application/jdk
4.配置环境变量
vim /etc/profile
在文本的末尾添加如下内容:
JAVA_HOME=/application/jdk
CLASSPATH=JAVAHOME/lib/PATH=PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
5.生效配置内容
source /etc/profile
6.查看安装情况
java -verison
看到此行说明成功:java version “1.8.0_60”
7.有可能出现的问题
bash: ./java: cannot execute binary file
问题原因:系统位数与安装 jdk 不同
uname -m 查看系统位数

三、开始安装 ES

同一目录并解压 tar 包

将下载好的 tar 包放到 /application 下
tar xf elasticsearch-6.4.0.tar.gz
解压完成后删掉原 tar 包

简化目录并直接运行 ES

ln -s /application/elasticsearch-6.4.0  /application/elasticsearch
cd /application/elasticsearch/bin
./elasticsearch

四、运行过程中遇到的问题以及解决办法

问题一:can not run elasticsearch as root

ES 必须使用非 root 用户启动
原因:这是出于系统安全考虑设置的条件。由于 ElasticSearch 可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行 ElasticSearch
解决方法:
groupadd elsearch #创建ES用户组
useradd elsearch -g elsearch -p elasticsearch #创建ES用户并归于ES用户组
chown -R elsearch:elsearch /application/elasticsearch #赋予其权限
su elsearch #切换账户
cd /application/elasticsearch/bin
./elasticsearch

问题二:ERROR: bootstrap checks failed(此问题解决中囊括多个类似问题,可以一步到位)

分别加大打开文件的最大数目和进程的最大数目
vim /etc/security/limits.conf 添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

问题三:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

elasticsearch 用户拥有的内存权限太小,至少需要262144(这里只是需要这些内存权限,但不会都用到,还是要看业务)
vim /etc/sysctl.conf
在最后一行添加如下内容:
vm.max_map_count=655360
执行命令使生效:
sysctl -p

问题四:不能后台运行问题

ES 在执行后会夯住,我们需要将它调整至后台运行,一般采用&实现
ES 较特殊,这里使用 nohup 命令
nohup ..../bin/elasticsearch &

问题五:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e5330000, 449642496, 0) failed; error='Cannot allocate memory' (errno=12)

ES 内存分配不足
解决办法:
1、进入/application/elasticsearch-6.4.0/config
2、修改jvm.options 的配置 vim jvm.options
3、修改为 -Xms512m
-Xmx512m

问题六:如何设置外网访问

使用 find 搜索 elasticsearch.yml
vim elasticsearch.yml
将原来默认 ip 更换为0.0.0.0
network.host: 0.0.0.0
http.port: 9200
再次启动后即可外网访问

Elasticsearch 部署以及报错解决的更多相关文章

  1. Elasticsearch聚合操作报错解决办法

    1. 当根据一个类型为text的字段idc进行聚合操作时,查询语句如下: { "aggs": { "top_10_states": { "terms& ...

  2. 部署php程序报错解决---TP框架

    1.TP框架中 出现如下错误: 访问网站 http://192.168.0.204/ STORAGE_WRITE_ERROR_:./Runtime/Cache/Home/51620d75af91aa7 ...

  3. Maven-008-Nexus 私服部署发布报错 Failed to deploy artifacts: Failed to transfer file: ... Return code is: 4XX, ReasonPhrase: ... 解决方案

    我在部署构件至 maven nexus 私服时,有时会出现 Failed to deploy artifacts: Failed to transfer file: ... Return code i ...

  4. CentOS 6.5 Maven 编译 Apache Tez 0.8.3 踩坑/报错解决记录

    最近准备学习使用Tez,因此从官网下载了最新的Tez 0.8.3源码,按照安装教程编译使用.平时使用的集群环境是离线的,本打算这一次也进行离线编译,无奈一编译就开始报缺少jar包的错,即使手动下载ja ...

  5. MyEclipse Server view报错解决方法

    MyEclipse Server view报错解决方法 方法/步骤     启动MyEclipse,弹出一个框,报错. ---------------------------------------- ...

  6. 【spring boot】【elasticsearch】spring boot整合elasticsearch,启动报错Caused by: java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8

    spring boot整合elasticsearch, 启动报错: Caused by: java.lang.IllegalStateException: availableProcessors ], ...

  7. sphinx :undefined reference to `libiconv' 报错解决办法

    sphinx :undefined reference to `libiconv' 报错解决办法   2013-11-30 21:45:39 安装sphinx时不停报错...郁闷在make时报错,错误 ...

  8. redis运用连接池报错解决

    redis使用连接池报错解决redis使用十几小时就一直报异常 redis.clients.jedis.exceptions.JedisConnectionException: Could not g ...

  9. linux下启动dbca或netmgr类的图形界面报错解决

    linux下启动dbca或netmgr类的图形界面报错解决    Xlib: connection to ":0.0" refused by server Xlib: No pro ...

随机推荐

  1. VIM从原理上认识^M问题

    问题背景 VIM在打开文件的时候如果遇到两种换行符风格(dos与unix)共存的文件,通常会在行尾显示出烦人的^M.如果^M较少,比较容易定位到哪几行出了问题,但是如果^M较多,就很难搞.下面先给出解 ...

  2. 【uoj#46】 [清华集训2014] 玄学

      题目传送门:uoj46   题意简述:要求在序列上维护一个操作间支持结合律的区间操作,查询连续一段时间内的操作对单点的作用效果,\(n \leq 10^5,m \leq 6 \times 10^5 ...

  3. Image Processing and Analysis_8_Edge Detection:Theory of Edge Detection ——1980

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  4. 团队第二次作业:需求分析&系统设计

    所属课程 https://edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation/ 作业要求 https://edu.c ...

  5. 小白学习MongoDB笔记(一)·下载及安装MongoDB

    下载地址:http://dl.mongodb.org/downloads.我选的64位的 windows64-bit 2008 R2.当时版本为3.0.7 文件格式为.msi 借用“一线码农”的话: ...

  6. 为什么说Redis是单线程的以及Redis为什么这么块

    一.前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”.什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存降级等问题,这些看似 ...

  7. location - URL

    1.hash:获取或设置href 属性中跟在数字符号 # 之后的内容 2.跳转页面: 1)location.href 2)location.replace() 3)location.reload(tr ...

  8. Series拼接回DataFrame

    从这样的表,如何计算一行汇总层拼接回去

  9. IDEA 安装与破解(亲测有效)

    本文转载:https://blog.csdn.net/g_blue_wind/article/details/74380483 根据以下的流程,顺利安装了最新版本的idea企业版. IDEA 全称 I ...

  10. CloseableHttpClient设置超时

    Java开发我们常常需要和第三方系统进行通信,通信的方式有多种,如dubbo方式,webservice,微服务和CloseableHttpClient等方式,常涉及到超时问题,这里主要说的是Close ...