每周总结07
学习时间7小时 代码时间6小时
本周完成的工作
本周在系统开发方面完成了两个独立的数据分析项目,同时在课程学习上继续推进了Hive的深入学习。
第一个项目是北京信件收集与分析。我首先阅读并梳理了五份项目文档,理清了整体需求。原始文档中提供的采集链接已经失效,我改用北京市政务互动页面重新实现了信件采集功能,成功绕开了链接问题。数据清洗阶段,我在CentOS 7加Hadoop 3.3.4的虚拟机环境中运行MapReduce任务,最终清洗出212条有效数据,九个字段的校验全部通过,异常行数为零。随后使用Hive建立了edu3数据库,完成了离线统计分析。分析结果通过Sqoop导入Windows本机的MySQL数据库,并在此基础上开发了JavaWeb加ECharts的可视化网页,以图表形式展示分析结果。后续还将原始数据文件导入MySQL,网页增加了信件详情查看等常用功能,使系统从单纯的可视化展示升级为可以实际查询原始记录的综合平台。
第二个项目是信息领域热词分析。根据PDF要求创建了热词分析项目,搭建了网页工作台,支持从工信部、网信办、中国信通院、央视数智、36氪等多个来源自动采集文章,目前已采集过三十篇原始文章。在虚拟机Hadoop中执行MapReduce清洗,曾得到三十篇输入、二十八篇有效输出。在清洗过程中改进了Mapper逻辑,能够提取正文容器并过滤导航、页脚、版权、备案号、播放器等网页噪声。系统功能包括热词解释、百科链接、引用文章目录、热词云、关系图和Word报告导出。还增加了历史分析快照功能,旧记录可以完整恢复热词图、解释、关系图和引用文章,并导出对应报告。二次热词清洗过滤了国家地区名称、新闻模板词、公文常用词和播放器词汇,当前筛选出的候选热词包括人工智能、网络安全、信息化、信息处理、制造业、数字化、互联网等。网页还增加了数据清洗与导入步骤面板,用户可以复制命令或下载完整命令,并填写自己的实际路径。
课程学习方面,本周完成了Hive第五章全部内容,涵盖数据库操作语法、建表语法与数据类型、内部表与外部表操作、数据导入导出、分区表、分桶表、修改表操作、复杂类型array、map和struct、基本查询、RLIKE正则匹配、UNION联合查询、数据抽样、虚拟列以及函数的使用。
遇到的问题及解决
两个项目过程中遇到了多个问题。北京信件项目中,原始采集链接失效,通过改用政务互动页面解决。Hadoop、Hive、Sqoop未配置到系统路径导致命令找不到,需要在执行时使用完整路径或补充环境变量。CentOS 7默认只有Python 2.7,部分脚本需要调整兼容性。HDFS路径不能用Linux的cd命令操作,需要用hdfs dfs命令访问。MySQL导入数据时Windows路径反斜杠转义出现问题,需要调整转义方式。DataGrip看不到Hive库,原因是连接的Hive服务、元数据配置或数据库环境不一致,需统一配置。虚拟机访问Windows MySQL必须使用VMware网卡IP而非回环地址。
热词分析项目中,原始网页混入大量噪声,通过改进Mapper的正文提取逻辑解决。初始分词把发展、会议、国家等通用词误判为热词,通过二次清洗过滤解决。新旧批次复用同一HDFS输出路径会覆盖旧数据,需要为每个批次设置独立的输出目录。Hive和Sqoop脚本最初使用固定目录和覆盖写入方式,不利于保存多个批次,已调整为可配置的批次路径。网页历史记录最初只有摘要无法完整恢复旧图表,现已支持完整恢复。恢复历史记录后Word导出仍导出最新数据,已修复为导出当前恢复的记录。
下周计划
下周首先启动热词网页服务,确认路径填写面板和命令下载功能显示正常。然后新建一个批次采集新文章,使用不同的HDFS基础路径执行清洗以避免覆盖旧数据。用Sqoop将Hive分析结果导入MySQL,并以MySQL模式启动网页展示最新文章。同时建议为MySQL表增加批次标识字段,使数据库也能永久区分每次新旧数据,而不是只保留最新一批。北京信件项目方面,计划进一步完善网页的查询和展示功能,优化用户交互体验。课程学习方面继续推进Hive后续章节和实战练习。

浙公网安备 33010602011771号