当前位置: 首页 > news >正文

在嘉立创的泰山派上也能运行Easysearch

最近一段时间我折腾硬件比较多,经常翻箱倒柜找各种开发板出来玩。某天在角落里翻到一块嘉立创的泰山派开发板(Taishan Pi),这是一块基于 Rockchip RK3566 的嵌入式 Linux 板卡。严格来说,它的性能比树莓派还要逊色一些,尤其是 CPU 主频和内存带宽方面。但手痒之下,我突然想到了一个念头:能不能在这样一块嵌入式开发板上跑一个完整的 Easysearch 实例呢?

Easysearch 本质上是一个搜索引擎数据库,是 Elasticsearch 的国产化替代方案。它在大多数情况下被部署在 x86_64/arm架构的服务器上,搭配 SSD 或 NVMe 作为存储,用来做全文检索、大规模日志分析或向量搜索。在常规的生产场景中,我们很少会把它和“嵌入式开发板”联想在一起。毕竟,后者 CPU 性能有限、内存紧张、存储设备大多是 eMMC 或低速 SD 卡,看起来完全不是数据库的适配环境。

不过,学习和实验的环境往往不需要极致的性能。于是,我决定尝试一下,把 Easysearch 移植到泰山派上跑起来。

导出镜像

由于我的开发板连接Dockerhub经常超时, 而我的MacOS有之前缓存的Docker镜像。我的第一步是把镜像在 Mac 上先导出。

docker save -o easysearch-1.15.0.tar infinilabs/easysearch:1.15.0

上面这条命令会把名为 infinilabs/easysearch:1.15.0 的镜像打包成一个 tar 文件,文件大小大概 700MB 左右。导出的好处是:我不需要在嵌入式开发板上重新去拉取 Docker Hub 镜像(速度慢且容易失败),只需要把 tar 包通过 FTP 或者 SFTP 上传过去即可。

上传到开发板

由于泰山派跑的是一个裁剪过的 Linux 系统,自带 SSH 和 FTP 服务,所以我直接用 FTP 客户端把 easysearch-1.15.0.tar 上传到板子的 /home 目录。上传速度受限于板载 eMMC,大概 3MB/s 左右,耐心等一会儿就好。

image-20251001220450393

上传完毕后,我用 SSH 登录到开发板。

加载镜像

进入板子后,第一件事情就是把镜像导入到本地 Docker:

docker load -i easysearch-1.15.0.tar

等待几分钟,Docker 会把镜像重新解压并注册到本地。由于板子 CPU 性能有限,这个步骤比在笔记本上要慢不少,但最终会看到 familiar 的镜像 ID 出现在 docker images 的列表中。

调整内核参数

接下来要注意的就是一个经典坑:Easysearch/Elasticsearch 类的数据库要求内核参数 vm.max_map_count 至少设置为 262144,否则启动会直接报错。

sudo sysctl -w vm.max_map_count=262144

这条命令会临时修改内核参数。如果你打算长期使用,可以把它写到 /etc/sysctl.conf 或者 /etc/sysctl.d/ 里。

4d7085b4e63e9c41ed05715e9d39b125

启动容器

有了镜像和内核参数,接下来就是熟悉的 docker run 了:

docker run --name easysearch \--ulimit memlock=-1:-1 \-p 9200:9200 \infinilabs/easysearch:1.15.3

第一次启动时,容器会打印出初始的超级管理员密码,可以在日志里找到。

UI 访问与体验

容器启动后,在浏览器访问开发板的 IP 地址的 9200 端口,就能打开 Easysearch 的自带管理 UI。

image-20251001220226982

UI 上显示,除了内存很快被吃满之外,其他方面表现完全可用。毕竟 Easysearch 默认会尝试尽可能缓存索引数据,而 RK3566 开发板通常只有 2GB 或 4GB 内存,溢出是难免的。但从查询速度和索引写入的小规模实验来看,性能并没有想象中那么糟糕。我尝试运行了一些DSL,也没有什么问题。

换句话说,虽然这套组合是 arm CPU + eMMC 存储,但作为学习和体验之用已经足够。

性能观察

为了更直观地观察运行情况,我在容器启动后打开 htop

image-20251001220958785

可以看到 Easysearch 启动初始化时 CPU 占用飙升,内存使用量也接近物理上限。但在完成索引加载后,CPU 占用下降明显,保持在个位数到十几的水平。

这说明在嵌入式环境下跑数据库的瓶颈更多是 初始化大规模数据处理,而不是日常的小规模查询。对于个人实验、API 测试和功能熟悉,完全可以胜任。

适用场景与局限

把 Easysearch 部署在 RK3566 这样的小板子上,意义主要有两个:

  1. 学习和实验环境:如果你只是想熟悉 Easysearch 的 API、UI 界面,或者学习 Elasticsearch 生态,不必为了一点点测试数据开一台大服务器。
  2. 轻量级应用:某些嵌入式场景下需要本地搜索功能,比如日志收集、离线数据查询、小型 IoT 网关,Easysearch 也能派上用场。

当然,它也有明显的局限:

  • 内存限制:2GB 内存基本无法支撑大规模索引,超过几十万文档就会吃紧。
  • 存储性能:eMMC 的顺序写速度大约 40MB/s,随机写更低,这对索引写入速度有一定影响。
  • CPU 性能:四核 ARM Cortex-A55,单核性能有限,并发查询时表现会受限。

总结

这次尝试算是一次“异想天开”的实验:把 Easysearch 从 PC 搬到了一块嵌入式开发板上。最终结果是——它真的能跑,而且还比预想的顺畅。除了内存不足和初始化速度慢,实际使用体验完全能满足学习场景。

如果你平时不想让笔记本长时间开着数据库,又恰好手边有一块开发板,那么完全可以用类似的办法,把 Easysearch 跑在开发板上作为一台“轻量数据库机”。

一句话总结: Easysearch 其实没有你想象中那么“重”,只要底层 Linux 和 Docker 能跑,它就能跑。

http://www.dtcms.com/a/430813.html

相关文章:

  • JSP 点击量统计
  • 应用网站如何做外贸网站建设哪里做得好
  • Kubernetes证书管理实战:cert-manager部署与CRD导出
  • [Java]PTA: jmu-Java-02基本语法-08-ArrayList入门
  • 网站建设背景及目的搜索优化的培训免费咨询
  • 2012 年真题配套词汇单词笔记(考研真相)
  • Ubuntu20.04 按照飞浆paddle 3.2遇到的问题
  • 网站建设推荐郑国华做网站ps图片都是多大
  • 探索 Docker/K8s 部署 MySQL 的创新实践与优化技巧
  • 线程属性的相关设置详解
  • 深圳公明网站建设桂林北站到阳朔
  • maven的概述以及在mac安装配置
  • 【复习】计网强化第一章
  • 【微信公众平台】小程序如何查找菜单?如何通过自定义的菜单路径生成小程序二维码?小程序二维码指定生成
  • 瑞萨M85内核芯片再出1GHz旗舰双核新品RA8T2,两个千兆以太网MAC,集成EtherCAT从机接口,面向高端电机控制
  • 海洋公园网站建设方案网站开发加设计要多少钱
  • KingbaseES 的 SQL Server 兼容性测试
  • 基于ps2021实现1寸相纸的打印
  • [论文阅读] AI + 软件工程 | 从“事后补救”到“实时防控”,SemGuard重塑LLM代码生成质量
  • 购物网站修改文案常见的网络推广方法有几种
  • 手腕鼓包?可能是腱鞘囊肿
  • 网站推广方法有网站制作哪家做的好
  • Servlet 国际化
  • 安卓基础组件016--Toas组件
  • InfiniBand技术解析(2):为什么它是高性能计算的 “超级血管”?
  • 微商本地化发展模式的借鉴与探讨——以开源AI智能名片链动2+1模式S2B2C商城小程序为例
  • 基于遗传优化的LSTM-Attention一维时间序列预测算法matlab仿真
  • 深圳公司 网站建设广州做网站公司哪家好
  • 多个wordpress网站合并成品源码1688网站免费
  • macOS/Linux ClaudeCode 安装指南及 Claude Sonnet 4.5 介绍