INFINI Easysearch尝鲜Hands on

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个自主可控的轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。

Easysearch 支持原生 Elasticsearch 的 DSL 查询语法,确保原业务代码无需调整即可无缝迁移。同时,极限科技还支持 SQL 查询,为熟悉 SQL 的开发人员提供更加便捷的数据分析方式。此外,Easysearch 兼容 Elasticsearch 的 SDK 和现有索引存储格式,支持冷热架构和索引生命周期管理,确保用户能够轻松实现数据的无缝衔接。

安装

安装脚本

无论是Linux还是 mac 都是这个一键脚本

curl -sSL http://get.infini.cloud | bash -s -- -p easysearch

同时也提供了二进制的安装包:
在这里插入图片描述

如果不想整理JAVA环境问题,还可以使用这个
https://release.infinilabs.com/easysearch/stable/bundle/

docker 部署

官方提供了Docker Compose 样例,包括三个服务:easysearch-node1easysearch-node2console。以下是详细说明:

  1. 版本控制

    • version: '3' 表示使用 Docker Compose 文件的第 3 版格式。
  2. 服务定义

    • easysearch-node1 和 easysearch-node2

      • 这两个服务使用相同的 Docker 镜像 infinilabs/easysearch:latest来组成双节点的集群。
      • 容器运行时使用用户和组 ID 602:602
      • 设置了 ES_JAVA_OPTS 环境变量以配置 Java 虚拟机的内存。
      • ulimits 选项配置了内存锁定和文件描述符的限制,以提升性能。
      • 容器内的配置、数据和日志目录通过卷映射到主机目录中,以便于数据持久化。
      • 服务暴露特定端口,使外部能够访问容器中的服务。
      • 两个节点均加入名为 esnet 的自定义网络中。
    • console

      • 该服务使用镜像 infinilabs/console:1.26.0-1552(该镜像没有latest,需要手动把latest更改位特定的版本号)。
      • 同样通过卷将数据和日志目录映射到主机。
      • 暴露 9000 端口用于 Web 界面访问。
      • 使用 links 功能链接到 easysearch-node1easysearch-node2,简化容器之间的通信。
      • 设置了时区环境变量 TZAsia/Shanghai
  3. 网络配置

    • esnet 网络使用 bridge 驱动,提供一个隔离的网络环境,配置了特定的子网 172.24.0.0/16,以确保服务之间的网络通信。
version: '3'
services:
  easysearch-node1:
    user: "602:602"
    image: infinilabs/easysearch:latest
    container_name: easysearch-node1
    hostname: easysearch-node1
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - $PWD/ezs1/config:/app/easysearch/config
      - $PWD/ezs1/data:/app/easysearch/data
      - $PWD/ezs1/logs:/app/easysearch/logs
    ports:
      - 9201:9200
      - 9301:9300
    networks:
      - esnet
  easysearch-node2:
    user: "602:602"
    image: infinilabs/easysearch:latest
    container_name: easysearch-node2
    hostname: easysearch-node2
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
      - $PWD/ezs2/config:/app/easysearch/config
      - $PWD/ezs2/data:/app/easysearch/data
      - $PWD/ezs2/logs:/app/easysearch/logs
    ports:
      - 9202:9200
      - 9302:9300
    networks:
      - esnet
  console:
    image: infinilabs/console:1.26.0-1552
    container_name: console
    hostname: console
    volumes:
      - $PWD/console/data:/data
      - $PWD/console/log:/log
    networks:
      - esnet
    ports:
      - 9000:9000
    links:
      - easysearch-node1:es1
      - easysearch-node2:es2
    environment:
      - TZ=Asia/Shanghai

networks:
  esnet:
    driver: bridge
    ipam:
      config:
        - subnet: 172.24.0.0/16

尽管在这里官方提供了详细的命令,完全可以使用这个docker-compose up来进行替代。其他的脚本解释如下:

init.sh

#!/bin/bash

# 获取当前脚本所在目录的绝对路径
CUR_DIR=$(cd $(dirname $0); pwd)

# 创建必要的目录结构
mkdir -p $CUR_DIR/console/{data,log}
mkdir -p $CUR_DIR/{ezs1,ezs2}/{data,logs}

# 设置目录的拥有者和权限
chown -R 1000:1000 $CUR_DIR/console
chown -R 602:602 $CUR_DIR/{ezs1,ezs2}
chmod -R 0600 $CUR_DIR/{ezs1,ezs2}/config
# 设置 config 目录的子目录权限
find $CUR_DIR/{ezs1,ezs2}/config -type d -print0 | xargs -0 chmod 750

reset.sh

#!/bin/bash

# 获取当前脚本所在目录的绝对路径
CUR_DIR=$(cd $(dirname $0); pwd)

# 定义确认函数
function confirm() {
  display_str=$1
  default_ans=$2
  if [[ $default_ans == 'y/N' ]]; then
     must_match='[yY]'
  else
     must_match='[nN]'
  fi
  read -p"${display_str} [${default_ans}]:" ans
  [[ $ans == $must_match ]]
}

# 提示用户确认删除所有数据
confirm "RISK WARN: Delete all data!!!" 'y/N' && echo || exit

# 删除 console、ezs1 和 ezs2 的数据和日志文件
rm -rvf $CUR_DIR/console/{data,log}/*
rm -rvf $CUR_DIR/{ezs1,ezs2}/{data,logs}/*

start.sh

#!/bin/bash

# 使用 Docker Compose 启动 ezs2 项目中的服务
docker-compose -p ezs2 up

stop.sh

#!/bin/bash

# 使用 Docker Compose 关闭并移除 ezs2 项目中的所有服务
docker-compose -p ezs2 down

在我的电脑中,可以看到成功启动的容器。
在这里插入图片描述

https://infinilabs.cn/docs/latest/easysearch/getting-started/install/docker-compose/

Console连接

设置集群连接参数,比如域名端口,用户名密码。
在这里插入图片描述

初始化,这里会新建索引,写一些sample数据。
在这里插入图片描述

设置后台管理的密码,后期使用这个登录控制台。

在这里插入图片描述

检查配置,完成集群关联。
在这里插入图片描述
这个是后台管理界面,除了用户名密码之外,也支持单点登录:
在这里插入图片描述

跨引擎、跨版本、跨集群 独一份!在这里插入图片描述

使用自带的面板进行查看节点数量:

在这里插入图片描述

同时也支持REST 风格的API来进行查询。
在这里插入图片描述

接下来来使用Console连接Amazon的OpenSearch:

同样是输入集群的URL,用户名和密码。
在这里插入图片描述

然后可以拿到集群的信息,比如地址,版本号,集群状态,节点数量。
在这里插入图片描述

最后看到连接成功的信息。
在这里插入图片描述

我们可以在集群管理中看到EasySearch的集群和我们刚刚添加的OpenSearch集群。

在这里插入图片描述

是否开源?目前还没有开放源代码。

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值