1. ElasticSearch是使用java编写的,所以需要JDK的环境
这里使用的Linux环境:
③ CentOS:
⒈ CentOS release 6.8 (Final)
Tips:可以通过 cat /etc/issue来查看Linux版本
⒉ 内核发行号:2.6.32-642.el6.x86_64
Tips:可以通过 uname -r 来查看Linux内核发行号
使用的:
ElasticSearch 6.0.0
JDK 1.8
ElasticSearch-Head-Master需nodeJs环境 6.0以上版本
版本查看:
JDK;java -version
Node: node -v 查看node版本号
npm -v 查看npm版本号
2. 下载地址:
ElasticSearch: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
JDK:
Node:
Head: https://github.com/mobz/elasticsearch-head/archive/master.zip
下载方式:wget 相应的url
3. JDK和NodeJs需要配置环境变量
方式:
vim /etc/profile
在文件最后添加:
export JAVA_HOME=/usr/java/jdk1.8.0_60 ##安装jdk的目录
export JAVA_BIN=/usr/java/jdk1.8.0_60/bin
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
export NODE_HOME=/usr/elastic/node-v8.9.3-linux-x64 ##安装node的目录
export PATH=$NODE_HOME/bin:$PATH
4. 配置完成之后
source /etc/profile 重新加载配置文件
5. 因为Es不能使用root用户启动,所以这里需要新建用户来操作
[root]:adduser jack
[root]: passwd jack
创建指定目录,并修改所有者为jack
[root]:mkdir -v /myes
chown jack /myes
复制下载的压缩文件到 /myes目录
[root]:cp -v elasticsearch-6.0.0.tar.gz /myes
切换到 jack 账户操作:
[root]:su jack
进入 /myes目录中,解压 Es
[jack]: tar -vxf elasticsearch-6.0.0.tar.gz
6. 首次启动Es会报错:unable to install syscall filter: ...
这里是因为CentOs的原因,需要我们配置 /config/elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
禁用系统调用过滤检查
7. 启动ElasticSearch
进入 Es中bin目录下 sh elasticsearch
出现:bound_addresses {[::1]:9200}, {127.0.0.1:9200} started 证明启动成功
浏览器:127.0.0.1:9200 成功返回Josn 说明启动成功
#后台启动 ./elasticsearch -d
8. 配置可供局域网访问
在config/elasticsearch.yml中配置:
network.host: 0.0.0.0
http.port: 9200
9. 创建修改脚本es.sh[CentOS才会出现的异常;需要由root用户操作]
需要解决3个问题:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [ada] 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]
脚本内容:
#!/bin/bash
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
echo "es soft nproc 4096" >> /etc/security/limits.d/90-nproc.conf
sysctl -p
这里的倒数第2行中的es为要启动ES的用户名称,注意修改
注意添加执行权限:chmod u+x es.sh
使用sh执行脚本,可以看到如下输出:
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.max_map_count = 262144
10. 在windows访问连接不上服务器时,查看iptables防火墙
修改防火墙设置
可以修改/etc/sysconfig/iptables
停掉防火墙服务
service iptables stop