环境要求
1.Linux内核必须大于3.5以上
2.安装jdk1.8.0_121以上版本
注意事项
1.Linux内核版本小于3.5的,请更新内核
2.安装jdk1.8
3.不要使用root来运行。使用普通账号
4.修改 /etc/security/limits.conf
如果你的nofile值设置低于65536,会报错。比如,我设置成4096,会报如下错误
ERROR: [1] bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
如果你的nproc值设置低于4096,会报错。比如,我设置成2048,会报如下错误
ERROR: [1] bootstrap checks failed
[1]: max number of threads [2048] for user [joefom] is too low, increase to at least [4096]
我们需要去修改 /etc/security/limits.conf
这个文件
sudo vi /etc/security/limits.conf 或切换到root账号修改(
su - root )
添加如下内容:
1 2 3 |
你的当前用户名 soft nofile 65536 你的当前用户名 hard nofile 65536 你的当前用户名 soft nproc 4096 |
这里不建议设置为 * soft nproc 4096
设置好后可以重新登录shell(不是重启)
执行
ulimit -a 可以看到变化
参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/master/max-number-of-threads.html
5.修改 /etc/sysctl.conf
添加
1 |
vm.max_map_count= 262144 |
并执行命令:
1 |
sudo sysctl -p |
否则可能会报:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
意思是虚拟内存太低
下载elasticsearch,解压,给予可执行权限
1 2 3 |
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.tar.gz tar -zxf elasticsearch-6.5.1.tar.gz && cd elasticsearch-6.5.1/ sudo chmod+x bin/elasticsearch |
注:bin下的elasticsearch,其实是个shell脚本文件
修改默认堆内存占用
进入elasticsearch-6.5.1的 config 目录,修改jvm.options
文件。jvm.options
中 堆内存占用初始大小和最大占用皆为
1 2 3 4 |
# 初始化堆内存占用 -Xms1g # 最大堆内存占用 -Xmx1g |
这个值可以修改,如果你内存够用,可以改为 2G
1 2 |
-Xms2g -Xmx2g |
也可以在启动时临时设置
1 2 |
ES_JAVA_OPTS="-Xms2g -Xmx2g" ./bin/elasticsearch ES_JAVA_OPTS="-Xms4000m -Xmx4000m" ./bin/elasticsearch |
如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。这里的堆内存设置不要低于1G,否则刚启动就会退出
参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
修改配置
修改elasticsearch的配置文件,config目录下elasticsearch.yml
修改几个启动时用的必要配置
1 2 3 |
cluster.name: joefom-searcher network.host: 0.0.0.0 http.port: 9200 |
开启防火墙
如果iptables开着的话,放行9200端口
1 |
sudo iptables -I INPUT -p tcp --dport 9200 -j ACCEPT |
启动
1 |
./bin/elasticsearch |
后台运行
1 2 3 |
sudo touch /var/run/elasticsearch.pid sudo chown joefom:joefom /var/run/elasticsearch.pid ./bin/elasticsearch -d -p /var/run/elasticsearch.pid |
-d
后台运行
-p
启动时在指定路径中创建一个pid文件
测试
GET http://192.168.10.212:9200/
(别忘了改成你的IP地址)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "name": "KKLXB7S", "cluster_name": "joefom-searcher", "cluster_uuid": "p9A_aahnR_y1EfgTX3SDFg", "version": { "number": "6.5.1", "build_flavor": "default", "build_type": "tar", "build_hash": "8c58350", "build_date": "2018-11-16T02:22:42.182257Z", "build_snapshot": false, "lucene_version": "7.5.0", "minimum_wire_compatibility_version": "5.6.0", "minimum_index_compatibility_version": "5.0.0" }, "tagline": "You Know, for Search" } |
能出现一段json内容就算启动成功了