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

使用要求

  • 下载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 oryx
cd oryx
mvn -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 将会运行所有的测试,可能花费更多的时间

模块映射

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

  Serving Speed Batch
Binary oryx-serving oryx-speed oryx-batch
App oryx-app-serving oryx-app-mllib oryx-app oryx-app-mllib oryx-app
ML   oryx-ml oryx-ml
Lambda oryx-lambda-serving oryx-lambda oryx-lambda

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

搭建一个Oryx应用

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

创建一个应用

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

  Java Scala
Batch batch.BatchLayerUpdate batch.ScalaBatchLayerUpdate
Speed speed.SpeedModelManager speed.ScalaSpeedModelManager
Serving serving.ServingModelManager serving.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/example
mvn 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}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CDH5.8+Oryx2.2推荐系统环境搭建 1 一、 安装准备 1 1 准备4台主机搭建集群 1 2 在/etc/hosts增加(所有主机) 1 3 禁用IPV6(所有主机) 1 4 关闭防火墙(所有主机) 1 5 禁用selinux(所有主机) 2 6 配置时钟同步(所有主机) 2 7 配置.ssh免密码登录(所有主机) 2 二、 CDH安装 3 1 安装方式选择(PATH B方式,配置本地yum源安装): 3 2 软件、安装包下载 4 3 安装Oracle JDK1.8(全部主机) 4 4 安装mysql数据库(server60159) 4 5 配置mysql数据库为InnoDB模式 4 6 创建CDH相关数据库 6 7 下载mysql-jdbc驱动并做相应配置 7 8 搭建本地yum源 7 9 安装cloudera-manager-server(server60159) 7 10 安装cloudera-manager-agent(所有主机) 7 11 将mysql-jdbc驱动拷贝到需要的目录(server60159) 8 12 初始化mysql数据库-重要(server60159) 8 13 在agent主机上修改连接server主机的主机名(所有主机) 8 14 主机参数配置-附加部分(所有主机) 8 15 启动CDH服务 9 三、 安装CDH-Parcels(组件服务) 9 1 访问安装页面 9 2 配置本地Parcels(server60159) 9 3 选择安装的组件(一些步骤没有截图) 10 4 安装过程中需要配置相关数据库 10 5 安装完成,提示成功 11 四、 安装kafka 11 1 下载软件 11 2 修改配置 11 3 启动服务 11 五、 安装Oryx 11 1 下载软件 12 2 下载配置文件oryx.conf 12 3 创建kafka主题(topic) 12 4 启动Oryx 12 5 遇到错误处理解决(可能远不止这些错误) 13 6 推送kafka数据 13 7 访问Oryx 13 六、 联系作者 14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值