zoukankan      html  css  js  c++  java
  • ES集群搭建

    (一) 准备

    官网下载 es安装包

     JDK版本: 1.8

    注意:ES不能以root用户身份运行 确保运行用户对各使用到的目录的权限

    获取安装包版本 6.2.4

    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

    解压到安装目录

    tar -xvf elasticsearch-6.2.4.tar.gz -C /opt

    配置

    # vim /etc/elasticsearch/elasticsearch.yml 

    cluster.name: myelk //17行(名称相同就是在一个集群里)
    node.name: es1 //本机名称 23行
    network.host: 0.0.0.0 // 54行
    discovery.zen.ping.unicast.hosts: [“es1", “es2", “es3"] //发现集群节点 68行

    启动

    #cd  /opt/elasticsearch-6.2.4/bin
    #./elasticsearch
    #netstat –ltunp    // 能够看到9200,9300被监听
    # curl 192.168.1.51:9200   //通过浏览器或curl访问9200端口

     启动时指定参数:

    #./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name

    了解启动脚本可用选项:  

    #./elasticsearch -h

    ES集群配置

    – 集群中的所有节点要相互能够ping通,要在所有集群机器上配置/etc/hosts中的主机名与ip对应关系

    – 集群中所有机器都要安装Java环境

    – cluster.name集群名称配置要求完全一致

    – node.name为当前节点标识,应配置本机的主机名

    – discovery为集群节点机器,不需要全部配置

    – 配置完成以后启动所有节点服务

    验证集群,使用ES内置字段 _cluster/health

    curl http://192.168.1.51:9200/_cluster/health?pretty
    {
    "cluster_name" : "myelk",
    "status" : "green",
    "timed_out" : false,
    "number_of_nodes" : 5,
    "number_of_data_nodes" : 5,    //表示集群中节点的数量
    ...
    ...
    "active_shards_percent_as_number" : 100.0
    }
    
    返回字段解析 status : " green " 集群状态,绿色为正常,黄色表示有问题但不是很严重,红色表示严重故障

    RESTful API 调用

    Elasticsearch提供了一系列RESTful的API

    – 检查集群、节点、索引的健康度、状态和统计

    – 管理集群、节点、索引的数据及元数据

    – 对索引进行CRUD操作及查询操作

    – 执行其他高级操作如分页、排序、过滤等

    POST或PUT数据使用json格式

    JSON格式:
                 数组 ["aa", "bb", "cc"]
                 键值对 { key: value }

     RESTful API的简单使用

      _cat API查询集群状态,节点信息
    例子:
    http://192.168.1.51:9200/_cat/health?v     //v参数显示详细信息
    http://192.168.1.51:9200/_cat/health?help  //help显示帮助信息
    http://192.168.1.51:9200/_cat/nodes?v      //nodes 查询节点状态信息
    http://192.168.1.51:9200/_cat/indices?v    //索引信息

    RESTful API增加:

    curl -XPUT http://192.168.1.55:9200/t3/ -d '{
    "settings":{
        "index":{
        "number_of_shards": 5,    //分片数量
        "number_of_replicas": 1   //副本数量
            }
        }
    }'

    http://192.168.1.51:9200/_plugin/head/   //elaserch页面

    增:PUT

    RESTful API插入数据

    – (增)加数据,使用 PUT 方法

    – 调用方式: 数据库地址/索引/类型/id值

    curl -XPUT http://192.168.1.51:9200/t3/n1/1  -d '{ 
    "姓名":"李白",
    "职业":"诗人",
    "称号":"诗仙",
    "年代":"唐"}'

    改:POST

    – 修(改)数据,使用 POST 方法

    – 在修改数据的时候必须调用 _update 关键字

    – 调用方式:数据库地址/索引/类型/id值/_update

    curl  -XPOST http://192.168.1.53:9200/t3/n1/2/_update -d '
    {"doc":{"职业":"粉丝"}}'
      文档

    查:GET

    – 查询使用 GET 方法,GET为默认方法

    – 查询显示结果时候可以用 pretty 规范显示格式

    – 多条查询需要使用 _mget 关键字配合 json 调用

    curl -XGET 'http://192.168.1.55:9200/tedu/teacher/1'

    删:DELETE

    – 删除时候可以是文档,也可以是库,但不能是类型

    curl -XDELETE 'http://192.168.1.55:9200/tedu/teacher/1'
    curl -XDELETE 'http://192.168.1.55:9200/tedu'

    批量导入数据

    使用_bulk批量导入数据

    – 批量导入数据使用POST方式,数据格式为json,url ;编码使用data-binary

    – 导入含有index配置的json文件

    # gzip -d logs.jsonl.gz   //解压文件
    
    # curl -XPOST 'http://192.168.1.51:9200/_bulk' --data-binary @logs.jsonl    //导入
    
    导入数据时,先查看数据,如有需要,自己添加库和表
    
    
    web1 ~]# cat /var/log/httpd/access_log     //访问日志
    192.168.1.40 - - [13/Jun/2019:14:12:57 +0800] "GET / HTTP/1.1" 200 12 "-" "curl/7.29.0"
      ip地址                     时间戳                       访问方式         协议/版本号
  • 相关阅读:
    SQL SERVER2005中将普通表修改为分区表
    手把手教你建立SQL数据库的表分区
    捕获input 文本框内容改变的事件(onchange,onblur,onPropertyChange比较)
    sql语句求排名
    带输出参数的插入语句
    js Base64.encode(str)_decode(str).html
    jquery.base64.js(完美解决中文乱码) 免费版
    sql数据库如何获取某个字段里的最大值?
    C#里封装 继承 多态
    C#中的属性get和set()方法
  • 原文地址:https://www.cnblogs.com/xujint/p/13353526.html
Copyright © 2011-2022 走看看