es出新版了,虽然公司里还是用的老版本,但是本地还是有必要自己安装了玩玩
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
那么一般来说还是建议安装到linux里,当然选择在win和mac也ok,我们这里以linux安装为主
下载完毕以后上传到linux中:
安装es之前,务必安装jdk1.8以上,官方说到openjdk也可以,但是没试过,大家可以自行尝试,以下就是官方的依赖说明,怎么安装jdk的,不多说了。。应该都会
解压es的tar包:
随后进入解压后es的目录,如下:
依次说一下目录结构吧:
bin:可执行文件在里面,运行es的命令就在这个里面
config:配置文件目录
lib:依赖的jar
logs:日志
modules:模块
plugins:可以自己开发的插件
data,这个目录,没有,自己新建一下:mkdir data,这个作为索引目录
随后进入conf目录,使用vim 修改 elasticearch.yml
修改集群名称,默认是elasticsearch,虽然目前是单机,但是也会有默认的
为当前的es节点取个名称,名称随意,如果在集群环境中,都要有相应的名字
这是修改数据和日志的存储目录
设置绑定的ip,和redis一个道理,设置为0.0.0.0以后就可以让任何计算机节点访问到你了
设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前是单机,放入一个节点即可
修改完毕后,保存退出vim,随后就准备启动es了,进入到bin目录,运行es:./elasticsearch
这个时候报了一个异常:
java.lang.RuntimeException: can not run elasticsearch as root
很明显,提示说我们无法使用root用户来运行es,这是es的设计,为了安全
那么这个时候就需要创建一个新用户,并且为这个用户添加es目录的操作权限了
切换用户以后,再次运行 ./elasticserch
此时又报错,来看一下:
java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER
其实从异常可以看出是不支持的操作系统,主要是 seccomp,那么重新进入 conf 下去配置 elasticsearch.yml
增加下面这一行配置,用于禁用seccomp
回到bin目录再次启动es,又发现如下3个错误:
ERROR: [3] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] [2]: max number of threads [1024] for user [lee] is too low, increase to at least [4096] [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
那么依次去修改,不过得重新切换到root用户, su root
修改如下文件
添加如下:
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
vim /etc/security/limits.d/90-nproc.conf 修改此文件
改为4096
改完以后重新切换到非root用户lee下,运行es
这个时候发现已经成功启动了,如下是es的相关信息:
那么现在是前台启动方式,我们需要改为后台启动方式来运行es,这样会更好
能看懂吧?不多说了哈
那么安装到此完毕!