引用網址:http://www.jianshu.com/p/28063c8c4057
自己想学习Elasticsearch,但是又不懂Linux,按照同事给的Linux安装教程,也是搞不明白,于是想先在Windows上安装一下入门。可是百度的大部分都是ES 1.x,2.x版本的教程,5.x的教程也是搞不明白,很多步骤就直接跳过了。经过一步一步的尝试,最终还是成功了。记录下,希望对大家有所帮助。
一、JAVA环境配置
ElasticSearch是基于lucence开发的,也就是运行需要java jdk()支持。所以要先安装JAVA环境。
由于ElasticSearch 5.x 依赖于JDK 1.8
的,所以现在我们下载JDK 1.8或者更高版本。
下载JDK1.8,下载完成后安装。
接下来就是环境变量配置。
1、右键 【我的电脑】→【属性】→【高级系统设置】→【环境变量】如图
2、在【系统变量】里【新建】,变量名为JAVA_HOME,变量值为JDK的安装路径。然后确定。
验证是否成功,打开cmd,输入
echo %JAVA_HOME%
显示你设置的JDK的路径即为正确。
3、在【系统变量】选项区域中查看PATH变量,如果不存在,则新建变量 PATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的最后位置追加【%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;】单击确定按钮。
4、在【系统变量】选项区域中查看CLASSPATH 变量,如果不存在,则新建变量CLASSPATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的最后位置追加【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;】。
5、打开cmd,输入javac命令测试是否成功,出现下图则ok
注:配置完成之后需要在新的cmd窗口输入javac。
二、ElasticSearch配置
1、下载ElasticSearch
从官网下载ElasticSearch https://www.elastic.co/downloads/elasticsearch,下载zip。
这里我们下载最新版 ElasticSearch5.3 。
2、解压到指定的目录,这里我解压到了C盘根目录。
3、进入到C:\elasticsearch-5.3.0\bin
执行elasticsearch.bat
4、本机就启动了一个ElasticSearch节点,启动后会显示如图所示
5、打开浏览器里测试一下
OK大功告成~~
三、安装ElasticSearch-head插件
网上很多教程都说用plugin
命令去装es-head插件,跟开头说的一样都是1.x,2.x版本,我也下载看了,里面是有plugin的文件。可是我们是要用5.x的版本,es包里并没有提供plugin文件。
elasticsearch5不可以直接通过plugin -install mobz/elasticsearch-head安装,并且head需要在node环境下运行
1、安装node环境
网址:https://nodejs.org/en/download/ 下载Windows版msi的
安装完后打开cmd查看版本node -v
2、安装grunt
- grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.x里的head插件就是通过grunt启动的。因此需要安装grunt.
- 注意:路径切到nodejs安装目录下,[我安装在C:\Program Files\nodejs]。
npm install -g grunt-cli
- -g代表全局安装。安装路径为
C:\Users\{yourname}\AppData\Roaming\npm
,并且自动加入PATH变量。 - 查看版本号
grunt -version
4、下载head插件
https://github.com/mobz/elasticsearch-head
5、配置head
由于head的代码还是2.6版本的,直接执行有很多限制,比如无法跨机器访问。因此需要用户修改两个地方:
① c:/elasticsearch-head-master/Gruntfile.js,增加hostname属性,设置为*,如图
②修改连接地址:C:\elasticsearch-head-master/_site/app.js,将表红线地址改为es服务器地址。
修改一下es使用的参数。编辑C:/elasticsearch-5.3.0/config/config/elasticsearch.yml:
cluster.name: es-5.2-test #换个集群的名字,免得跟别人的集群混在一起
node.name: node-es-101 #换个节点名字
network.host: 0.0.0.0 #修改一下ES的监听地址,这样别的机器也可以访问
http.port: 9200 #端口号,默认就好
# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
@注意,设置参数的时候:后面要有空格!
6、安装head
其实下载elasticsearch-head的时候,github的链接上有介绍安装方式,如下:
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/
进入到我们下载好的elasticsearch-head包里,然后执行npm install
安装完成之后npm run start
或grunt server
浏览器访问 http://localhost:9100/
到此,Elasticsearch和ElasticSearch-head已经装好了。
四、安装分词
以下是安装的官方插件,个别插件需要配置才能使用,可根据需要删除 plugins 目录无关的插件,重启 elasticsearch 生效。
bin/elasticsearch-plugin install discovery-multicast
bin/elasticsearch-plugin install analysis-icu
bin/elasticsearch-plugin install analysis-kuromoji
bin/elasticsearch-plugin install analysis-phonetic
bin/elasticsearch-plugin install analysis-smartcn
bin/elasticsearch-plugin install analysis-stempel
bin/elasticsearch-plugin install analysis-ukrainian
bin/elasticsearch-plugin install discovery-file
bin/elasticsearch-plugin install ingest-attachment
bin/elasticsearch-plugin install ingest-geoip
bin/elasticsearch-plugin install ingest-user-agent
bin/elasticsearch-plugin install mapper-attachments
bin/elasticsearch-plugin install mapper-size
bin/elasticsearch-plugin install mapper-murmur3
bin/elasticsearch-plugin install lang-javascript
bin/elasticsearch-plugin install lang-python
bin/elasticsearch-plugin install repository-hdfs
bin/elasticsearch-plugin install repository-s3
bin/elasticsearch-plugin install repository-azure
bin/elasticsearch-plugin install repository-gcs
bin/elasticsearch-plugin install store-smb
bin/elasticsearch-plugin install discovery-ec2
bin/elasticsearch-plugin install discovery-azure-classic
bin/elasticsearch-plugin install discovery-gce
x-pack 安装注意事项
x-pack 是什么,有什么用?自行访问官网了解即可。
x-pack的安装过程很简单,如下几步即可:
1、elsaticsearch 安装 x-pack
1
|
es_home/bin/elasticsearch-plugin install x-pack
|
2、kibana 安装 x-pack
1
|
kibana_home/bin/kibana-plugin install x-pack
|
就这么两步,耐心等待安装完重启即可。这篇文章重点讲的不是安装过程,而是安装之后带来的几个坑。
未安装前,使用elasticsearch-head、kibana、客户端连接时都不要用户名/密码验证。而安装之后,统统需要用户名/密码验证才能访问。
默认用户名/密码
x-pack 安装完后,提供了几个默认的用户名/密码可以使用,如下:
1
2
3
|
elastic/changeme
kibana/changeme
logstash_system/changeme
|
elastic 用户拥有全部的权限,显然需要更改掉默认密码,通过如下的接口可以更改密码,示例:
1
2
3
|
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/{username}/_password' -H "Content-Type: application/json" -d '{
"password" : "newpassword"
}'
|
{username} 占位符代表需要修改密码的用户。
head 插件配置
之前的访问都是通过http://127.0.0.1:9100即可,安装x-pack之后,首先需要更改elasticsearch.yml的配置:
1
2
3
|
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,Content-Type
|
前两个配置没什么注意的,很多人都知道。关键是第三个,官方描述上面也只是说了添加http.cors.allow-headers: Authorization即可,其实不然,访问会出现如下的问题:
所以这里应该如下配置才能保证正常访问:
1
|
http.cors.allow-headers: Authorization,Content-Type
|
新的访问形式如:http://127.0.0.1:9100/?auth_user=elastic&auth_password=changeme
客户端连接
以Spring Data Elasticsearch为例,参考我的这篇文章《Spring Data Elasticsearch 和 x-pack 用户名/密码验证连接》了解即可。
留言列表