如何在无网络的Linux虚拟机上为warp10手动安装warp10-ext-flows
离线Linux环境手动安装warp10-ext-flows扩展方案
前置核心要求
必须保证扩展版本和当前部署的Warp10核心版本完全匹配,跨版本安装大概率会出现类加载失败、服务无法启动的问题,这是整个操作最容易踩的坑。
操作步骤
1. 有网环境预准备
- 先在离线的Warp10服务器上拿到当前核心版本号:进入Warp10安装根目录,执行
grep warp.version warp10-etc/warp10.conf输出的内容就是当前版本,记录下来 - 在有网环境找到和该版本完全适配的
warp10-ext-flows主jar包,同时把该扩展依赖的所有第三方jar包全部收集齐全,不要遗漏 - 把所有准备好的jar包统一打包,通过合法的离线传输渠道(比如内网U盘、内部镜像仓库)传到无互联网的目标服务器上
2. 目标服务器部署配置
- 确认Warp10安装根目录下存在
warp10-ext目录,不存在就手动创建:mkdir -p ${WARP10_HOME}/warp10-ext,这里的${WARP10_HOME}替换成你实际的Warp10安装路径 - 把刚才传过来的所有jar包解压移动到
warp10-ext目录下 - 打开Warp10主配置文件
warp10-etc/warp10.conf,找到warp.extension.classes配置项,在现有值的末尾追加io.warp10.flows.FlowsExtension,如果是第一个扩展就直接写这个值,多个扩展用英文逗号分隔 - 配置文件和目录权限,保证运行Warp10服务的系统用户对这些文件有可读权限:
- 目录属主调整:
chown -R 运行Warp10的用户:运行Warp10的用户 ${WARP10_HOME}/warp10-ext/ - jar包权限调整:
chmod 644 ${WARP10_HOME}/warp10-ext/*.jar
- 目录属主调整:
3. 服务启动校验
- 重启Warp10服务:
${WARP10_HOME}/bin/warp10.sh restart - 查看启动日志
logs/warp10.log,搜索FlowsExtension关键字,确认没有类找不到、版本不兼容的报错,且有扩展加载成功的日志输出 - 随便调用一个warp10-ext-flows提供的测试函数,确认函数可以被正常解析、返回结果,就说明安装完成
避坑提示
- 如果启动日志报
NoClassDefFoundError,说明收集依赖的时候漏了对应jar包,回到有网环境补下对应依赖包再重复部署步骤即可- 传输jar包的时候最好校验下文件MD5,避免传输过程中文件损坏导致加载失败
- 如果自定义过Warp10的扩展目录路径,不要用默认的
warp10-ext路径,把jar包放到你自定义的扩展目录下就行
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

