【基于Spark的电影推荐系统】环境准备

news2024/9/24 11:24:30

概览

本科毕设做过电影推荐系统,但当时的推荐算法只有一个,现在已经忘记大部分了,当时也没有记录,因此写这个博客重新来记录一下。此外,技术栈由于快秋招原因来不及做过多的部分,因此只实现简单的功能,在此不做搜索引擎部分。

技术栈:Vue+Element-ui、SpringBoot、Spark、Redis、Mongodb、Flume、Kafka、Azkaban

1 云服务器选择

  • 由于电脑比较老,开太多应用实在太卡(之前做毕设的体会),因此选用了云服务器。
  • 之前使用过云服务器,但由于大数据需要的内存比较大些,实在没钱。发现轻量服务器貌似便宜一点,因此使用腾讯的轻量服务器4cpu+16GB来开发。

2 大数据环境搭建

  • 时间原因+服务器配置原因,在此我只用买了一台来进行开发,这是出于开发的简单,旦可能这样做一台机器上压力比较大。
  • 由于配置实在太费时间(之前每次配置都心累),因此直接使用docker拉取镜像
  • 操作系统:centos7.6

2.1 docker安装

  • 参考博客docker安装

2.2 使用docker-compose快速部署spark环境

  1. 安装docker-compose见docker-compose安装。
  • 我使用curl方式安装,若遇见curl: (35) Encountered end of file,则原因可能是云服务器没有开放443端口(解决方案:443端口开放)
  1. 快速部署Spark环境
    (1)新建test文件夹并进入,依次执行下列命令
wget https://raw.githubusercontent.com/zq2599/blog_demos/master/sparkdockercomposefiles/docker-compose.yml
wget https://raw.githubusercontent.com/zq2599/blog_demos/master/sparkdockercomposefiles/hadoop.env 
# 在test文件下执行该命令,该命令需要等待一会
docker-compose up -d

(2)使用docker-compose ps查看当前的镜像

image.png

(3)使用docker-compose ps查看当前运行的情况

  • 这里我出现两个exit,查询日志(docker-compose logs)检查错误原因
# 发现错误
could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and no node(s) are excluded in this operation.
  • 可能是因为端口原因,设置云服务器全部端口开放(有风险但先暂时这样做),重新启动docker-compose up -d,成功
    image.png

(4)查看HDFS(xxxx:50070)

image.png
(5)查看Spark界面(xxxx:8080)

image.png

总结

  • 为了快速回顾之前的项目,因此是怎么简单怎么来,但如果有时间的话,建议用三台机器,也可以考虑CDH搭建。
  • 下一节将介绍数据准备、离线推荐功能开发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/797109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp跨平台项目实战失物招领

失物招领项目虽然是一个小项目,但是内部的功能还是很全的,比如发布消息,包含图片或者是视频,获取数据,包含分页的数据获取,同时该项目也包含了多表关联的业务设计。 学习本项目能获得的经验有,数…

Selenium的学习

介绍下学习selenium的经验。之前有网友要求我给布置作业,那么我整理一下就全部列在这里。每一步给出一个小题目。 selenium是一个比较古老也比较流行的自动化测试库。他的特点是,版本较多,以至于在网上搜到很多教程都是过时的。 一、Seleniu…

lightGBM实例——特征筛选和评分卡模型构建

数据还是采用这个例子里的数据,具体背景也同上。 添模型构建——使用逻辑回归构建模型,lightGBM进行特征筛选 lightGBM模型介绍请看这个链接:集成学习——Boosting算法:Adaboost、GBDT、XGBOOST和lightGBM的简要原理和区别 具体代…

65. 有效数字

题目链接:力扣 解题思路:从前往后挨个进行有效判断,注意其中e或E和小数点只能出现一次,具体算法如下: 初始变量: i 0:遍历指针dotfalse:标记小数点是否已经出现E false&#xff1a…

以智慧监测模式守护燃气安全 ,汉威科技“传感芯”凸显智慧力

城市燃气工程作为城市基建的重要组成部分,与城市居民生活、工业生产紧密相关。提升城市燃气服务质量和安全水平,也一直是政府和民众关注的大事。然而,近年来居民住宅、餐饮等工商业场所燃气事故频发,时刻敲响的警钟也折射出我国在…

浅浅了解下单例模式中的懒汉模式饿汉模式

单例模式 1.什么是设计模式2.什么是单例模式3.常见实现单例模式的两种方式1.饿汉模式(1)特点(2)代码实现(3)线程是否安全 2.懒汉模式(1)特点(2)代码实现(3)线程是否安全(4)如何保证线程安全解决方案:进阶方案 3.对比懒汉模式和饿汉模式1、线程安全2、是否延迟加载3、系统开销4、…

QMainWindow

文章目录 QMainWindow基本元素QMainWindow函数介绍简单的示例效果图 QMainWindow QMainWindow是一个为用户提供主窗口程序 的类,包含一个菜单栏(menu bar)、多个工具栏 (tool bars)、多个锚接部件(dock widgets)、―个 状态栏(status bar )及一个中心部件(central …

【算法提高:动态规划】1.2 最长上升子序列模型(TODO最长公共上升子序列)

文章目录 题目列表1017. 怪盗基德的滑翔翼1014. 登山482. 合唱队形1012. 友好城市(⭐排序后 最长上升子序列模型)1016. 最大上升子序列和1010. 拦截导弹解法1——最长递减子序列 贪心解法2——最长递减子序列 最长递增子序列(⭐贪心结论&am…

K8s集群部署-详细步骤

不够详细,后面有时间再编辑 安装 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 关闭swap, selinux swapoff -a && sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab setenforce 0 && sed -i s/^SELINUX.*/SELINUXdisabled/ /…

Safari 查看 http 请求

文章目录 1、开启 Safari 开发菜单2、显示 JavaScript 控制台 1、开启 Safari 开发菜单 Safari 设置中,打开开发菜单选项 *** 选择完成后,Safari 的目录栏就会出现一个 开发 功能。 2、显示 JavaScript 控制台 开启页面后,在开发中选中 显…

Android 之 动画合集之补间动画

本节引言: 本节带来的是Android三种动画中的第二种——补间动画(Tween),和前面学的帧动画不同,帧动画 是通过连续播放图片来模拟动画效果,而补间动画开发者只需指定动画开始,以及动画结束"关键帧"&#xff0…

提示计算机丢失MSVCP140.dll怎么办?这三个修复方法可解决

最近在使用电脑的过程中,遇到了一个问题,即缺少了MSVCP140.dll文件。这个文件是一个动态链接库文件,常用于Windows操作系统中的应用程序中。由于缺少这个文件,会导致计算机系统无法运行某些软件或游戏。丢失MSVCP140.dll可能是由于…

【技术分享】oracle数据库相关操作

-- 截断表 TRUNCATE TABLE TABLE_NAME;-- 删除表 DROP TABLE TABLE_NAME;-- 查询表 SELECT * FROM TABLE_NAME;-- 添加一条记录 INSERT INTO TABLE_NAME(COLUMN) VALUES(VALUE);-- 删除记录 DELETE FROM TABLE_NAME WHERE COLUMNVALUE;-- 修改记录 UPDATE TABLE_NAME SET…

Android性能优化之Thread native层源码分析(InternalError/Out of memory)

近期处理Bugly上OOM问题,很多发生在Thread创建启动过程,虽然最后分析出是32位4G虚拟内存不足导致,但还是分析下Java层Thread 源码过程,可能会抛出的异常InternalError/Out of memory。 Thread报错堆栈: Java线程创建…

数据库|手把手教你成为 TiDB 的 Contributor

一、背景 最近笔者在 AskTUG 回答问题的时候发现,在 6.5.0 版本出现了几个显示未启动必要组件 NgMonitoring 的问题贴。经过排查发现,是 ngmonitoring.toml 中的配置文件出现了问题。文件中的 endpoints 应该是以逗号分隔的,但是却写成了以空…

JavaWeb 项目实现(二) 注销功能

3.注销功能 接前篇,实现了登录功能之后,现在实现注销功能。 因为我们实现登录就是在Session中记录了用户信息。 所以注销功能,就是在Session中移除用户信息。 代码:删除Session中的用户信息,跳转登录页面 package…

【安全渗透】第一次作业(编码知识总结)

目录 1. ASCII编码 2、Unicode 3、UTF-8 1. ASCII编码 ASCII 是“American Standard Code for Information Interchange”的缩写,翻译过来是“美国信息交换标准代码”。ASCII 的标准版本于 1967 年第一次发布,最后一次更新则是在 1986 年&#xff0c…

QEMU源码全解析13 —— QOM介绍(2)

接前一篇文章:QEMU源码全解析12 —— QOM介绍(1) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社 特此致谢! 本回开始对QOM…

django学习笔记(1)

django创建项目 先创建一个文件夹用来放django的项目,我这里是My_Django_it 之后打开到该文件下,并用下面的指令来创建myDjango1项目 D:\>cd My_Django_itD:\My_Django_it>"D:\zzu_it\Django_learn\Scripts\django-admin.exe" startpr…

记录每日LeetCode 2500.删除每行中的最大值 Java实现

题目描述: 给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。 执行下述操作,直到 grid 变为空矩阵: 从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。 将删除元素中的最大值与答案相加。 …