1.Linux安装elasticsearch
下载elasticsearch:
1.官网下载:https://www.elastic.co/cn/downloads/past-releases 进入后搜索elasticsearch及版本号即可点击下载
下载Linux版的然后复制上传到Linux服务器,上传方法参考我另一篇文章:linux 使用rz ,sz 上传和下载文件
也可以使用操作工具WinSCP,安装使用方法请自行百度
2.服务器本地下载:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.tar.gz
这里以6.6.1版本为例,如果不同版本请更改版本号,当然前提是你的服务器支持wget命令
下载完成后解压安装:
1.我安装的路径在opt下,首先cd 到opt 目录下 然后创建 elasticsearch文件夹
然后切换到elasticsearch目录中,把上面下载好的压缩包移动到这里,然后开始解压
解压完整完成后,修改config/elasticsearch.yml配置文件,默认端口9200,(文末赋更多配置信息)添加以下信息:
#开启外部访问
network.host: 0.0.0.0
#解决head的集群健康值问题,后续会安装head插件,解决跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
启动、测试
切换到bin目录下启动elasticsearch服务 启动命令 : ./elasticsearch -d
测试是否启动成功:
输入命令:curl http://localhost:9200/?pretty,如果出现以下信息说明启动成功
但是此时我们访问是看不到的因为会启动失败,因为官方文档上说ElasticSearch不适合在root管理员帐号下运行,所以要重新创建一个用户来启动
下面添加用户:
#添加用户
adduser esUser
#设置密码
passwd esUser
用户添加后 给新建的用户赋权限,chown -R likang /opt/elasticsearch/ ,然后切换到这个用户下进行启动
此时启动还会失败,因为每个进程最大同时打开文件数太小,解决办法:.
切换到root账户,修改/etc/security/limits.conf文件,添加如下内容:
esUser hard nofile 65536
esUser soft nofile 65536
* soft nproc 4096
* hard nproc 4096
修改elasticsearch用户拥有的内存权限,至少需要262144,编辑/etc/sysctl.conf文件,添加如下内容:
vm.max_map_count=262144
完成后 执行命令
sysctl -p
最后再次启动,测试会出现上述启动成功的信息
-------------
我们还要开启防火墙端口,让远程可以连接访问9200端口,具体操作参考我另一篇文章:linux 下centos7 防火墙管理
然后在你浏览器访问测会出现如下信息:表示开启成功
2.Windows 安装 elasticsearch-head 可视化工具
1.下载elasticsearch-head:
GitHub中的地址:https://github.com/mobz/elasticsearch-head,clone下来就行
然后解压,在解压后文件中通过cmd命令打开,如下图:
解压的地址
cmd打开
npm install 安装运行
这一切的前提是你的电脑装有 node.js,如果没有请自行去安装
2.安装完成后,运行elasticsearch-head:
输入npm run start 命令:
运行后在浏览器输入localhost:9100访问,连接
出现此页面则所有软件安装成功
注:config/elasticsearch.yml的更多配置信息,摘抄自https://www.cnblogs.com/yijialong/p/9707238.html
#这是集群名字,起名为elasticsearch
#es启动后会将具有相同集群名字的节点放到一个集群下。
cluster.name: elasticsearch
#
#节点名字。
node.name: "node1"
#
# 数据存储位置,配置之后该目录会自动生成
path.data: /usr/java/elasticsearch/elasticsearch-6.3.2/data
#
# 日志文件的路径,配置之后该目录会自动生成
path.logs: /usr/java/elasticsearch/elasticsearch-6.3.2/logs
#
#
#设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0
#network.bind_host: xxxxxx
#
#设置其它节点和该节点交互的ip地址,如果不设置它会自动设置,值必须是个真实的ip地址
#network.publish_host: xxxxxx
#
#同时设置bind_host和publish_host上面两个参数,该地址为默认地址
network.host: 0.0.0.0
#
#
# 设置节点间交互的tcp端口,默认是9300
#transport.tcp.port: 9300
#
# 设置是否压缩tcp传输时的数据,默认为false,不压缩
transport.tcp.compress: true
#
# 设置对外服务的http端口,默认为9200
#http.port: 9200
#
# 使用http协议对外提供服务,默认为true,开启
#http.enabled: false
#
#discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"]
#这是一个集群中的主节点的初始列表,当节点(主节点或者数据节点)启动时使用这个列表进行探测
discovery.zen.ping.unicast.hosts: ["你的IP地址"]
#
#指定集群中的节点中有几个有master资格的节点。
#对于大集群可以写(2-4)。
discovery.zen.minimum_master_nodes: 1
#解决head的集群健康值问题,后续会安装head插件
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type