前言:网上有很多相关方面的教程,但是却没有系统的体系,最近在学ElasticSearch,所以先整理一份,互相交流学习。

整体过程概述
1. 设置普通用户,ElasticSearch默认只能使用普通用户启动。
2. 配置环境,需要依赖JDK环境
3. 安装ElasticSearch,解决kernal版本低的问题
4. 配置外网访问,解决无法启动的三个错误问题
5. 让ElasticSearch在后台运行
6. 如何关闭ElasticSearch的后台进程

一、用户设置

如果已经是普通用户登录可跳过此步骤。

ElasticSearch默认是不能使用root用户进行启动的,所以需要先添加一个普通用户,并使用普通用户身份安装ElasticSearch。

1.添加一个用户,无任何提示则表示成功添加。

[root@localhost soft]# adduser king

2.设置用户密码,需要输入两次。其中提示无效的密码可以不用管,是因为密码太简单,不符合安全要求。

[root@localhost soft]# passwd king
更改用户 king 的密码 。
新的 密码:
无效的密码: 过于简单化/系统化
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

3.在根目录下创建一个文件夹soft,并将拥有者更改为king,使用ls -al /soft命令查看此时/soft文件夹的拥有者。

[root@localhost /]# mkdir /soft
[root@localhost /]# chown king /soft
[root@localhost /]# ls -al /soft
drwxr-xr-x.  2 king root 4096 93 01:58 .
dr-xr-xr-x. 26 root root 4096 93 01:58 ..

一个点代表当前目录,两个点代表上级目录,可以看到当前目录的拥有者已经是king了。

二、安装jdk1.8

如果已经安装jdk1.8可跳过此步骤

ElasticSearch是基于Java开发的,所以要先安装jdk环境。

1.使用yum安装openjdk1.8,使用yum search jdk1.8搜索安装包

[root@localhost elasticsearch-5.5.2]$ yum search jdk
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
# 会有很多版本的jdk,只展示我们要安装的这个版本

2.安装openjdk1.8

[root@localhost ~]# yum install java-1.8.0-openjdk.x86_64

安装完成后输入java命令,有相应输出就说明安装成功了。

3.至此之前,我们都是使用root身份来操作的,下面使用如下命令切换到king用户。

[root@localhost /]# su king
[king@localhost /]$ cd /soft
[king@localhost soft]$ 

这时就以king用户身份登录了,我们使用cd命令进入/soft目录,然后进行接下来的操作。

三、下载ElasticSearch并安装

1.首先到官网下载最新版本的ElasticSearch的zip压缩包,也可以复制下载地址在终端中使用wget命令直接下载到CentOS中。例如在终端中执行以下命令:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.zip

下载过程可能比较慢,可以使用自己电脑下载后使用ftp工具上传到/soft目录。

2.下载完成后,解压elasticsearch-5.5.2.zip

unzip elasticsearch-5.5.2.zip

解压完成后内容如下

[king@localhost soft]$ ls
elasticsearch-5.5.2  elasticsearch-5.5.2.zip

3.进入elasticsearch-5.5.2,并启动elasticsearch

[king@localhost soft]$ cd elasticsearch-5.5.2
[king@localhost elasticsearch-5.5.2]$ bin/elasticsearch
## 会有一堆日志输出,还报了一个异常java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ ...不过这个异常不影响启动,是因为我们的内核版本太低了,新版本系统应该没这个问题。

4.让启动不提示这个异常可以在config/elasticsearch.yml添加如下两行内容,其中:号后面要加上一个空格,因为这是yaml文件的格式要求,yaml是一种新的属性文件的写法,更简洁,不懂的可以自行查查。

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

5..这时重新启动,不会提示任何错误了。新打开一个窗口,输入curl localhost:9200,如果有以下输出则说明启动成功。

[king@localhost ~]$ curl localhost:9200
{
  "name" : "ZGws7ZX","cluster_name" : "elasticsearch","cluster_uuid" : "yeYDTLbNQ--rmDXMi2xO-g","version" : {
    "number" : "5.5.2","build_hash" : "b2f0c09","build_date" : "2017-08-14T12:33:14.154Z","build_snapshot" : false,"lucene_version" : "6.6.0"
  },"tagline" : "You KNow,for Search"
}

四、配置外网访问

这个时候只有服务器本身能访问ElasticSearch的服务,接下来配置外网服务。

1.在config/elasticsearch.yml添加如下内容:

network.host: 0.0.0.0

五、错误处理

重新启动会报如下三个错误(我的翻译可能有误,大概这个意思)

ERROR: [3] bootstrap checks Failed
#文件句柄太少,至少要65536
[1]: max file descriptors [4096] for elasticsearch process is too low,increase to at least [65536]
#最大线程数太少,至少2048个(经典的2048游戏)
[2]: max number of threads [1024] for user [king] is too low,increase to at least [2048]
#虚拟内存太少,至少262144
[3]: max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]

那么接下来分别解决上面三个问题:
首先切换回root用户进行这些系统操作,使用如下命令

[king@localhost elasticsearch-5.5.2]$ su -
密码:
[root@localhost ~]# 

1.更改文件句柄数

[root@localhost ~]# vi /etc/security/limits.conf

在文件中加入如下内容(*表示任何用户)

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

2.增加线程数

[root@localhost ~]# vi /etc/security/limits.d/90-nproc.conf 

将其中的

* soft    nproc     1024

修改为

* soft    nproc     2048

3.增加虚拟内存

[root@localhost ~]# vim /etc/sysctl.conf 

在其中添加

vm.max_map_count=655360

4.这些修改完成后,并没有生效,需要使用以下命令使其生效。

sysctl -p

六、重新启动ElasticSearch

  1. 刚刚我们使用root用户进行了系统配置,这个时候我们还要切换回king用户,使用如下命令:
su king

2.进入elastic目录,并启动,这时一切正常啦^_^

[king@localhost soft]$ cd elasticsearch-5.5.2
[king@localhost elasticsearch-5.5.2]$ bin/elasticsearch

输出信息如下:

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one,then you 
#中间信息省略,出现下面这个started就成功了。
[2017-09-03T03:26:07,843][INFO ][o.e.n.Node ] [ZGws7ZX] started

这里打开本地浏览器,输入服务器地址就可心成功访问了,显示如下

3.如果项目启动成功了,但是本地访问不到,那么可能是防火墙没有配置。此处就直接把防火墙关闭了。命令如下:

service iptables stop

七、配置ElasticSearch后台运行(方式一:复杂但是通用所有程序)

现在这样虽然可以用了,但是一旦关闭终端ElasticSearch就会停止运行了。方式很简单,使用如下命令运行就可以了:

nohup bin/elasticsearch &

这个时候关闭终端也无防了。稍解释下,nohup就是不接收挂断信号了,直观上的看,就是不占用终端,可以继续在同一个终端干其它的事,但是终端关闭,ElasticSearch程序也会退出。&会让程序在后台执行,不依赖当前用户。二者结合就可以让ElasticSearch程序在后台永远的执行下去了。

这个时候程序的日志都会保存在程序目录的nohup.out文件中,可以使用如下命令动态查看日志

tail -fn 200 nohup.out

如果不想输出nohup.out文件怎么办呢?也很简单,将输出信息重定向就可以了

nohup bin/elasticsearch >/dev/null 2>&1 &

1代表标准(正确)输出,2代表错误输出。 >/dev/null是将所有正确输出都保存到null文件中,都会被抛弃掉。2>&1是指将错误输出也重定向到标准输出。(如果看不懂没关系,那就去学,大神略过)。

七、配置ElasticSearch后台运行(方式二:简单但是只能用于ElasticSearch)

在启动时加上 -d 参数,如下

[king@localhost elasticsearch-5.5.2]$ bin/elasticsearch -d
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one,then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[king@localhost elasticsearch-5.5.2]$

八、关闭后台的ElasticSearch程序

先查看后台的信息

[king@localhost elasticsearch-5.5.2]$ ps -ef|grep elastic
king      41496  41309  2 03:53 pts/0    00:00:11 /usr/bin/java -xms2g -Xmx2g -XX:+UseConcmarkSweepGC -  .............

根据PID关闭进程,重新查看,有一个退出任务已经在执行了

[king@localhost elasticsearch-5.5.2]$ kill 41496
[king@localhost elasticsearch-5.5.2]$ ps -ef|grep elastic
king      41642  41309  0 04:02 pts/0    00:00:00 grep elastic
[1]+  Exit 143                nohup bin/elasticsearch > /dev/null 2>&1

一、CentOS6.5安装ElasticSearch5.5完整纪录与问题总结的更多相关文章

  1. Elasticsearch属性单词常用解析说明

    这篇文章主要介绍了Elasticsearch属性单词常用解析说明,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

  2. Java操作Elasticsearch rest-high-level-client 的基本使用

    这篇文章主要介绍了Java操作Elasticsearch rest-high-level-client 的基本使用,本篇主要讲解一下 rest-high-level-client 去操作 Elasticsearch的方法,结合实例代码给大家详细讲解,需要的朋友可以参考下

  3. Elasticsearch插件及nodejs的安装配置

    这篇文章主要为大家介绍了Elasticsearch插件及nodejs的安装配置,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. SpringBoot+Elasticsearch实现数据搜索的方法详解

    Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。本文将利用SpringBoot整合Elasticsearch实现海量级数据搜索,需要的可以参考一下

  5. PHP中使用ElasticSearch最新实例讲解

    这篇文章主要介绍了PHP中使用ElasticSearch最新实例讲解,这篇文章的教程是比较详细,有需要的同学可以研究下

  6. Laravel使用scout集成elasticsearch做全文搜索的实现方法

    这篇文章主要介绍了Laravel使用scout集成elasticsearch做全文搜索的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. SpringBoot 整合 Elasticsearch 实现海量级数据搜索功能

    这篇文章主要介绍了SpringBoot 整合 Elasticsearch 实现海量级数据搜索,本文主要围绕 SpringBoot 整合 ElasticSearch 接受数据的插入和搜索使用技巧,在实际的使用过程中,版本号尤其的重要,不同版本的 es,对应的 api 是不一样,需要的朋友可以参考下

  8. Elasticsearch映射字段数据类型及管理

    这篇文章主要介绍了Elasticsearch映射字段数据类型及管理的讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  9. Elasticsearch之倒排索引及索引操作

    这篇文章主要为大家介绍了Elasticsearch之倒排索引及索引操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. Java注解之Elasticsearch的案例详解

    学会了技术就要使用,否则很容易忘记,因为自然界压根就不存在什么代码、变量之类的玩意,这都是一些和生活常识格格不入的东西。这篇文章主要介绍了Java中Elasticsearch的案例,感兴趣的可以了解一下

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部