Elasticsearch 安装操作手册
第一部分 ES安装环境的准备和初始化
现在较新的版本Elasticsearch 5.6.3 官方建议安装Oracle的JDK8,安装前先检查机器是否已安装JDK。
Step 1 检查环境机器是否已安装JDK
rpm -qa | grep -E '^open[jre|jdk]|j[re|dk]'
如果有的话,卸载掉,可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件,然后进行重新安装。
Step 2 下载新的JDK
下载网址:
wget --no-check-certificate --no-cookies \
--header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.tar.gz
step 3 解压安装JDK
直接解压 tar -zxvf jdk-8u152-linux-x64.tar.gz
配置环境变量
vi /etc/profile
添加如下内容,并保存:
# set java environment
export JAVA_HOME=/data/Elasticsearch/jdk1.8.0_152
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${PATH}
保存后运行 source /etc/profile 使环境变量生效
Step 4 验证安装环境是否成功
输入 java -version 确认是否安装成功,显示如下信息,说明先版本安装成功
第二部分 安装ES
Step 1 进入ES官网,选择合适的版本网址,进行下载
以下是5.6.3 版本的网址
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.tar.gz
step 2 解压缩下载文件
tar -zxvf elasticsearch-5.6.3.tar.gz
step 3 添加启动账号
ES 使用root账号启动,会报以下错误
[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
新建账号
useradd estest --添加账号
chown -R estest:estest elasticsearch-5.6.3 --为新增账号赋予文档目录的权限
su estest ---切换账号
step 4 启动ES
在新建的账号estest下启动ES。
在ES 的bin 文件所在的目录下执行以下命令即可
./elasticsearch -d
Step 5 验证 ES 是否正常启动
方法1. curl http://localhost:9200/ 检查,显示以下信息证明已启动OK。
方法 2. 查看ES log
第三部分 启用远程IP 访问
Elasticsearch 默认是rest-api的端口是9200,不支持IP地址,只能在本机使用http://localhost:9200 来访问,如果需要完成访问,还需进行以下配置。
Step 1 修改elasticsearch.yml 文件中的network.host 和 http.port 参数
去除文件中network.host 和 http.port 参数前面的注释(#),且将network.host 的IP地址修改为本地的IP地址。
Step 2 .编辑/etc/security/limits.conf 文档,在文档中添加以下参数
* soft nofile 65536
* hard nofile 131072
此参数不要解决以下错误:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
需要退出当前用户,再次登录才能生效。
Step 3 . 编辑vim /etc/sysctl.conf 文档,在文档中添加以下参数
vm.max_map_count=655360
编辑保存后并执行命令: sysctl -p
此操作主要是解决以下问题
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Step 4. 验证服务是否正常启动
本机测试OK
远程主机网页http测试OK
第四部分 数据批量写入慢
ES 配置优化
*适当提高刷盘时间
*优化bulk队列大小
*提高内存buffer大小
ID生成策略
*使用ES ID 生成策略替代Segment ID,避开数据校验,查询时再校验。
客户端优化
*批量大小发送 优于 批量条数发送
*提高并发写入线程数