暑假学习笔记

一、本周学习内容
(一)Hadoop 集群优化与实践
完全分布式模式配置
将 Hadoop 伪分布式模式升级为完全分布式模式,配置了多个 DataNode 节点,实现了数据的分布式存储和计算。
修改了 core-site.xml、hdfs-site.xml 和 mapred-site.xml 配置文件,配置了 HDFS 的 NameNode 和 DataNode,以及 MapReduce 的 JobTracker 和 TaskTracker。
成功启动了完全分布式模式下的 Hadoop 集群,通过 jps 命令验证了所有守护进程的运行状态。
YARN 资源管理器配置
学习了 Hadoop 的资源管理器 YARN,配置和管理 YARN 集群,优化资源分配。
修改了 yarn-site.xml 配置文件,设置了 YARN 的调度器类型(CapacityScheduler),并配置了队列的资源分配策略。
通过 YARN 的 Web 界面监控集群的资源使用情况,确保资源的合理分配和高效利用。
数据清洗和预处理程序
编写了一个基于 Hadoop 的数据清洗和预处理程序,处理实际的数据集。该程序使用 MapReduce 模型,实现了数据的去重、过滤和格式化。
在 Map 任务中,读取原始数据文件,过滤掉无效数据和重复数据,并将清洗后的数据输出到中间文件。
在 Reduce 任务中,对中间文件进行进一步处理,格式化数据并输出到最终结果文件。
(二)Python 项目实践
Web 爬虫项目
完成了一个简单的 Python Web 爬虫项目,使用 requests 和 BeautifulSoup 库爬取网页数据。
编写了一个爬虫脚本,爬取了某新闻网站的新闻标题和链接,并将数据存储到本地的 JSON 文件中。
学习了如何处理网页的动态加载内容,使用 Selenium 库模拟浏览器行为,获取动态加载的数据。
数据可视化
学习了 Python 的数据可视化库 matplotlib 和 seaborn,绘制简单的数据图表。
使用 matplotlib 绘制了柱状图和折线图,展示了新闻网站的新闻数量和发布趋势。
使用 seaborn 绘制了热力图,展示了不同类别新闻的分布情况。
(三)Java Web 项目优化
数据库查询优化
对 Java Web 项目中的数据库查询语句进行了优化,减少了数据库连接的频繁创建和销毁。
使用连接池技术(Apache DBCP)管理数据库连接,提高了数据库访问的效率。
优化了 SQL 查询语句,减少了不必要的全表扫描,提高了查询速度。
用户头像上传功能
添加了用户头像上传功能,支持图片的上传和存储。使用 Apache Commons FileUpload 组件处理文件上传请求。
在 UserServlet 中,添加了文件上传的处理逻辑,将用户头像存储到服务器的指定目录,并将头像路径保存到数据库中。
在用户详情页面(userDetail.jsp)中,动态显示用户头像。
二、下周计划
Hadoop 集群监控与调优
学习 Hadoop 集群的监控工具,如 Ambari 和 Ganglia,配置和使用这些工具监控集群的运行状态。
深入学习 Hadoop 的调优策略,包括 HDFS 的块大小、MapReduce 的任务拆分、YARN 的资源分配等,进一步提升集群的性能。
编写一个基于 Hadoop 的大数据分析程序,如用户行为分析或日志分析,处理实际的大数据集。
Python 数据分析与机器学习
学习 Python 的数据分析库 pandas 和 numpy,进行数据的清洗、处理和分析。
学习 Python 的机器学习库 scikit-learn,实现简单的分类和回归模型。
完成一个基于机器学习的项目,如鸢尾花分类或房价预测,使用 scikit-learn 构建和训练模型。
Java Web 项目功能扩展
在 Java Web 项目中添加用户评论功能,允许用户对新闻或文章发表评论。
实现评论的分页显示和排序功能,优化用户交互体验。
添加用户消息通知功能,通过邮件或站内信通知用户评论回复或系统消息。
三、本周遇到的问题及解决方法
Hadoop 完全分布式模式启动失败
问题描述:在启动完全分布式模式下的 Hadoop 集群时,DataNode 节点无法正常启动,报错提示无法连接到 NameNode。
解决方法:检查 core-site.xml 和 hdfs-site.xml 配置文件,发现是 DataNode 节点的配置文件中 NameNode 的地址和端口设置错误。修改配置文件后,重新启动 DataNode 节点,问题解决。
Web 爬虫反爬虫机制问题
问题描述:在爬取某新闻网站时,发现网站有反爬虫机制,爬虫频繁被封禁。
解决方法:分析网站的反爬虫机制,发现是爬虫的请求频率过高导致被封禁。通过设置合理的请求间隔时间(如每秒 1 次请求),并使用代理 IP 池,解决了反爬虫问题。
用户头像上传路径问题
问题描述:在用户头像上传功能中,上传的头像路径无法正确保存到数据库中,导致头像无法正常显示。
解决方法:检查文件上传的处理逻辑,发现是路径拼接错误。通过正确拼接文件路径,并将路径保存到数据库中,解决了头像显示问题。
四、总结与反思
本周的学习重点在于 Hadoop 集群的优化与实践,以及 Python 项目实践。通过实际操作,我成功将 Hadoop 升级为完全分布式模式,并配置了 YARN 资源管理器,优化了集群的性能。同时,我也完成了 Python Web 爬虫项目,学习了数据可视化库 matplotlib 和 seaborn,并绘制了简单的数据图表。在 Java Web 项目中,我优化了数据库查询语句,添加了用户头像上传功能,提升了项目的用户体验。
在下周的学习中,我将继续深入学习 Hadoop 集群的监控与调优,进一步提升集群的性能。同时,我也会学习 Python 的数据分析和机器学习库,完成一个基于机器学习的项目。通过持续的学习和实践,逐步提升自己的技术能力,为未来的项目开发做好准备。

posted @ 2025-08-23 19:37  头发少的文不识  阅读(13)  评论(0)    收藏  举报