【基于Spark的电影推荐系统】环境准备
概览
本科毕设做过电影推荐系统,但当时的推荐算法只有一个,现在已经忘记大部分了,当时也没有记录,因此写这个博客重新来记录一下。此外,技术栈由于快秋招原因来不及做过多的部分,因此只实现简单的功能,在此不做搜索引擎部分。
技术栈: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环境
- 安装docker-compose见docker-compose安装。
- 我使用curl方式安装,若遇见
curl: (35) Encountered end of file,则原因可能是云服务器没有开放443端口(解决方案:443端口开放)
- 快速部署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查看当前的镜像

(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,成功

(4)查看HDFS(xxxx:50070)

(5)查看Spark界面(xxxx:8080)

总结
- 为了快速回顾之前的项目,因此是怎么简单怎么来,但如果有时间的话,建议用三台机器,也可以考虑CDH搭建。
- 下一节将介绍数据准备、离线推荐功能开发
相关文章:
【基于Spark的电影推荐系统】环境准备
概览 本科毕设做过电影推荐系统,但当时的推荐算法只有一个,现在已经忘记大部分了,当时也没有记录,因此写这个博客重新来记录一下。此外,技术栈由于快秋招原因来不及做过多的部分,因此只实现简单的功能&…...
团簇大小分布计算方法,fix ave/histo命令详解
LAMMPS是一款广泛应用于分子动力学模拟的强大软件。在模拟过程中,我们经常需要对系统的物理性质进行分析和统计。 fix ave/histo命令则是LAMMPS中一个非常有用的命令,它可以帮助我们对系统进行直方图统计分析。 本文将深入介绍fix ave/histo命令的用法和…...
CAN标准帧和拓展帧
转自:https://www.cnblogs.com/fengliu-/p/9277165.html CAN2.0B标准帧 CAN 标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。 位置 7 6 5 4 3 2 1 0 字节01 FF RTR DLC(数据长度&#…...
android 清除缓存方法
获得应用的存储信息 private void getAppStorageInfo(String packageName){StorageStatsManager storageStatsManager (StorageStatsManager) context.getSystemService(Context.STORAGE_STATS_SERVICE);StorageManager storageManager (StorageManager) context.getSystemS…...
介绍下你们项目中各微服务之间怎么调用的?
各微服务模块之间的数据交互主要通过一些常见的通信机制进行。以下是几种常见的数据交互方式: RESTful API:REST(Representational State Transfer)是一种基于HTTP协议的通信机制,它使用标准的HTTP方法(如…...
MySql提示:The Server Quit Without Updating PID File(…)失败 103.36.167
01问题 可能是 /usr/local/mysql/data/rekfan.pid 文件没有写的权限 。 解决办法 给予权限,执行 1. # chown -R mysql:mysql /var/data 2. #chmod -R 755 / usr/local/mysql/data 然后重新启动mysqld。 43.242.205 02问题 可能进程里已经存在…...
FPGA学习——按键消抖的两种实现方法
文章目录 一、按键消抖简介1.1、为什么要按键消抖 二、C4开发板原理图三、按键消抖源码3.1、方案一(每当检测到下降沿便开始重新计数)3.2、方案二(检测到第一次下降沿后便开始计数) 四、仿真代码及仿真波形图五、拓展:…...
SecureCRT如何将复制的内容粘贴到word中仍然保持原有字体颜色
SecureCRT如何将复制的内容粘贴到word中仍然保持原有字体颜色 QQ 109792317 说明:当SecureCRT加载了配色文件后,输出的关键字会被不同颜色高亮显示,但是如果复制粘贴到word中会发现成了纯文本,字体颜色消失了。 如何保留 &#x…...
微信小程序分享页面代码
在微信小程序中实现分享功能需要以下几个步骤: 1. 在app.json文件中配置分享参数,例如标题、路径等。示例如下: json { "pages": [ "pages/index/index" ], "window": { "navigationBarTit…...
Hadoop 之 Hbase 配置与使用(四)
Hadoop 之 Hbase 配置与使用 一.Hbase 下载1.Hbase 下载 二.Hbase 配置1.单机部署2.伪集群部署(基于单机配置)3.集群部署1.启动 hadoop 集群2.启动 zookeeper 集群3.启动 hbase 集群4.集群启停脚本 三.测试1.Pom 配置2.Yml 配置3.Hbase 配置类4.Hbase 连…...
使用TensorFlow和VGG-19模型实现艺术风格迁移:一步一步打造你的数字艺术世界
在当下的AI领域,神经风格迁移是最富有创新性和艺术性的技术之一。这项技术可以将一种图像的风格迁移至另一种图像,创造出让人眼前一亮的视觉效果。这种转变所展现的技术之美,让我们深感人工智能所带来的可能性。本文将带领大家一步步通过TensorFlow和VGG-19模型实现风格迁移…...
FBX/GLTF在线转换
3Dconvert是一个可以进行3D模型格式转换的在线工具,并支持3D模型在线预览和转换成果下载。网站访问地址:3D模型在线转换。 1、上传3D模型文件 3D模型在线转换工具的使用非常便捷,首先在网站首页选择需要转换的目标格式,网站支持…...
Tensorflow(二)
一、过拟合 过拟合现象:机器对于数据的学习过于自负(想要将误差减到最小)。 解决方法:利用正规化方法 二、卷积神经网络(CNN) 卷积神经网络是近些年来逐渐兴起的人工神经网络,主要用于图像分类、计算机视觉等。 卷积:例如对图片每一小块像素区域的处理ÿ…...
NoSQL之 Redis 部署,配置与优化
文章目录 NoSQL之 Redis配置与优化一.关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别4.非关系型数据库产生背景 二.Redis简介1.了解Redis2.Redis 具有以下几个优点3.Redis为何这么快 三.Redis 安装及应用1.Redis 安装部署2.Redi…...
汽车行业 Y 公司对接斯堪尼亚 SCANIA EDI 项目案例
斯堪尼亚是一家来自瑞典的重型车辆制造公司,成立于1891年,总部位于斯德哥尔摩,主要专注于生产卡车、客车和工业发动机,以及相应的服务与解决方案。斯堪尼亚的产品以其高品质、可靠性和先进技术而闻名。其卡车广泛应用于货运和运输…...
mysql到doris踩坑记录(如果有问题希望大家帮忙指出问题)
1安装mysql(该步骤晚上很多,不做记录) 2安装docker(同上) 3安装并部署doris(下载镜像步骤省略) sudo docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 \-itd starrocks.docker.scarf.sh/starrocks/allin1-ubuntu 官网地址从 Apache Flink 持续导入 Flink-c…...
苹果11手机设置手机跟踪功能
苹果11手机设置手机跟踪功能,就算是手机丢了,也能通过查询手机定位在哪里。 第一步:点击Apple ID进入详情 第二步:点击“查找” 第三步: 第四步: 到了这步,就算是设置成功。 下面需要到官方查询…...
下拉框可筛选可树状多选组件
实际效果图片 父页面 <el-form-item label"转发:" :label-width"formLabelWidth" class"formflex_item"><el-select ref"select" :clearable"true" clear"clearSelect" remove-tag"r…...
【LeetCode】70.爬楼梯
题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2…...
c#中的Math.Ceiling和Math.floor()和Math.Round()
Math.Ceiling(),只要有小数就加1(小数部分不为0) 例如: Math.Ceiling(0.0) -> 0 Math.Ceiling(0.1) -> 1 Math.Ceiling(0.2) -> 1 Math.Ceiling(0.3) -> 1 Math.Ceiling(0.4) -> 1 Math.Ceiling(0.5) -> 1 Math.Ceiling(0.6) -> 1…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
