【Elasticsearch之由浅到深系列】
由于项目变动不能再使用公司内部的ES环境,该项目必须使用“开源开源开源”,所有源码,环境在开发结束后都要移交给用户,哈,本人负责的商城商品项目组对ES的依赖不用说了,离开他有点活不下去。哈哈,基于这背景,我得拿着当年的笔记复习巩固,开始我的造轮子了。
虽网上已经有很多对ES的介绍,既然是造轮子我也多少来点吧,哈哈~~~~~
Elasticsearch 是一个开源的搜索引擎,建立在全文搜索引擎库 Apache Lucene 基础之上。
用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。
Elasticsearch 不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:
* 一个分布式的实时文档存储,每个字段 可以被索引与搜索 (作数据库用) * 一个分布式实时分析搜索引擎 * 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
ES的发展历程
Elasticsearch 后来作为一家公司(Elastic公司)进行运作,定位为数据搜索和分析平台。在2014年6月获得7000万美元融资,累积融资过亿美元。
ES现在可以与Java、Ruby、Python、PHP、Perl、.NET等多种客户端集成。也可与Hadoop、Spark等大数据分析平台进行集成,功能十分强大。
基于Elasticsearch衍生出了一系列开源软件,统称为 Elatic Stack。
为避免版本混乱,从5.0开始,Elastic公司将各组件的版本号统一。使用时,各组件版本号应一致(版本号形式:x.y.z,z可以不同)。
Elasticsearch 当前版本已经是7开始了,由于项目的特殊性,我接下来的文章系列都是使用6.5.4版本,希望后期能升级,哈哈。
Elatic Stack
废话不多说,开始造轮子~~~~
环境准备:(每一个步骤都会给出资源地址)
OS版本: centos 7.8
java版本:1.8
elasticsearch 版本:6.5.4
安装步骤
1,ES启动不能使用root身份启动,反正不建议你尝试,那开始之前我们先看先在centos下怎样创建用户组,及用户吧
# 使用root身份创建es组及es用户# 创建组groupadd 组名# 创建用户,并同时指定将该用户分配到哪个组useradd -g 组名 用户名# 给创建用户添加密码passwd 用户名
2,我比较喜欢把装的应用放在/usr/local 目录下,你随意,我需要在该目录下创建es相关目录
# 在local目录下 通过sudo给es用户也能创建,目前我在google cloud平台下,不设置那么多了,通过下面也能处理# root沈身份创建下面目录mkdir es#修改目录所有权,下面为改变es目录所属组为es,第一个es为组名chgrp es es # 改变目录的拥有者为es,第一个es为用户名chown es es# 目录路径pwd/usr/local# 修改后结果:drwxr-xr-x. 4 es es 85 Jun 27 06:12 es
3,开始准备安装资源
# 进入es 目录,wget 命令不存在,通过root用户 yum install wget 就行wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz# 解压目录tar -zxvf elasticsearch-6.5.4.tar.gz# ls -ls 结果drwxr-xr-x. 9 es es 155 Mar 29 15:29 elasticsearch-6.5.4-rw-r--r--. 1 es es 113322649 Dec 19 2018 elasticsearch-6.5.4.tar.gz# 对了java 环境就不写了,下面命令要是没有java环境,哈哈自己补吧java -version# cd elasticsearch-6.5.4 ls -ls 4 drwxr-xr-x. 3 es es 4096 Mar 29 14:48 bin 0 drwxr-xr-x. 2 es es 178 Apr 6 08:16 config 0 drwxrwxr-x. 3 es es 19 Mar 29 14:51 data 4 drwxr-xr-x. 3 es es 4096 Dec 17 2018 lib 16 -rw-r--r--. 1 es es 13675 Dec 17 2018 LICENSE.txt 0 drwxr-xr-x. 2 es es 249 Mar 29 14:51 logs 4 drwxr-xr-x. 28 es es 4096 Dec 17 2018 modules396 -rw-r--r--. 1 es es 403816 Dec 17 2018 NOTICE.txt 0 drwxr-xr-x. 3 es es 31 Jun 27 06:18 plugins 12 -rw-r--r--. 1 es es 8519 Dec 17 2018 README.textile
ES 默认配置内存大小为1G,如果需要改动,修改配置文件为:jvm.options
4,启动与停止
# centos 两种方式启动,假定你当前目录为/usr/local/es/elasticsearch-6.5.4# 退出当前对话session es停止,ctrl+c es 停止./bin/elasticsearch# 后台启动./bin/elasticsearch -d# 了解启动脚本可用选项:./bin/elasticsearch -h# 查看es是否正常 ps -ef | grep elasticsearch # 通过jps 可以查看es 进程号[es@es elasticsearch-6.5.4]$ jps7156 Elasticsearch8503 Jps# 停止后台运行 eskill 进程号
哈,到这步没结束呢,在centos下你可能启动会抱错哦,反正我遇到了
# 问题一:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]# 解决:修改切换到root用户修改配置limits.conf 添加下面两行# 命令:vi /etc/security/limits.conf* hard nofile 65536* soft nofile 65536# 问题二:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]# 解决:切换到root用户,进入limits.d目录下修改配置文件。# vi /etc/security/limits.d/90-nproc.conf # 修改如下内容:* soft nproc 1024# 修改为* soft nproc 2048# 问题三:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]# 解决:切换到root用户修改配置sysctl.confvi /etc/sysctl.conf # 添加下面配置:vm.max_map_count=655360# 并执行命令:sysctl -p# 切换到es的用户。# 然后,重新启动elasticsearch,即可启动成功。
【Elasticsearch之由浅到深文章序列】
Elasticsearch-快速了解及搭建ES环境「001」
Elasticsearch-通过外网访问加入kibana,head「002」
世上没有绝望的处境,只有对处境绝望的人~~~您的支持将鼓励我继续创作!