一、安装jdk

1.sudo apt-get install openjdk-8-jdk 注:不能装openjdk-9-jdk
设置JAVA_HOME
安装java之后设置Java环境变量的最佳实践。 要设置JAVA_HOME,请在 /etc/environment文件中添加以下行,路径可能与您的系统体系结构不同。

echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/" >> /etc/environment
source /etc/environment

二、安装elasticsearch6.1.2及分词

\1. 安装elasticsearch

cd /data/server/elastic/node/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gz
tar zxvf elasticsearch-6.1.2.tar.gz
cd elasticsearch-6.1.2
./bin/elasticsearch

2.测试

curl -XGET "http://localhost:9200";

3.安装分词插件
http://www.bubuko.com/infodetail-2167441.html

cd /data/server/elastic/node/elasticsearch-6.1.2/bin
./elasticsearch-plugin install analysis-icu
./elasticsearch-plugin install analysis-smartcn
wget https://github.com/medcl/elasticsearch-analysis-stconvert/releases/download/v6.1.2/elasticsearch-analysis-stconvert-6.1.2.zip
cd /data/server/elastic/node/elasticsearch-6.1.2/bin
./elasticsearch-plugin install file:///data/server/elastic/elastics-plugin/elasticsearch-analysis-stconvert-6.1.2.zip
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.1.2/elasticsearch-analysis-ik-6.1.2.zip
./elasticsearch-plugin install file:///data/server/elastic/elastics-plugin/elasticsearch-analysis-ik-6.1.2.zip
get https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.1.2/elasticsearch-analysis-pinyin-6.1.2.zip
./elasticsearch-plugin install file:///data/server/elastic/elastics-plugin/elasticsearch-analysis-pinyin-6.1.2.zip

三、安装kibana

\1.

cd /data/server/elastic/node
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.2-linux-x86_64.tar.gz
tar zxvf kibana-6.1.2-linux-x86_64.tar.gz

\2. cd kibana-6.1.2-linux-x86_64
编辑config/kibana.yml,把elasticsearch.url指向elasticsearch实例,如

elasticsearch.url: "http://localhost:9200";

3.运行

./bin/kibana
访问http://localhost:5601

四、修改内核参数

1.编辑/etc/sysctl.conf文件

vm.max_map_count=2048000

五、安装head插件

1.安装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

2.配置下环境变量,编辑/etc/profile添加

export NODE_HOME=/data/server/node-v4.4.7-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/bin/node_modules

3.下载head插件

wget  https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
cd elasticsearch-head-master
执行sudo npm install -g grunt-cli
检查安装是否成功 grunt -version,显示grunt-cli v1.2.0

4.如果想修改监听端口,可在Gruntfile.js修改;如果想修改elasticsearch的地址,可在_site/app.js里修改

5.运行head

cd /data/server/elastic/node/elasticsearch-head-master
npm install -g grunt
grunt server

六、在3个节点上都部署上面的步骤

修改每个节点的elasticsearch.yml文件,支持集群。下面的node-1分别给位node-2和node-3

$cd /data/server/elastic/node/elasticsearch-6.1.2
$vi config/elasticsearch.yml


cluster.name: recommend
node.name: node-1
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.fd.ping_timeout: 30s
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.unicast.hosts: ["10.25.137.197:9300", "10.25.100.223:9300", "10.80.233.171:9300"]
action.destructive_requires_name: true
#单机可启动3个实例
node.max_local_storage_nodes: 3


# 增加参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"

七、配置supervisor自启

1.修改supervisor的max open files

$vi /etc/supervisor/supervisord.conf
在[supervisord]下增加或修改minfds=100000,默认的minfds是1024

2.elasticsearch的自启

$vi /etc/supervisor/conf.d/elasticsearch.conf
[program:elasticsearch]
directory=/data/server/elastic/node/elasticsearch-6.1.2
command=/data/server/elastic/node/elasticsearch-6.1.2/bin/elasticsearch
user=xngdev
stderr_logfile = /var/log/supervisor/elasticsearch_err.log
stdout_logfile = /var/log/supervisor/elasticsearch_stdout.log
autostart=true
autorestart=true
startsecs=5

3.elasticsearch-head的自启

$vi /etc/supervisor/conf.d/elasticsearch-head.conf
environment=PATH=/data/server/node-v4.4.7-linux-x64:/data/server/node-v4.4.7-linux-x64/bin;NODE_PATH=data/server/node-v4.4.7-linux-x64/bin/node_modules
directory=/data/server/elastic/node/elasticsearch-head-master
command=grunt server
user=xngdev
stderr_logfile = /var/log/supervisor/elasticsearch-head_err.log
stdout_logfile = /var/log/supervisor/elasticsearch-head_stdout.log
autostart=true
autorestart=true
startsecs=5

4.kibana的自启

$vi /etc/supervisor/conf.d/kibana.conf
[program:kibana]
directory=/data/server/elastic/node/kibana-6.1.2-linux-x86_64
command=/data/server/elastic/node/kibana-6.1.2-linux-x86_64/bin/kibana
user=xngdev
stderr_logfile = /var/log/supervisor/kibana_err.log
stdout_logfile = /var/log/supervisor/kibana_stdout.log
autostart=true
autorestart=true
startsecs=5

八、API例子

1.查询

$curl -XGET http://10.25.137.197:9200/pub/album/_search -d '{"query":{"match":{"kwd.k":"歌曲"}}}' -H 'Content-Type:application/json'