关于Oryx推荐系统的文档- CSDN博客

来源:互联网 发布:淘宝禁售商品奶粉 编辑:程序博客网 时间:2024/05/16 02:33

使用要求

  • 下载Git或者一个能够支持Git的IDE
  • 下载安装Apache Maven 3.2.5 or later
  • 安装Java JDK (not just JRE) 8 or later

必须确保以上工具已经安装在你的电脑上了

编译

将Oryx源码下载到本地目录,并且去编译构建:

git clone https://github.com/OryxProject/oryx.git oryxcd oryxmvn -DskipTests package //使用maven方法来进行打包处理

以上的操作将会生成以下三个二进制文件:

  • Batch Layer: deploy/oryx-batch/target/oryx-batch-2.6.0.jar
  • Speed Layer: deploy/oryx-speed/target/oryx-speed-2.6.0.jar
  • Serving Layer: deploy/oryx-serving/target/oryx-serving-2.6.0.jar

平台

默认的编译是包含基于Spark MLlib和其他库的ML应用,在你自己的app上只构建lambda层和ML层,不能这样写-P!app-tier.,因为!是被保留的,所以你应该这样写:-P\!app-tier.

测试

mvn test 运行所有单元测试. mvn verify 将会运行所有的测试,可能花费更多的时间

模块映射

主要模块以及它们层与层的关系:

 ServingSpeedBatchBinaryoryx-servingoryx-speedoryx-batchApporyx-app-servingoryx-app-mllib oryx-apporyx-app-mllib oryx-appML oryx-mloryx-mlLambdaoryx-lambda-servingoryx-lambdaoryx-lambda

支撑类的模块 oryx-commonoryx-app-commonoryx-api, and oryx-app-api 是没有被列出来。

搭建一个Oryx应用

Oryx是一个实现了批量、速度、推荐服务逻辑、聚类和分类的应用层,然而,任何一个实现都是可以基于Oryx的,可以进行混合或者关联使用。

创建一个应用

当你创建一个传统的批量、速度或者服务层应用,其实就是相当于实现了com.cloudera.oryx.api中一些JAVA接口或者是Scala的特性。

 JavaScalaBatchbatch.BatchLayerUpdatebatch.ScalaBatchLayerUpdateSpeedspeed.SpeedModelManagerspeed.ScalaSpeedModelManagerServingserving.ServingModelManagerserving.ScalaServingModelManager

com.cloudera.oryx.api 中也包含了主要的支持类和接口

构建一个应用

为了能够在你的应用中使用这些接口/特性,需要添加一个依赖包com.cloudera.oryx:oryx-api。

在maven中,可以直接添加一个依赖:

<dependencies>  <dependency>    <groupId>com.cloudera.oryx</groupId>    <artifactId>oryx-api</artifactId>    <scope>provided</scope>    <version>2.6.0</version>  </dependency></dependencies>

example/中可以看到一个小项目“word count”,这个应用是对多行中的单词进行分割并统计不同单词的个数
编译代码并创建只包含实现的JAR文件,以及任何支持第三方代码的文件。使用Maven,这发生在MVN包。

编译Word Count这个例子

使用mvn构建整个项目,产生的jar是放在target/目录下。

重新编译或者打包那个word count例子:

cd app/examplemvn package

注意,除非你一开始进行了mvn ... install,否则的话它不会从头进行构建打包

定制一个Oryx应用

当部署一个已经打好包的Oryx应用,正常情况下,会为了特定应用场景的需要会添加一些额外的实现。

<dependencies>  <dependency>    <groupId>com.cloudera.oryx</groupId>    <artifactId>oryx-app-api</artifactId>    <scope>provided</scope>    <version>2.6.0</version>  </dependency></dependencies>

部署一个应用

复制结果JAR包(myapp.jar)到含有Oryx二进制jar包的文件目录,这样它便会运行起来。

更改Oryx .conf文件为了能够用于你的批量、速度或者服务实现的类。

当你运行 Batch / Speed / Serving Layers, 把--app-jar myapp.jar 加到oryx-run.sh 的命令行中。

 部署Word Count例子

如果你将构建word count这个应用,你可以通过复制和改编wordcount-example.conf 配置文件来使它运行。

./oryx-run.sh batch --conf wordcount-example.conf --app-jar example-2.6.0.jar

对于speed和serving layers是同样的,输入输出,然后观察计数。

curl -X POST http://.../add/foo%20bar%20baz...curl http://.../distinct{"foo":2,"bar":2,"baz":2}
原创粉丝点击