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创建虚拟内存