Elasticsearch安装 其实用docker安装也一样的简单,这里用安装包安装、
版本号
Elasticsearch:7.10.1
安装
安装过程参考
第一步:下载安装包并解压,推荐镜像 这个文件比较好,直接在linux系统上下载,如果在windows上下载再上传到linux系统,速度很慢。 在前面加 wget 就可以在liunx下载
wget https://mirrors.huaweicloud.com/elasticsearch/7.10.1/elasticsearch-7.10.1-linux-x86_64.tar.gz
下载后解压安装包
tar -zxf elasticsearch-7.10.1-linux-x86_64.tar.gz
这是下载下来的安装包,跟解压后文件
第二步:elasticsearch-7.10.1里面的 config文件夹下 找到 elasticsearch.yml为文件 修改
修改配置文件${ELASTICSEARCH_HOME}/config/elasticsearch.yml(详细配置可参考)
进入:
进入 elasticsearch.yml文件。
vim elasticsearch
按 i 表示修改状态
按ESC 退出修改状态
shift+: 表示光标到底,按wq 保存并退出
cluster.name: my-es #集群名称
node.name: node-1 #节点名称
path.data: /var/lib/elasticsearch #es数据存储目录
path.logs: /var/log/elasticsearch #es日志存储目录
network.host: 172.16.5.33 #绑定地址
cluster.initial_master_nodes: ["node-1"] #初始节点
这里需要注意:
path.data: /var/lib/elasticsearch #es数据存储目录
path.logs: /var/log/elasticsearch #es日志存储目录
这里的两个文件夹是需要自己创建的,其实可以随便创建在哪个路径下面,但是一般创建在 var的lib跟log 目录下,这里可以先修改,后创建。
回到var 下面的lib 跟 log 路径下,创建elasticsearch文件夹。创建代码:
mkdir elasticsearch
进入ES安装目录,启动,这里是不是 就可以直接启动?答案是 不可以。原因是:elasticsearch不允许用root角色启动,必须由其他角色启动,所以这里需要 用root角色 创建一个角色,并且把上面创建的2个文件夹以及 elasticsearch本身的文件夹 全部赋权限给新建的角色
bin/elasticsearch
第三步:如何创建用户
创建新用户 useradd是连在一起写的,不能分开
useradd es
赋予用户Elasticsearch安装目录权限 这里需要注意一下:chown 后面一定要加 -R。不然就只是给当前文件夹赋权限,里面的子文件夹无法递归 给es角色赋权限。
chown -R es:es /usr/local/elasticsearch
赋予用户数据及日志目录权限
chown -R es:es /var/lib/elasticsearch/
chown -R es:es /var/log/elasticsearch/
切换用户启动ES
su es
cd /usr/local/elasticsearch
bin/elasticsearch -d
启动 elasticsearch
bin/elasticsearch -d
这个时候应该es就安装完成了,但是使用过程过程中会出现 虚拟内存太小的问题
最大虚拟内存太小
解决
切换到root用户,修改系统配置文件/etc/sysctl.conf
su root
vim /etc/sysctl.conf
增加虚拟内存配置,配置文件中增加代码 注意:这里是新增一行这个代码。因为配置文件里面没有这一样,如果有就修改,没有就新增
vm.max_map_count=655360
重新加载配置
sysctl -p
缺少配置
解决
elasticsearch.yml
文件新增配置
cluster.initial_master_nodes: ["node-1"] #节点名称
查看是否安装成功:
也可以安装一个插件来 查看es数据,当然这里用到其他很多方式查看。例如skywalking, kibana等等,
刚刚安装的head插件,它是一个用浏览器跟ES集群交互的插件,可以查看集群状态、集群的doc内容、执行搜索和普通的Rest请求等。现在也可以使用它打开localhost:9200/_plugin/head页面来查看ES集群状态:
可以看到,现在,ES集群中没有index,也没有type,因此这两条是空的。