Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎;是目前全文搜索引擎的首选,性能测试我们就不累赘了,网上能搜索到很多性能测试结果,不管老版本还是新版本对Java的兼容很友好。搜索也很高效。那我们今天就介绍下如何安装?
1、下载并解压elasticsearch(Elasticsearch 6.0.0 | Elastic)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.zip
unzip elasticsearch-6.0.0.zip
2、配置elasticsearch.yml文件
# 集群的名字
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
3、启动ES
cd /opt/elasticsearch
./elasticsearch
4、下载head插件
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
5、安装node
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
6、安装grunt
grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动
cd /opt/elasticsearch-head
//执行后会生成node_modules
npm install -g grunt-cli
7、修改head插件源码
修改服务器监听地址: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
8、运行head
进入到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! [email protected] install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node install.js
解决方案:
//忽略脚本继续进行安装
npm install [email protected] --ignore-scripts
配置 Gruntfile.js
hostname: '0.0.0.0',
9.访问 http://yourwebsite:9100
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”,“*”表示给所有用户起作用