zoukankan      html  css  js  c++  java
  • ES项目实战

    前置

    ES: Java Spark/Flink Stack + Spring Boot + ES Scala/Java + Java/Scala + Java ==> 用API的方式来掌握ES的用法(API、SpringBoot的使用) ES: API RESTFul

    ElasticSearch + Kibana 存储 展示/分析 ES Plugin: Head SQL Kibana (三个插件,Kibana也算插件) 最终数据要到SQL (易用性)

    ES的安装

    地址: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz 屏幕快照 2019-05-10 23.07.02 屏幕快照 2019-05-10 23.07.50

    • 解压: tar -zxvf elasticsearch-6.6.2.tar.gz -C ~/app/
    • 配置到系统环境变量:
    • 修改: cd elasticsearch-6.6.2 删除bin目录中以bat结尾的命令(windows中的,无用)

    $ES_HOME (重要的文件)
    bin
    elasticsearch 启动ES
    elasticsearch 前台方法启动 elasticsearch -d 后台方法启动 (需要打开日志查看系统输出信息) elasticsearch-plugin 管理ES插件
    elasticsearch-sql-cli sql客户端
    config

    elasticsearch.yml es的配置信息

    #cluster.name: my-application  (集群名称)
    #node.name: node-1   (节点名称)
    #path.data: /path/to/data
    Path to log files:
    path.logs: /path/to/logs
    #network.host: 0.0.0.0  (全网)
    Set a custom port for HTTP:
    http.port: 9200
        
    

    jvm.optiom es的JVM相关的配置信息

    ## the heap to 4 GB, set:
    ##
    ## -Xms4g
    ## -Xmx4g
    
    # Xms represents the initial size of total heap space
    # Xmx represents the maximum size of total heap space
    
    -Xms1g
    -Xmx1g
    
    ## GC configuration
    -XX:+UseConcMarkSweepGC
    -XX:CMSInitiatingOccupancyFraction=75
    -XX:+UseCMSInitiatingOccupancyOnly
    
    # explicitly set the stack size
    -Xss1m
    
    # specify an alternative path for heap dumps; ensure the directory exists and
    # has sufficient space
    -XX:HeapDumpPath=data
    
    # specify an alternative path for JVM fatal error logs
    -XX:ErrorFile=logs/hs_err_pid%p.log
    
    # ----------------------------------- Memory -----------------------------------
    elasticsearch-migrate       x-pack-env
    8:-XX:+PrintGCApplicationStoppedTime
    8:-Xloggc:logs/gc.log
    8:-XX:+UseGCLogFileRotation
    8:-XX:NumberOfGCLogFiles=32
    8:-XX:GCLogFileSize=64m
    

    ***注:ES对硬盘要求极高(一般SSD、内存大) ***

    后台启动ES: elasticsearch -d
    去Web UI查看: hadoop000:9200 (Web UI port) hadoop000:9300 服务器端口(server port) Lucene_version: "7.6.0" 不对应

    技巧:用chrome中的json字符串美化插件 (JSON Formatter)

    ES核心概念

    Cluster  
    Node  
    Index       Database   
    Type        Table  
    Document    Row
    Field       Column   //这四种的REST API在工作中用的最多
    shard(分片--分区集叫分片)
    replica(副本)
    
    对应关系:
    Index -> Type -> Document -> Field
    Database -> Table -> Row -> Column
    

    代码开发

    需要: IDEA+Maven+Java pom.xml

          <!--添加elasticsearch依赖-->
        <dependency>
          <groupId>org.elasticsearch.client</groupId>
          <artifactId>transport</artifactId>
          <version>6.6.2</version>
        </dependency>
    
        <!--添加junit依赖(默认已有)-->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <!--<scope>test</scope>(去掉这块),需要重新导入依赖-->
        </dependency>
    

    PreBuiltTransportClient.java

         /**
         * Creates a new transport client with pre-installed plugins.
         *
         * @param settings the settings passed to this transport client
         * @param plugins  an optional array of additional plugins to run with this client
         */
        @SafeVarargs
        public PreBuiltTransportClient(Settings settings, Class<? extends Plugin>... plugins) {
            this(settings, Arrays.asList(plugins));
        }
        //Class<? extends Plugin>...
        // ...代表一个/多个可变参数, 可填可不填
    

    TransportClient.java

    /**
         * Adds a transport address that will be used to connect to.
         * <p>
         * The Node this transport address represents will be used if its possible to connect to it.
         * If it is unavailable, it will be automatically connected to once it is up.
         * <p>
         * In order to get the list of all the current connected nodes, please see {@link #connectedNodes()}.
         */
        public TransportClient addTransportAddress(TransportAddress transportAddress) {
            nodesService.addTransportAddresses(transportAddress);
            return this;
        }
    
  • 相关阅读:
    驾照更换说明
    批处理创建快捷方式
    AC中保存数据与查询数据
    logger日志模块
    如何将python脚本转化为exe
    numpy学习
    request是个什么东西
    django的test文件的使用方式
    高频正则表达式
    dir 的作用
  • 原文地址:https://www.cnblogs.com/suixingc/p/es-xiang-mu-shi-zhan.html
Copyright © 2011-2022 走看看