ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PredictionIO 命令行(pio CLI)完全指南:命令体系、参数详解与引擎实战流程

PredictionIO 命令行(pio CLI)完全指南:命令体系、参数详解与引擎实战流程 PredictionIO 命令行pio CLI完全指南命令体系、参数详解与引擎实战流程【免费下载链接】predictionioPredictionIO, a machine learning server for developers and ML engineers.项目地址: https://gitcode.com/gh_mirrors/pred/predictionio导读Apache PredictionIO 的一切交互都通过命令行接口CLI完成其统一入口是pio命令。本文以官方文档 docs/manual/source/cli/index.html.md 为主体结合仓库内 Console.scala、Pio.scala 等 CLI 源码系统梳理pio的三大类命令、全部子命令与参数默认值并给出从建应用、建引擎到训练、部署、批量预测的完整实战流程。读完本文你将能够熟练使用pio完成事件采集、引擎开发与上线运维的全链路操作。一、概览pio命令的统一格式与帮助系统所有与 Apache PredictionIO 的交互都通过命令行接口完成其统一语法为pio command [options] args...命令行解析由 Console.scala 中基于 scopt 框架构建的Console.main完成所有子命令、参数与默认值均由该文件定义是本文所有命令参数的权威依据。获取帮助同样简单pio help列出全部可用命令的用法摘要pio help command查看某个子命令的详细说明如pio help train。从源码看help本身也是一个被解析的子命令pio help command会拼接出对应的帮助文本见 Console.scala。此外直接不带任何参数执行pio也会输出帮助并返回非零退出码Console.scala。Apache PredictionIO 的命令可以划分为以下三大类类别命令用途通用命令help、version、status查看帮助、版本与系统运行状态事件服务器命令eventserver、app、accesskey启动事件服务器、管理应用与应用访问密钥引擎命令build、train、deploy、batchpredict等引擎的构建、训练、部署与批量预测二、通用命令General Commands通用命令用于查看 CLI 版本与整个 PredictionIO 系统的健康状态不依赖某个具体引擎项目。2.1pio help显示用法摘要pio help command可阅读某个子命令的详细用法。2.2pio version显示已安装的 PredictionIO 版本号。实现上直接读取构建期生成的BuildInfo.version见 Management.scala 与 Pio.scala。2.3pio status显示 PredictionIO 系统及其依赖的安装路径与运行状态是排查环境问题的一线命令。结合 Management.scala 的status实现其检查流程依次为定位 PredictionIO 安装目录若自动发现失败需通过--pio-home显式指定否则直接报错中止检查 Apache Spark要求存在$SPARK_HOME/bin/spark-submit并从RELEASE文件读取 Spark 版本最低要求为2.0.2不满足则中止若RELEASE文件缺失如某些发行版会给出警告并提示确保版本不低于 2.0.2检查存储后端连接调用storage.Storage.verifyAllDataObjects()验证所有已配置存储后端元数据、事件数据、模型数据均能连通失败时会打印各存储源的名称、类型与配置便于排查。全部通过后输出Your system is all ready to go.提示系统已就绪。三、事件服务器命令Event Server Commands事件服务器负责接收并存储来自客户端 SDK 的用户行为事件如rate、buy等是 DASE 数据管道Data的入口。3.1pio eventserver启动事件服务器。相关参数Console.scala参数说明默认值--ip value绑定的 IP 地址localhost--port value绑定的端口7070--stats启用统计信息关闭实现上通过 Management.scala 创建EventServer底层对应 data 模块中的 Akka HTTP 服务。3.2pio app管理应用app是事件服务器使用的一组应用App的管理入口每个应用有独立的名称、ID 与访问密钥Access Key。事件服务器要求所有事件都归属于某个 AppApp 也是后续引擎训练数据隔离的基本单位。pio app支持以下子命令源码见 App.scala子命令用途关键参数pio app new name创建新应用自动生成 App ID 与 Access Key--id id指定 ID可选--description desc描述--access-key key指定访问密钥pio app list列出所有应用及其访问密钥、允许的事件类型无pio app show name显示应用详情ID、描述、所有 Access Key 及允许事件、所属通道无pio app># 1. 检查系统环境PredictionIO / Spark / 存储后端 pio status # 2. 创建应用获得 App ID 与 Access Key pio app new MyApp1 # 3.可选限制某把访问密钥只能写指定事件 pio accesskey new MyApp1 rate buy pio accesskey list MyApp1 # 4. 在引擎项目目录下构建引擎 cd my-engine pio build # 5. 训练引擎产生引擎实例 pio train # 6. 部署为预测服务默认端口 8000 pio deploy # 7. 发送查询请求进行在线预测 curl -H Content-Type: application/json \ -d {user: u1, num: 4} \ http://localhost:8000/queries.json # 8. 批量预测每行一个查询 JSON pio batchpredict --input queries.json --output results.json # 9. 停止预测服务 pio undeploy需要说明的几点pio train、pio deploy都是异步启动底层 Spark 进程的见 Pio.scala 中processAwaitAndClean对进程退出码的等待与清理部署后服务常驻deploy/batchpredict未指定--engine-instance-id时一律使用最新已训练实例这是文档明确强调的行为也是日常迭代最常用的默认路径生产环境多实例部署时可通过--engine-id、--engine-version区分不同引擎配合--engine-instance-id精确定位某个训练产物。七、延伸阅读本文依据的原始文档docs/manual/source/cli/index.html.mdCLI 参数解析与帮助文本实现Console.scala命令分发与业务编排Pio.scala通用/事件服务器命令实现Management.scalaApp 与访问密钥管理App.scala、AccessKey.scala引擎构建/训练/部署/批量预测Engine.scala事件导入导出Import.scala、Export.scala、FileToEvents.scala、EventsToFile.scala环境变量模板PIO_HOME、SPARK_HOME等的配置参考conf/pio-env.sh.template【免费下载链接】predictionioPredictionIO, a machine learning server for developers and ML engineers.项目地址: https://gitcode.com/gh_mirrors/pred/predictionio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表