华为fusionInsigtht集群es连接工具

news2024/11/17 17:46:49

  华为fusionInsight为用户提供海量数据的管理及分析功能,快速从结构化和非结构化的海量数据中挖掘您所需要的价值数据。开源组件结构复杂,安装、配置、管理过程费时费力,使用华为FusionInsight Manager将为您提供企业级的集群的统一管理平台,在工作中遇到使用华为集群的es由于过于安全,操作反而不便,为此记录下使用工具

1.使用账号密码登陆web界面下载认证凭据

2.1使用如下pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>huawei_es_tools</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>huawei_es_tools</name>

  <description>huawei_es_tools</description>
  <properties>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.12.5</version>
    </dependency>

    <dependency>
      <groupId>com.huawei</groupId>
      <artifactId>elasticsearch-rest-client</artifactId>
      <version>6.7.1</version>
    </dependency>
    <dependency>
      <groupId>com.huawei</groupId>
      <artifactId>elasticsearch</artifactId>
      <version>6.7.1</version>
    </dependency>
    <dependency>
      <groupId>com.huawei</groupId>
      <artifactId>elasticsearch-rest-high-level-client</artifactId>
      <version>6.7.1</version>
    </dependency>


  </dependencies>

  <repositories>

    <repository>
      <id>huaweicloudsdk</id>
      <url>https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>

    <repository>
      <id>central</id>
      <name>Mavn Centreal</name>
      <url>https://repo1.maven.org/maven2/</url>
    </repository>

  </repositories>
  <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <excludes>
            <exclude>log4j.properties</exclude>
            <exclude>log4j2.xml</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

3.在项目目录下建立conf文件夹并存放1步骤中的凭据文件

4.测试工具类

public class EsTest {

  /**
   * 配置文件路径位置
   */
  private static final int CONFIG_PATH_ARGUMENT_INDEX = 0;

  /**
   * 获取HwRestClient
   *
   * @param args 配置参数
   * @return HwRestClient
   */
  public static HwRestClient getHwRestClient(String[] args) {
    HwRestClient hwRestClient;
    if (args == null
            || args.length < 1
            || args[CONFIG_PATH_ARGUMENT_INDEX] == null
            || args[CONFIG_PATH_ARGUMENT_INDEX].isEmpty()) {
      hwRestClient = new HwRestClient();
    } else {
      String configPath = args[CONFIG_PATH_ARGUMENT_INDEX];
      File configFile = new File(configPath);
      if (configFile.exists()) {
        if (configFile.isDirectory()) {
          hwRestClient = new HwRestClient(configPath);
        } else {
          try {
            hwRestClient =
                    new HwRestClient(
                            configFile
                                    .getCanonicalPath()
                                    .substring(
                                            0,
                                            configFile.getCanonicalPath().lastIndexOf(File.separator) + 1));
          } catch (IOException e) {
            hwRestClient = new HwRestClient();
          }
        }
      } else {
        hwRestClient = new HwRestClient();
      }
    }
    return hwRestClient;
  }

  /**
   * 查询指定索引下数据
   *
   * @param highLevelClient
   * @param index
   */
  public static void search(RestHighLevelClient highLevelClient, String index) {
    try {
      //A search source builder allowing to 创建一个搜索源
      SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
      //SearchRequest按一个或多个索引查询,需要一个SearchSourceBuilder,搜索源提供了搜索选项
      SearchRequest searchRequest = new SearchRequest();
      //text类型不能用于索引或排序,必须转成keyword类型
      //String AggregationName = "application_aggregations";
      //脚本
      //String painlessScript = "((doc['S_IP.keyword'].value))";
      //TermsAggregationBuilder aggregation = AggregationBuilders
      //        .terms(AggregationName)
      //        .script(new Script(ScriptType.INLINE, "painless", painlessScript, new HashMap<>()))
      //        //应返回桶的数量--全量返回
      //        .size(Integer.MAX_VALUE)
      //        //最少1条
      //        .minDocCount(1)
      //        .shardMinDocCount(0)
      //        //返回文档计数错误
      //        .showTermDocCountError(false);
      //添加bool过滤器,进行条件查询
      BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
      //must --时间必须满足
      //存在关键字sourceOrDestinationTerm(S_IP)
      //boolQueryBuilder.must(QueryBuilders.existsQuery("S_IP"));
      //定义sourceBuilder,范围为0-9999,按时间排序,正序,再传入之前的查询条件,from 0 size 0 不查原始数据
      //sourceBuilder.sort("TIME.keyword", SortOrder.ASC).from(0).size(0).query(boolQueryBuilder).aggregation(aggregation);
      //定义查询的索引,定义搜索源,即sourceBuilder对象
      searchRequest.indices(index);
      searchRequest.source(sourceBuilder);
      //开始搜索,拿到结果
      SearchResponse searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT);
      System.out.println("Search response is==" + searchResponse.toString());
    } catch (IOException e) {
      System.out.println("Search is failed, exception occurred." + e);
    }
  }

  public static void addData(RestHighLevelClient highLevelClient, String index, String id, String dataStr) {
    try {
      IndexRequest indexRequest = new IndexRequest(index).id(id);
      indexRequest.source(dataStr, XContentType.JSON);
      indexRequest.type("_doc");
      IndexResponse indexResponse = highLevelClient.index(indexRequest, RequestOptions.DEFAULT);

      System.out.println("addData response is " + indexResponse.toString());
    } catch (IOException e) {
      System.out.println("addData is failed,exception occurred." + e);
    }
  }


  public static void main(String[] args) {
    RestHighLevelClient highLevelClient = null;
    HwRestClient hwRestClient = getHwRestClient(args);
    try {
      highLevelClient = new RestHighLevelClient(hwRestClient.getRestClientBuilder());
      addData(highLevelClient, "sql_log_2023-11-07", "1", "{\"title\":\"其余信息\",\"key\":\"other\"}");
      search(highLevelClient, "sql_log_log*");
    } finally {
      try {
        if (highLevelClient != null) {
          highLevelClient.close();
        }
      } catch (IOException e) {
        System.out.println("Failed to close RestHighLevelClient." + e);
      }
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据管理平台有什么用?如何利用大数据管理平台优化企业运营?

在数字化时代&#xff0c;大数据管理平台已经成为了企业和组织不可或缺的工具。它不仅可以帮助企业跟踪和解决报修问题&#xff0c;还为数据分析提供了丰富的信息。通过合理利用大数据管理平台进行数据分析&#xff0c;企业可以更好地了解其运营情况&#xff0c;优化设备维修和…

攻防世界题目练习——Web引导模式(四)(持续更新)

题目目录 1. shrine2. very_easy_sql 1. shrine 打开网页题目内容如下&#xff1a; 是一段代码&#xff0c;我们把它还原一下&#xff1a; import flask import osapp flask.Flask(__name__) app.config[FLAG] os.environ.pop(FLAG) #这里应该是将config配置里的FLAG字段设…

Time series analysis of InSAR data: Methods and trends(NASA,2015)

文章目录 ISPRS J PHOTOGRAMMIntroductionPhase unwrapping相位解缠算法综述 Time series analysis of InSAR dataPersistent Scatterer Interferometry (PSI)--持久散射体☆☆☆☆PSInSAR && SBAS-InSAR☆☆☆☆PS-InSARSBAS-InSARDS-InSAR&#xff08;分布式散射体干…

金秋云创季——ECS爆品省钱攻略

阿里云双十一推出优惠活动——“金秋云创季”&#xff0c;其中&#xff0c;云服务ECS下的经济型e实例&#xff0c;低至99元/1年&#xff0c;新老用户都可购买&#xff0c;续费不涨价&#xff1b;轻量应用服务器&#xff0c;2核2G 低至87元1年……官方满减优惠享受折上折。惊喜不…

微服务架构——笔记(4)

微服务架构——笔记&#xff08;4&#xff09; 基于分布式的微服务架构 本次笔记为 此次项目的记录&#xff0c;便于整理思路&#xff0c;仅供参考&#xff0c;笔者也将会让程序更加完善 内容包括&#xff1a;8001集群构建&#xff0c;负载均衡&#xff0c;服务发现&#xff0…

day51

前端框架Booststrap 该框架已经帮我们写了很多页面样式&#xff0c;如果需要使用&#xff0c;只需要下载对应文件直接cv即可 在使用Booststrap的时候&#xff0c;所有发页面样式只需要通过修改class属性来调节即可 什么是Booststrap Bootstrap是一个开源的前端框架&#xff…

基于junit4搭建自定义的接口自动化测试框架

随着业务的逐步稳定&#xff0c;对于接口的改动也会逐渐变少。更多的是对业务逻辑的优化&#xff0c;功能实现的完善。对于测试来说&#xff0c;重复繁琐的功能测试不仅效率低下&#xff0c;而且耗费一定的人力资源。笔者支持的信息流业务下的一个图文管理平台就是一个功能较为…

Elasticsearch:ES|QL 的限制

尽管 ES|QL 带来性能及使用上的便捷&#xff0c;在实际的使用中&#xff0c;它还是有一些限制。在今天的文章中&#xff0c;我们来列举它的一些限制。 结果集大小限制 默认情况下&#xff0c;ES|QL 查询最多返回 500 行。 你可以使用 LIMIT 命令将行数增加到最多 10,000 行。 …

SDH设备

文章目录 实际的SDH设备结构&#xff1a;OSN3500

Archicad 26 (BIM建模软件)

Archicad 26是一款建筑信息模型&#xff08;BIM&#xff09;软件&#xff0c;由Graphisoft公司开发。它提供了全面的设计和建模工具&#xff0c;用于创建3D建筑模型、制作施工图纸等。 Archicad 26支持多种文件格式&#xff0c;并且可以与其他CAD软件进行互操作。它具有强大的建…

关于mysql自增列起始值与数据实际id不一致的问题

从一个数据表生成表结构和数据的脚本之后。把脚本复制到另一个数据库执行同步数据结构和数据。 Navicat 发生了如下异常提示&#xff0c;并中断了脚本执行&#xff1a; Duplicate entry 51110 for key sys_log.PRIMARY 然后检查sys_log表的建表脚本&#xff0c;发现有如下行&…

期中考试后,老师用它发成绩

期中考试过后&#xff0c;对于老师们来说&#xff0c;最烦的就是学生家长一直不停的咨询成绩。然而&#xff0c;一群班群直接公布成绩不仅耗时&#xff0c;还不合规。那么&#xff0c;如何用代码和Excel实现让学生自助查询成绩呢&#xff1f;下面&#xff0c;我将向各位老师介绍…

[C/C++]数据结构 链表OJ题:移除链表元素

题目描述: 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 方法一: 从头开始遍历链表,当遇到相同元素则跳过该元素,指向下一节点 struct ListNode* removeElements(struct ListNode* head…

智慧法院 | 平均执行效率提升86%,RPA数字劳动力改善法院整体工作效能

为深化政法智能化建设&#xff0c;加强“智慧治理”“智慧法院”“智慧检务”“智慧警务”“智慧司法”等信息平台建设&#xff0c;深入实施大数据战略&#xff0c;实现科技创新成果同政法工作深度融合。法制日报社于今年3月继续举办了2023政法智能化建设创新案例及论文征集宣传…

利用TexturePacker 进行pvr.ccz与png互转

这几天在玩 小冰冰传奇 有几个新的游戏角色甚是喜欢&#xff0c;想找几张图片看看&#xff0c;索性就去下载apk找找里面的图片 https://dgame-apk.lilithgame.com/dtcq_675.lilith-android1013.apk 500多M 然后去下载TexturePacker这个软件 27M 我们直接把 dtcq_675.lil…

Vue路由(router-link)——高亮、动态传参

一、声明式导航-导航链接 1.需求 实现导航高亮效果 如果使用a标签进行跳转的话&#xff0c;需要给当前跳转的导航加样式&#xff0c;同时要移除上一个a标签的样式&#xff0c;太麻烦&#xff01;&#xff01;&#xff01; 2.解决方案 vue-router 提供了一个全局组件 router…

led台灯哪些牌子性价比高?推荐五个性价比超高的护眼台灯

作为学龄期儿童的家长&#xff0c;最担心的就是孩子长时间学习影响视力健康。无论是上网课、写作业、玩桌游还是陪伴孩子读绘本&#xff0c;都需要一个足够明亮的照明环境&#xff0c;因此选购一款为孩子视力发展保驾护航的台灯非常重要。为大家推荐几款性价比高的护眼台灯。 …

Devchat AI尝鲜试用:程序员开发提效利器,告别脏活累活

DevChat 简介 在当今的软件开发领域&#xff0c;程序员们每天都要面对海量的代码和复杂的任务。尽管技术不断发展&#xff0c;但程序员们依然需要花费大量时间进行重复性工作&#xff0c;如代码审查、错误排查、文档编写等。这些脏活累活不仅消耗了程序员们大量的时间和精力&am…

科东软件新型工业操作系统亮相2023工控中国大会

近日&#xff0c;2023第三届工控中国大会在苏州太湖国际会议中心成功举办&#xff01;大会由中国电子信息产业发展研究院、中国工业经济联合会、国家智能制造专家委员会、国家产业基础专家委员会、江苏省工业和信息化厅、江苏省国有资产监督管理委员会、苏州市人民政府共同主办…

守护线程和非守护线程

一、前言 借鉴文章&#xff1a; 文章1 文章2 ①Java提供的两种线程 Java提供了两种线程&#xff1a; 守护线程和用户线程&#xff08;非守护线程&#xff09; 守护线程&#xff08;Daemon Thread&#xff09;&#xff1a; 在程序运行时 在后台提供一种通用服务的线程&#x…