一、简介
1、什么是elasticsearch?
- 基于Apache Lucene构建的开源搜索引擎。
- 采用Java编写,提供简单易用的Restful API
- 轻松的横向扩展,可支持PB级的结构化或非结构化数据处理(就是容量不足时加节点)
2、应用场景:
- 海量数据分析引擎
- 站内搜索引擎
- 数据仓库
实际应用:
- 英国卫报 - 实时分析公众对文章的回应,可以及时得到反馈
- 维基百科、GitHub - 站内搜索 全文搜索,高亮关键字(维基)、检索一千 三百亿行代码 (GitHub)
- 百度 - 实时日志监控平台 每天存储几百TB、甚至PB级别的日志数据。
二、安装
所需软件:
- Linux 版本:腾讯云 Cent OS 7.4
- Java 版本:jdk-8u171
- Elasticsearch 版本:6.3.2
单实例安装步骤:
第一步(此版本的elasticsearch依赖jdk1.8及以上)
第二步(Elasticsearch出于安全方面的考虑,不允许使用root用户启动,所以我们需要创建一个新用户)
- 创建用户 useradd esstudy, 设置密码:passwd esstudy
第三步(配置新用户无需输入密码即可使用sudo命令)
- 输入chmod -R 777 /etc/sudoers获取配置文件读写权限
- vim /etc/sudoers编辑,在root ALL=(ALL) ALL下面加上esstudy ALL=(ALL) NOPASSWD:ALL,去掉#%wheel ALL=(ALL) NOPASSWD: ALL的#号,保存退出
- gpasswd -a esstudy wheel 将esstudy用户添加进wheel组
- 改回sudoers文件权限 chmod 440 /etc/sudoers
第四步(配置elasticsearch)
- 环境搭建好之后,可使用 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz 命令下载Elasticsearch包到/usr/local文件夹下(本人服务器网速不给力,本地下载然后通过连接工具上传)
- 修改配置文件sudo vim conf/elasticsearch.yml 中配置项 network.host: 0.0.0.0(允许外网访问)
- 添加配置,sudo vim /etc/sysctl.conf中添加vm.max_map_count=655360
执行命令 sudo sysctl -p - sudo vim /etc/security/limits.conf中添加配置soft nofile 655350 hard nofile 655350
第五步 (启动,注意切换用户)
- su esstudy 切换为新创建用户
- sudo chmod -R 777 /usr/local/elasticsearch-6.3.2 提升权限,否则启动报错
- /usr/local/elasticsearch-6.3.2文件夹下输入命令nohup ./bin/elasticsearch &即可启动
-
访问http://腾讯云IP:9200连接出现下图则启动成功:
三、插件使用
elasticsearch-head插件安装步骤:
- netstat -tunlp|grep 9200 查看elasticsearch是否启动
- kill -9 进程号 杀掉elasticsearch进程
node环境配置
- 官网下载node,js,这里用的是8.11.3,上传并解压至/usr/local
- 配置软连接sudo ln -s /usr/local/node-v8.11.3-linux-x64/bin/node /bin/node
- 配置软连接sudo ln -s /usr/local/node-v8.11.3-linux-x64/bin/npm /bin/npm
- echo 'export PATH=/usr/local/node-v8.11.3-linux-x64/bin:$PATH' >> /etc/profile 配置环境变量
- source /etc/profile 重新加载配置
- 通过 npm 安装进程管理模块 forever:npm install forever -g
- npm install -g cnpm --registry=https://registry.npm.taobao.org安装淘宝镜像
elasticsearch-head配置
- github上下载elasticsearch-head,并解压缩至/usr/local文件夹
- 修改配置文件vim /usr/local/elasticsearch-6.3.2/config/elasticsearch.yml,尾部添加http.cors.enabled: true和http.cors.allow-origin: "*"
- /usr/local/elasticsearch-6.3.2文件夹下输入命令nohup ./bin/elasticsearch & 启动elasticsearch
- 在head插件文件夹下输入sudo nphup npm run start &启动插件
-
访问http://腾讯云ip:9100出现如下界面:
四、集群安装
- netstat -tunlp|grep 9200 查看elasticsearch是否启动
- kill -9 进程号 杀掉elasticsearch进程
- 修改elasticsearch.yml,增加配置cluster.name: shuaiyang(集群名称),node.name: master(结点名)
node.master: true - 输入mkdir /usr/local/es_slave1和mkdir /usr/local/es_slave2创建文件夹
- 复制文件cp /usr/local/elasticsearch-6.3.2.tar.gz /usr/local/es_slave1、cp /usr/local/elasticsearch-6.3.2.tar.gz /usr/local/es_slave2
- tar -zxvf 文件名 解压复制的文件
- chmod -R 777 elasticsearch-6.3.2获得解压后文件夹权限
- 修改elasticsearch.yml,加上配置cluster.name: shuaiyang(必须与主结点一致)node.name: slave1(子节点名称)network.host: 0.0.0.0(可远程访问)http.port: 8200(避免与主结点冲突)discovery.zen.ping.unicast.hosts: ["127.0.0.1"],保存退出。
-
启动主从结点,head插件显示如下: