8/1

我从HDFS的存储层跨入到计算层,全面展开了Yarn和MapReduce的学习与实践。Yarn方面,我掌握了ResourceManager、NodeManager和ApplicationMaster三大组件的协作流程,理解了Container的申请与释放机制,并实际配置了基于Capacity Scheduler的资源队列,将内存和CPU核心数按比例分配给不同用户组。MapReduce这块我投入了较大精力,除了回顾WordCount的标准写法,我重点攻克了自定义键值对和二次排序的案例,通过编写一个气象数据处理程序,实现了按照温度降序排列的同时保持年份分组,这个过程中深刻体会了Shuffle阶段的Sort和Merge对性能的影响。我还尝试在Map端加入了Combiner来减少网络传输量,但在求和场景下因未考虑平均值计算而出现过结果偏差,调整为仅对Sum操作启用Combiner后恢复正常。Python方面我启动了热词采集的前期工作,搭建了基本的爬虫框架并加入了User-Agent轮换和请求延时策略以规避反爬。汇总本周投入,总学习时长约16小时,Java MR和Python代码编写占8小时,解决类加载冲突、内存溢出和Yarn队列资源抢占等问题耗时3小时,特别是调整yarn.scheduler.capacity.maximum-am-resource-percent参数后才让任务稳定运行。目前尚存的疑问是MR的Partitioner如何根据业务逻辑自定义数据分区,以及Python爬虫遇到动态加载的内容该如何处理,下周我计划引入Oozie来串联MR和Shell任务形成工作流,同时开始接触Hive的表映射操作,并将爬取到的首批数据导入Hive进行初步探查,为热词分类项目积累更多原始素材。

posted @ 2026-08-20 19:58  hhxyb  阅读(2)  评论(0)    收藏  举报