前言

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. 内核开机logo

    安装 # sudo apt-getinstall netpbm 制图 # bmptoppm logo.bmp > logo.ppm # ppmquant 224 logo.ppm > lo ...

  2. 【SpringBoot】整合日志框架

    一.日志框架概述 1.1 日志框架的产生 1.2 市面上的日志框架 二.SLF4j 使用与整合 2.1 如何在系统中使用SLF4j 2.2 如何整合日志框架 2.3 SpringBoot中的日志关系 ...

  3. 前端基础(五):jQuery

    jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交互, ...

  4. 八:MVC初始化数据库

    生成数据库策略: CreateDatabaseIfNotExists:方法会在没有数据库时创建一个,这是默认行为. DropCreateDatabaseIfModelChanges:如果我们在在模型改 ...

  5. Linux磁盘及文件系统管理3

    文件系统管理工具: 创建文件系统的工具 mkfs mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat,... 检测及修复文件系统的工具 fsck fsck ...

  6. sklearn & ml tutorial

    第一章 引言 pd.scatter_matrix(pd.DataFrame(X_train),c=y_train_name,figsize=(15,15),marker='o',hist_kwds={ ...

  7. springBoot+websocket集群系列知识

    WebSocket简介和spring boot集成简单消息代理 Spring Boot 集成 websocket,使用RabbitMQ做为消息代理 Spring Websocket实现向指定的用户发送 ...

  8. JVM(十一),垃圾回收之老年代垃圾收集器

    十一.垃圾回收之老年代垃圾收集器 1.Serial Old收集器(标记整理算法-单线程-Client模式下) 2.Paraller Old收集器(标记整理算法-多线程-) 3.CMS收集器(标记清除算 ...

  9. java+上传后的文件展示

    文件夹结构支持 大文件上传控件6支持向服务器上传整个文件夹,并且在服务端保存时与本地目录结构完全保持一致,同时在数据库中也保留文件夹的层级结构.开发人员可以借助于数据库中的层级信息方便的管理文件,管理 ...

  10. HDU 5852 Intersection is not allowed! ( 2016多校9、不相交路径的方案、LGV定理、行列式计算 )

    题目链接 题意 : 给定方格中第一行的各个起点.再给定最后一行与起点相对应的终点.问你从这些起点出发到各自的终点.不相交的路径有多少条.移动方向只能向下或向右 分析 : 首先对于多起点和多终点的不相交 ...