elasticsearch就是一个类似数据库用来专门做搜索的一款工具,在大量的搜索条件下,效率很好,可以直接把它当成一个数据库。
1.打开官网 Download Elasticsearch | Elastic,下载历史版本
这里我选择7.6.1
然后点击linux sha 下载,我这里采用迅雷下载到本地后,再利用Xftp上传到Linux
下载之后,我上传到/usr/local/es目录
2. 解压elasticsearch7.6
tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz
进入elasticsearch7.6的目录
cd /usr/local/es/elasticsearch-7.6.1/bin
./elasticsearch -d
有错误提示信息:[root@izuf6isbofkgfo4erzjt1az bin]# OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
uncaught exception in thread [main]
java.lang.RuntimeException: can not run elasticsearch as root
我现在是以root用户执行 ./elasticsearch 的时候,会报错,es不能用root用户运行,需要创建一个用户
3.创建组,再创建用户
创建组:elasticsearch
groupadd elasticsearch
创建用户并设置密码:python
useradd python
设置密码
passwd python
用户python 添加到用户组elasticsearch
usermod -G elasticsearch python
#将已有用户添加到指定用户组,作为其附属用户组
# -a 代表append,和 -G 一起使用,将用户添加到新用户组中而不必来开原有的其他用户组
usermod -a -G <用户组名称> <用户名称>#将已有用户的主用户组改为新的用户组
usermod -g <新的用户组名称> <用户名称>
指定python用户拥有操作elasticsearch这个目录的操作权限
chown -R python /usr/local/es/elasticsearch-7.6.1
为了让普通用户有更大的操作权限,我们一般会给普通用户设置sudo权限,给python用户分配sudo权限
visudo
在root ALL(ALL) ALL 这一行下面 添加 python ALL=(ALL) ALL
改完保存退出 切换到python用户
su python
4.先创建两个目录
mkdir -p /usr/local/es/elasticsearch-7.6.1/log
mkdir -p /usr/local/es/elasticsearch-7.6.1/data
进入config目录 cd /usr/local/es/elasticsearch-7.6.1/config
cd /usr/local/es/elasticsearch-7.6.1/config
ll
5.修改elasticsearch.yml
vim elasticsearch.yml
修改如下信息
1 cluster.name: my-app 集群的名字,可以改一个你自己名字
2 node.name: node-1
3 network.host: 0.0.0.0 任何地址都可以访问
4 http.port: 9200
5 discovery.seed_hosts: ["172.26.20.184"] 当前IP的信息
6 cluster.initial_master_nodes: ["node-1"] 节点信息,由于我是单机版,就是node-1
然后把下面几行代码放到最后
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
改完 :wq 保存退出
6.然后修改jvm.option
cd /usr/local/es/elasticsearch-7.6.1/config
vim jvm.options
修改,默认是1G,内存大的可以改成2G,我就不改了
-Xms1g
-Xmx1g
7.修改系统配置,解决进程最大同时打开的文件数
由于使用普通用户来安装,es对服务器的资源要求比较多,包括内存大小、线程数等等,所以我们需要给普通用户解开资源的束缚
如问题描述:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536],每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
修改vi /etc/security/limits.conf文件,增加配置,用户退出后重新登录生效,注意带* 号
* soft nofile 65536
* hard nofile 65536
vi /etc/security/limits.conf
8. 普通用户启动线程数限制
问题描述:
max number of threads [3818] for user [es] is too low, increase to at least [4096]
最大线程个数太低。修改配置文件/etc/security/limits.conf,增加配置
* soft nproc 4096
* hard nproc 4096
修改后的文件
9.虚拟内存太小,需要调大虚拟内存
问题描述:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
sudo vi /etc/sysctl.conf
保存后,执行
sudo sysctl -p
10.以上问题解决完成之后,重新连接下Xshell 生效
11.启动ES服务 ,完美成功