Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎;是目前全文搜索引擎的首选,性能测试我们就不累赘了,网上能搜索到很多性能测试结果,不管老版本还是新版本对Java的兼容很友好。搜索也很高效。那我们今天就介绍下如何安装?
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.zip unzip elasticsearch-6.0.0.zip
# 集群的名字 cluster.name: my-application # 节点名字 node.name: node-1 # 数据存储目录(多个路径用逗号分隔) path.data: /opt/elasticsearch/data # 日志目录 path.logs: /opt/elasticsearch/logs #本机的ip地址 network.host: 192.168.1.1 #设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点 discovery.zen.ping.unicast.hosts: ["192.168.1.1"] # 设置节点间交互的tcp端口(集群),(默认9300) transport.tcp.port: 9300 # 监听端口(默认) http.port: 9200 # 增加参数,使head插件可以访问es http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
cd /opt/elasticsearch ./elasticsearch
wget https://github.com/mobz/elasticsearch-head/archive/master.zip unzip master.zip
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz tar -zxvf node-v4.4.7-linux-x64.tar.gz
配置下环境变量,编辑/etc/profile添加
export NODE_HOME=/opt/nodejs/node-v4.4.7-linux-x64/
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
:wq 保存
source /etc/profile
grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动
cd /opt/elasticsearch-head //执行后会生成node_modules npm install -g grunt-cli
修改服务器监听地址:Gruntfile.js
connect: { server: { options: { hostname: '*', port: 9100, base: '.', keepalive: true } } }
修改连接地址:_site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.1.1.:9200"; useradd es chown -R es:es elasticsearch
进入到elasticsearch-head主目录执行:
elastic@xtsadhas001 elasticsearch-head]$ npm install
安装过程中出现错误:
Please report this full log at GitHub - Medium/phantomjs: NPM wrapper for installing phantomjs
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.4.3
npm ERR! npm v3.10.9
npm ERR! code ELIFECYCLE
npm ERR! phantomjs-prebuilt@2.1.14 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the phantomjs-prebuilt@2.1.14 install script 'node install.js
解决方案:
//忽略脚本继续进行安装 npm install phantomjs-prebuilt@2.1.14 --ignore-scripts
配置 Gruntfile.js
hostname: '0.0.0.0',
ps -ef | grep elastic ps -ef | grep logstash nohup ./bin/elasticsearch & head nohup grunt server & exit
1、root用户启动elasticsearch报错
Elasticsearch为了安全考虑,不让使用root启动,解决方法新建一个用户,用此用户进行相关的操作。如果你用root启动,会出现“java.lang.RuntimeException: can not runelasticsearch as root”错误
2、JVM虚拟机内存不足
错误:“JavaHotSpot(TM) 64-Bit Server VM warning: INFO: error='Cannotallocate memory' (errno=12)”表示内存不足,其配置文件为config目录下的jvm.options,默认为2G,可以修改为1G
3、max_map_count过小
错误“max virtual memory areas vm.max_map_count [65530]is too low, increase to at least [262144]”,max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量,系统默认是65530,修改成262144。解决方法是修改/etc/sysctl.conf配置文件,添加vm.max_map_count=262144,记得需要重启机器才起作用
4、max file descriptors过小
错误“max file descriptors [65535] for elasticsearchprocess is too low, increase to at least [65536]”,maxfile descriptors为最大文件描述符,设置其大于65536即可。解决方法是修改/etc/security/limits.conf文件,添加“* - nofile65536 * - memlock unlimited”,“*”表示给所有用户起作用