zoukankan      html  css  js  c++  java
  • Elasticsearch2.3安装教程

    Elasticsearch安装教程

    官网

    官网安装指南
    github

    分词插件

    .net客户端

    本地离线文件:\qzdoc\DevSoft\elasticsearch

    A. 安装步骤

    A1、JDK jdk-8u77-windows-x64

    A2、配置系统环境变量 JAVA_HOME 为 C:\Program Files\Java\jdk1.8.0_77 (如果不是安装在C盘,盘符请注意更改)

    A3、解压 elasticsearch-2.3.1.zip ,用CMD命令行运行bin目录下面的 elasticsearch.bat

    1.  C:\Users\Administrator>cd E:\soft\elasticsearch\elasticsearch-2.3.1\elasticsearch-2.3.1\bin
    2.   
    3.  C:\Users\Administrator>E:
    4.   
    5.  E:\soft\elasticsearch\elasticsearch-2.3.1\elasticsearch-2.3.1\bin>dir
    6.   驱动器 E 中的卷是 Elasticsearch
    7.   卷的序列号是 CC79-9420
    8.   
    9.   E:\soft\elasticsearch\elasticsearch-2.3.1\elasticsearch-2.3.1\bin 的目录
    10.  
    11. 2016/04/07  10:29    <DIR>          .
    12. 2016/04/07  10:29    <DIR>          ..
    13. 2016/04/04  12:23             5,551 elasticsearch
    14. 2016/01/27  12:53           104,448 elasticsearch-service-mgr.exe
    15. 2016/01/27  12:53           103,936 elasticsearch-service-x64.exe
    16. 2016/01/27  12:53            80,896 elasticsearch-service-x86.exe
    17. 2016/04/04  12:23               909 elasticsearch.bat
    18. 2016/04/04  12:23             3,307 elasticsearch.in.bat
    19. 2016/04/04  12:23             2,814 elasticsearch.in.sh
    20. 2016/04/04  12:23             2,992 plugin
    21. 2016/04/04  12:23             1,303 plugin.bat
    22. 2016/04/04  12:23             6,501 service.bat
    23.               10 个文件        312,657 字节
    24.                2 个目录 135,808,548,864 可用字节
    25.  
    26. E:\soft\elasticsearch\elasticsearch-2.3.1\elasticsearch-2.3.1\bin>elasticsearch.bat
    27. [2016-04-07 11:21:12,101][INFO ][node                     ] [Hardcore] version[2.3.1], pid[944], build[bd98092/2016-04-0
    28. 4T12:25:05Z]
    29. [2016-04-07 11:21:12,101][INFO ][node                     ] [Hardcore] initializing ...
    30. [2016-04-07 11:21:13,085][INFO ][plugins                  ] [Hardcore] modules [reindex, lang-expression, lang-groovy],
    31. plugins [], sites []
    32. [2016-04-07 11:21:13,132][INFO ][env                      ] [Hardcore] using [1] data paths, mounts [[Elasticsearch (E:)
    33. ]], net usable_space [126.4gb], net total_space [126.8gb], spins? [unknown], types [NTFS]
    34. [2016-04-07 11:21:13,132][INFO ][env                      ] [Hardcore] heap size [910.5mb], compressed ordinary object p
    35. ointers [true]
    36. [2016-04-07 11:21:16,351][INFO ][node                     ] [Hardcore] initialized
    37. [2016-04-07 11:21:16,351][INFO ][node                     ] [Hardcore] starting ...
    38. [2016-04-07 11:21:16,788][INFO ][transport                ] [Hardcore] publish_address {127.0.0.1:9300}, bound_addresses
    39.  {127.0.0.1:9300}, {[::1]:9300}
    40. [2016-04-07 11:21:16,804][INFO ][discovery                ] [Hardcore] elasticsearch/QbxsMzlVQn64WMXmuzLWvA
    41. [2016-04-07 11:21:20,883][INFO ][cluster.service          ] [Hardcore] new_master {Hardcore}{QbxsMzlVQn64WMXmuzLWvA}{127
    42. .0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received)
    43. [2016-04-07 11:21:20,992][INFO ][gateway                  ] [Hardcore] recovered [0] indices into cluster_state
    44. [2016-04-07 11:21:21,195][INFO ][http                     ] [Hardcore] publish_address {127.0.0.1:9200}, bound_addresses
    45.  {127.0.0.1:9200}, {[::1]:9200}
    46. [2016-04-07 11:21:21,195][INFO ][node                     ] [Hardcore] started

    A4、可以修改config下面的yml配置文件下的启动IP地址

    A5、可以安装curl进行测试,

    1.  解压curl-7.33.0-win64-ssl-sspi.zip到一个文件夹,设置系统环境变量  CURL_HOME E:\soft\elasticsearch\curl-7.33.0-win64-ssl-sspi (路径按照解压的路径)
    2.  更改PAHT环境变量,加入%CURL_HOME%,记得和其他项分号隔开
    3.  win平台下的curl记得用双引号代替官方测试说明的单引号(天坑);或者不用引号;插入json数据时特殊字符要转义,如:curl -XPUT localhost:9200/customer/external/1?pretty -d "{\"name\":\"John Doe\"}"

    A6、编译IK分词插件

    A6a.安装 apache-maven-3.3.9-bin.zip 解压文件,配置系统环境变量 M2_HOME C:\JavaEnv\apache-maven-3.3.9(按安装目录不同而不同)

    1.  更改PAHT环境变量,加入C:\JavaEnv\apache-maven-3.3.9\bin(按安装目录不同而不同),记得和其他项分号隔开
    2.  利用 cmd 输入命令 mvn -v 测试
    3.   
    4.  C:\Users\Administrator>mvn -v
    5.  Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:4
    6.  7+08:00)
    7.  Maven home: C:\JavaEnv\apache-maven-3.3.9
    8.  Java version: 1.8.0_77, vendor: Oracle Corporation
    9.  Java home: C:\Program Files\Java\jdk1.8.0_77\jre
    10. Default locale: zh_CN, platform encoding: GBK
    11. OS name: "windows server 2012 r2", version: "6.3", arch: "amd64", family: "dos"

    A6b. 解压elasticsearch-analysis-ik-master.zip到目录

    A6c. 命令行转到解压后的目录,分别执行,执行过程中需要联网下载很多POM

    1.  mvn clean
    2.  mvn compile
    3.  mvn package
    4.   
    5.  *compile*命令执行超久。。15分钟,操
    6.  [INFO] ------------------------------------------------------------------------
    7.  [INFO] BUILD SUCCESS
    8.  [INFO] ------------------------------------------------------------------------
    9.  [INFO] Total time: 15:48 min
    10. [INFO] Finished at: 2016-04-07T14:18:10+08:00
    11. [INFO] Final Memory: 24M/134M
    12. [INFO] ------------------------------------------------------------------------
    13.  
    14. 执行打包后,成功信息如下
    15. [INFO] Building zip: E:\soft\elasticsearch\elasticsearch-analysis-ik-master\target\releases\elasticsearch-analysis-ik-1.9.0.zip
    16. [INFO] ------------------------------------------------------------------------
    17. [INFO] BUILD SUCCESS
    18. [INFO] ------------------------------------------------------------------------
    19. [INFO] Total time: 02:05 min
    20. [INFO] Finished at: 2016-04-07T14:21:44+08:00
    21. [INFO] Final Memory: 23M/365M
    22. [INFO] ------------------------------------------------------------------------

    A6d. 安装插件

    将编译好的zip文件编译好复制到elasticsearch安装的根目录下/plugins/ik,然后重启elasticsearch服务
    重启服务中出现异常说IK插件版本不对

    1.  PS E:\soft\elasticsearch\elasticsearch-2.3.1\bin> ./elasticsearch.bat
    2.  [2016-04-07 14:34:18,322][INFO ][node                     ] [Ogre] version[2.3.1], pid[4392], build[bd98092/2016-04-04T12:25:05Z]
    3.  [2016-04-07 14:34:18,322][INFO ][node                     ] [Ogre] initializing ...
    4.  Exception in thread "main" java.lang.IllegalArgumentException: Plugin [analysis-ik] is incompatible with Elasticsearch [2.3.1]. Was designed for version [2.3.0]
    5.      at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:118)
    6.      at org.elasticsearch.plugins.PluginsService.getPluginBundles(PluginsService.java:378)
    7.      at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:128)
    8.      at org.elasticsearch.node.Node.<init>(Node.java:158)
    9.      at org.elasticsearch.node.Node.<init>(Node.java:140)
    10.     at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:143)
    11.     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178)
    12.     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)
    13.     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
    14. Refer to the log for complete error details.

    修改plugin-descriptor.properties中的elasticsearch.version=2.3.0到2.3.1临时解决问题。。
    等以后有新版本再更新好了

    B. 概念

    B1. node

    1.  为集群节点, 一般情况下一个node为一个独立计算机的elasticsearch分布索引计算实例,

    B2. shard

    1.  为索引分片,默认为每个节点5个主要分配,一个索引可能分布在一个或者多个分片当中,有些分片可能在其他节点, 在机器数量(node)有限的情况下,shard并不是越多越好,并行搜索多个分片会带来更高的IO,合并搜索结果也会带来更高的CPU

    B3.replica shards

    1.  为复制分片,为了提高建立索引的速度,第一次增量的时候可以设置复制分片为0,增量完成后再设置复制分片为1

    B4. 以windows 服务来运行 elasticsearch

    1.  官网提供说明
    2.  c:\elasticsearch-{version}bin>service install
    3.  Installing service      :  "elasticsearch-service-x64"
    4.  Using JAVA_HOME (64-bit):  "c:\jvm\jdk1.8"
    5.  The service 'elasticsearch-service-x64' has been installed.
    6.   
    7.  还有java虚拟机运行内存要单独在 serivce.bat 中设置
    8.   
    9.  打开管理UI
    10. c:\elasticsearch-{version}bin>service manager 
    11.  
    12. 删除服务
    13. c:\elasticsearch-{version}bin>service remove

    官网引用地址

    C. 配置

    C1. 内存

    1.  配置文件在bin目录下的 elasticsearch.in.bat 文件中, ES_MIN_MEM 为最小内存 默认为256m, ES_MAX_MEM 为最大内存 默认为1g, elasticsearch 官方建议最小内存和最大内存设置为一样,可以提高性能

    C2. 网络地址

    1.  配置文件为config目录下的 elasticsearch.yml 设置 network.host=ip地址  http.port: 9200 这个是配置运行端口,默认9200超出我们服务器防火墙公开端口范围,需要注意修改

    C3. 集群搭建

    1.  在测试的时候并没有发现节点可以自动发现内网中的其他节点,不过手动配置后可以了
    2.  配置文件位于config目录下的 elasticsearch.yml 配置为 discovery.zen.ping.unicast.hosts: ["192.168.2.217", "192.168.1.180"]
    3.  一旦启动新节点,会自动复制选举城主节点后的索引数据,如果索引数据很多,这个过程应该会挺慢的
    4.  测试中down调某个节点,不会影响索引读取,客户端组件会自动路由失败请求到正常服务器,关掉的节点启动后会自动同步新索引。

    C4 注意事项

    1.  elasticsearch.yml 每一行配置(除了注释)前面必须有一个空格,那个空格不能删除,否则出问题

    第三方中文详细参考

    D. 测试

    D1. curl 工具

    可以使用 curl 进行测试,windows 下注意josn不能换行,还有不支持中文,可能默认传输GB2312的原因

    windows 下可以用CMD命令执行curl, 注意使用双引号替代单引号,中间的双引号按反斜杠\转义,不支持换号

    D1. Mapping

    _id字段网上说可以 通过mapping映射为某个字段,实际上测试并不行, 可能早期的版本可以支持映射,但测试的
    2.3.1版本并不行
    但索引的model里可以设置一个ID标签映射

    1.  [Nest.ElasticsearchType(IdProperty = "oc_code")]
    2.  public class OrgCompanyCombine

    D3. elasticsearch.net 客户端

    客户端默认吞掉一般的异常,如要设置为抛出异常,需要设置 ConnectionSettings.ThrowExceptions(true);

    还有未发现可以直接批量的更新操作方法

    D4. 大坑

    1、索引名称必须为小写

    2、索引类型(实体名)必须小写

    3、实体属性第一个字母必须是小写,否则会在mapping中自动出现一份新的字段

    4、mapping 里的字段类型一旦有数据,基本不能修改,只能删除重建索引

    5、mapping 里的类型可以单独新增

    6、yml配置文件中某一行的配置文件必须前面必须留空格

    7、单个实例配置的最大内存官方推荐不超过32GB,估计再大 java 的 GC 受不了,反而影响性能

  • 相关阅读:
    Golang-字符串常用的系统函数
    35.HTML--网页自动跳转 5种方法
    34.js----JS 开发者必须知道的十个 ES6 新特性
    33. 禁止鼠标右键保存图片、禁止拖动图片
    32.js 判断当前页面是否被浏览
    31.JS实现控制HTML5背景音乐播放暂停
    30.get和post的区别
    29.html5 移动端开发总结
    28.json数组,select选择,input输出对应数据
    27.给input边框和背景颜色设置全透明
  • 原文地址:https://www.cnblogs.com/yinzhou/p/7479339.html
Copyright © 2011-2022 走看看