Elasticsearch-安装与配置

Elasticsearch-SpringBoot整合Elasticsearch

MySQL数据导入到Elasticsearch

使用IK分词器实现搜索

限制Elasticsearch返回的结果集大小

1.下载与安装

第一步很重要,这里就是入坑的开始了,到底该安装哪个版本。最新的是7.0最好不要选最新的,选个接近最新的吧。版本问题后面整合的时候再讨论。

下载之前最好先去官网看看文档简单学习一下Elasticsearch吧。入门部分几分钟就能看完。

1.1 下载

  • 1.1.1 先进elasticsearch的官网,点击右上角download,然后选择elasticsearch进入下载页面。点击图中红框中的链接选择以前的版本。
    在这里插入图片描述

  • 1.1.2 我选择的是6.1.4如果跟着我的博客做的话,建议跟我下载一样的版本。
    在这里插入图片描述

  • 1.1.3 然后download进入下载页面了,我最开始是在Linux上开发的,所以直接下载Linux版本,之前也下载过Windows版本启动失败了。本地没有Linux环境就下载到云服务上吧,反正后面也要部署上去。

  • 1.1.4 下载

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

这里吐槽一下es官网速度贼慢,如果你下载也很慢的话,建议使用axel多线程下载。

1.2 安装

直接解压了

unzip elasticsearch-6.1.4.zip

2 配置

2.1 进入解压后的目录

vim config/elasticsearch.yml

2.2 elasticsearch.yml 目前就配置这几项就行了

# 集群名
cluster.name: lixue
# 节点名
node.name: lixue-node-1
# 数据存储路径
path.data: /data/es/data
# 日志存储路径
path.logs: /data/es/log
# 地址,本地测试的话直接127.0.0.1,在服务器上的话,填局域网ip地址
# 通过ifconfig查看,不能填公网ip地址!!!
network.host: 172.16.0.16
# http端口9200,tcp端口默认为9300,也可以自己配置
http.port: 9200

2.3 然后在根目录下创建/data/es/data和/data/es/log

2.4 然后还不能启动,es只能在非root用户下启动,所以需要添加用户

groupadd groupname
useradd -g groupname username

把文件拥有者改为添加的那个用户需要改elasticsearch目录和data目录

chown -R groupname:username /data
chown -R gourpname:username /usr/local/elasticsearch

改完之后查看

[xiangyida@xiangyida elasticsearch-6.1.4]$ ll
total 232
drwxr-xr-x  2 xiangyida xiangyida   4096 Mar 14  2018 bin
...

3 启动

切换到添加的非root用户下

su username
./bin/elasticsearch

如果要在后台运行的话后面加 -d或者&,第一次启动建议不加,这样能看到日志。
不出意外的话,应该就启动成功了
这里测试一下

curl 你的network.host:9200
{
  "name" : "lixue-node-1",
  "cluster_name" : "lixue",
  "cluster_uuid" : "wAOze0xqRQCRYe3MAkIWRA",
  "version" : {
    "number" : "6.1.4",
    "build_hash" : "d838f2d",
    "build_date" : "2018-03-14T08:28:22.470Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

出现这个就代表安装成功啦。然后笔者就没这么幸运,出现了各种问题
比如一开始启动报了这个错误
max virtual memory areas vm.max_map_count [65530] is too low
通过查资料很快找到的解决方案
解决办法就是
切换到root用户下。修改sysctl.conf

vim /etc/sysctl.conf

添加以下配置

vm.max_map_count=655360

执行以下命令

sysctl -p

然后我再启动,过了1秒发现直接显示killed
开始也很纳闷为什么已启动就被kill了呢。后来我就猜是不是内存不够,
(学生机内存2G)
然后去看了一下系统最近日志文件

tail -n 100 /var/log/messages

发现就是超内存被kill掉了。
然后查资料,网上说es5.0以后启动默认内存是2G。可以修改es启动时的内存分配
修改elasticsearch安装目录下的config里的jvm.options

vim config/jvm.options
-Xms1g
-Xmx1g

或者
修改Elasticsearch的堆内存,最简单的一个方法就是指定ES_HEAP_SIZE环境变量。服务进程在启动时候会读取这个变量,并相应的设置堆的大小。设置命令如下:

export ES_HEAP_SIZE=1g

1g还是不行的话,就500m吧。我设置1g还是不行。
后来我担心改更小了之后影响使用的性能,然后就添加了个虚拟内存

添加虚拟内存

1 创建交换文件

dd if=/dev/zero of=/tmp/swap bs=1024 count=1024000

2 将文件转换为swap格式

 mkswap /tmp/swap

3 使用swapon命令将这个文件挂在到swap分区

 swapon /tmp/swap

4 使交换文件swap分区在系统重启依旧有效

 vi /etc/fstab

在文件末尾(最后一行)加上/tmp/swap swap swap default 0 0
然后终于启动成功了,查看了一下内存
在这里插入图片描述

参考资料
elasticsearch权威指南
elasticsearch用户拥有的内存权限太小
Linux查看系统日志
elasticsearch修改启动内存
Linxu创建虚拟内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值