协同过滤itembase增量计算Spark实现
Controller
1. 数据统计
user count:=========>8239237
itemCode count:=====>7421567
spark result distinct count ======>5826484
2. 运行子任务
倒叙
3. Spark集群信息
Spark初始化采用硬资源分配,计算过程中动态进行资源分配。
协同过滤为大数据依赖型,需大内存,cpu要求一般
4. 参数配置
sparkConf.set("spark.executor.memory","7G"); sparkConf.set("spark.executor.cores","1"); sparkConf.set("spark.executor.heartbeatInterval","20s"); sparkConf.set("spark.kryoserializer.buffer.max","256m"); sparkConf.set("spark.speculation","true"); sparkConf.set("spark.worker.timeout","500"); sparkConf.set("spark.core.connection.ack.wait.timeout","600"); sparkConf.set("spark.cores.max", "4"); |
5. 输出文件命名规则
recDataClean
入参:
原始文件
visitorId viewItemCode ref
出参:
recDataClean文件
vistor ----[itemcode,ref;itemcode,ref…..]
recNorms
增量计算itemCode norms
1. SparkDAG图
入参:
当前计算周期内清洗数据 recDateClean
上个计算周期itemCode模 recNorms
itemCode 模的平方和 是否增量
出参:
保存新文件,格式不变