centos6安装elasticsearch2.3.3

转自:

linux下elasticsearch 安装、配置及示例

http://blog.csdn.net/sinat_28224453/article/details/51134978


简介
开始学es,我习惯边学边记,总结出现的问题和解决方法。本文是在两台Linux虚拟机下,安装了三个节点。本次搭建es同时实践了两种模式——单机模式和分布式模式。条件允许的话,可以在多台机器上配置es节点,如果你机器性能有限,那么可以在一台虚拟机上完成多节点的配置。
如图,是本次3个节点的分布。

虚拟机主机名 IP es节点
master 192.168.137.100 node1、node3
slave 192.168.137.101 node2

一、下载及配置

1.几个基本名词

index:es里的index相当于一个数据库
type:相当于数据库里的一个表。
id:唯一,相当于主键。
node:节点是es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同(下面有讲)。
cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。
shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

2.下载

名称
版本 下载地址
elasticsearch 1.7.3 elasticsearch-1.7.3.tar.gz

下载后,放到你的目录下并解压. 因为我们要配置包含三个节点的集群,可以先将其重命名为elasticsearch-node1。比如我的是 /home/zkpk/elasticsearch-node1。

3.修改配置文件

(1)初步修改
打开/home/zkpk/elasticsearch-node1/config目录下的elasticsearch.yml文件,修改以下属性值并取消该行的注释:

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
cluster.name: elasticsearch #这是集群名字,我们 起名为 elasticsearch。es启动后会将具有相同集群名字的节点放到一个集群下。 node.name: "es-node1" #节点名字。 covery.zen.minimum_master_nodes: 2 #指定集群中的节点中有几个有master资格的节点。对于大集群可以写3个以上。 discovery.zen.ping.timeout: 40s #默认是3s,这是设置集群中自动发现其它节点时ping连接超时时间,为避免因为网络差而导致启动报错,我设成了40s。 discovery.zen.ping.multicast.enabled: false #设置是否打开多播发现节点,默认是true。 network.bind_host: 192.168.137.100 #设置绑定的ip地址,这是我的master虚拟机的IP。 network.publish_host: #设置其它节点和该节点交互的ip地址。 network.host: #同时设置bind_host和publish_host上面两个参数。 discovery.zen.ping.unicast.hosts: ["192.168.137.100","192.168.137.101",0); box-sizing: border-box;">"192.168.137.100:9301"] #discovery.zen.ping.unicast.hosts:["节点1的 ip","节点2 的ip","节点3的ip"] 指明集群中其它可能为master的节点ip,以防es启动后发现不了集群中的其他节点。第一对引号里是node1,默认端口是9300。第二个是 node2 ,在另外一台机器上。第三个引号里是node3,因为它和node1在一台机器上,所以指定了9301端口。

(2)进一步修改
拷贝 elasticsearch-node1 整个文件夹,两份,一份elasticsearch-node2,一份elasticsearch-node3.
将elasticsearch-node2 文件夹copy到另外一台IP为192.168.137.101的机器上。而在 192.168.137.100 机器上有 node1和node3.

对于node3:node3和node1在一台机器上,node1的配置文件里端口默认分别是9300和9200,所以要改一下node3配置文件里的端口,elasticsearch.yml文件修改如下:

  
  
  • 1
  • 2
  • 3
    • 1
    • 2
    • 3
    node.name: "es-node3" transport.tcp.port: 9301 http.port: 9201

    对于node2:elasticsearch.yml修改如下

      
      
  • 1
  • 2
  • 3
  • 4
    • 1
    • 2
    • 3
    • 4
    node.name: "es-node2" network.bind_host: 192.168.137.101 network.publish_host: 192.168.137.101 network.host: 192.168.137.101

    注意:
    1.对于单机多节点的es集群,一定要注意修改transport.tcp.porthttp.port的默认值保证节点间不冲突。
    2. 出现找不到同一集群中的其他节点的情况,检查下discovery.zen.ping.unicast.hosts是否已设置。

    二、运行 & 关闭 elasticsearch

    1.运行elasticsearch :

    编辑 /home/zkpk/elasticsearch-1.7.3/bin/elasticsearch.in.sh, 设置 ES_MIN_MEM和ES_MAX_MEM,确保二者数值一致,或者可以在启动es时指定,

      
      
  • 1
  • 2
    • 1
    • 2
    [zkpk@master ~]$ cd ~/elasticsearch-node1/bin [zkpk@master bin]$ ./elasticsearch -Xms512m -Xmx512m

    若想让es后台运行,则

      
      
  • 1
    • 1
    [zkpk$ ./elasticsearch -d -Xms512m -Xmx512m

    2.关闭elasticsearch:

    前台运行:可以通过”CTRL+C”组合键来停止运行
    后台运行,可以通过”kill -9 进程号”停止.也可以通过REST API接口:

      
      
  • 1
  • curl -XPOST http://主机IP:9200/_cluster/nodes/_shutdown

    来关闭整个集群,通过:

    //主机IP:9200/_cluster/nodes/节点标示符(如es-node1)/_shutdown

    来关闭单个节点.

    三、插件及其安装

    BigDesk Plugin :对集群中es状态进行监控。
    Elasticsearch Head Plugin:对ES进行各种操作,如查询、删除、浏览索引等。

    1.安装head插件

    进入到节点elasticsearch-node1/bin路径,并安装插件。

    $ ./plugin -install mobz/elasticsearch-head

    2. 安装bigdesk

    [zkpk@master bin]$ ./plugin -install lukas-vlcek/bigdesk

    让我们看下es页面吧~~

    打开head浏览,浏览器输入http://192.168.137.100:9200/_plugin/head/,如图,

    每个小方块就是索引分片,可以看到每个索引被分成几个分片,每个分片还有它的备份分片,然后存储在三个节点上。粗框的是主分片,细框的是备份分片。

    四、添加索引

    现在我们来添加一个索引记录吧~

    1.可以在命令窗口通过命令来添加

      
      
  • 1
  • curl -XPUT 'http://主机IP:9200/dept/employee/32' -d '{ "empname": "emp32"}'

    http://www.oschina.net/translate/elasticsearch-getting-started?cmp

    2.我们可以在页面上通过JSON添加

    (1)点击 复合查询[+] ,我们可以在 megacorp 索引 (相当于数据库名)的 employee 类型(相当于表名)下新增一个id为2的人的信息。

    点击下方的提交请求按钮,页面右方有回馈信息,“created”代表是否为新建。添加成功。

    点击浏览数据,在左侧索引下选择megacorp,如图,

    可以看到,一条id为2的记录被添加了。

    (2)下面我们修改id为2 的人的年龄为15,把about 信息去掉,并且加一项兴趣。

    提交后,右侧有反馈信息,“created”为false,因为我们这次不是新建而是修改。

    返回浏览数据,id为2 的记录,年龄、兴趣等均已发生变化。

    参考:
    http://www.cnblogs.com/huangfox/p/3543351.html
    http://www.linuxidc.com/Linux/2015-02/114243.htm
    http://my.oschina.net/u/579033/blog/394845?fromerr=Kt60ej6x

    文档总结不易,希望能帮到各位,和各位一起进步,另,转载请标明出处。



    ----------------------------------------总结-----------------------------------------------------------------


    本次是在一台机上部署三个节点,因此复制三份文件夹


    一.其中为避免root没有权限启动,做法有2:

    1.在bin/elasticsearch.in.sh末尾追加一句参数:

    JAVA_OPTS="$JAVA_OPTS -Des.insecure.allow.root=true"


    2.

    用root用户运行es会报错
      Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
      at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
      at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)
      at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
      at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
      Refer to the log for complete error details.

    4)由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行ElasticSearch
      groupadd 组名
      useradd 用户名 -g 组名 -p 密码

    5)更改elasticsearch文件夹及内部文件的所属用户及组为 用户名:组名
      cd /安装目录上一层
      chown -R 用户名:组名 /安装目录

    6)切换到elsearch用户再启动
       su elsearch

    cd elasticsearch/bin
      ./elasticsearch //第三台机可能有点问题,我在修改了文件名,又改回来就可以了





    二,配置elasticsearch.yml
    在配置时,每个属性离开左边一个空格,如:cluster.name: my-elasticsearch
    每个冒号离开一个空格再写value,如上,否则报错


    三,登陆_head插件看到集群信息,

    关闭第一个节点后,第二个节点作为了主节点了:
    ctrl+c 关闭


    关闭后,刷新界面:

    五角星为主节点即node2

    相关文章

    linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
    1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
    最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
    ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
    设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
    vim /etc/sysconfig/network-scripts/ifcfg-eth0 B...