邢远鑫2025年秋季学期第六周周计划及第五周周总结 #21

Merged
hnu202326010131 merged 2 commits from xingyuanxin_branch into develop 3 months ago

@ -0,0 +1,184 @@
# 邢远鑫第5周个人工作总结
## 基本信息
- **姓名**: 邢远鑫
- **总结周期**: 第5周2025-10-19 至 2025-10-25
- **项目**: 大模型数据平台故障检测项目
- **总结时间**: 2025-10-26
## 本周工作完成情况
### 完成情况统计表
| 任务项目 | 计划目标 | 实际完成 | 完成状态 | 完成度 |
|----------|----------|----------|----------|--------|
| Hadoop集群稳定性优化 | 解决内存不足问题 | 已完成 | ✅ 已完成 | 100% |
| HDFS基础操作实践 | 掌握常用命令 | 已完成 | ✅ 已完成 | 95% |
| MapReduce应用实践 | 运行WordCount示例 | 已完成 | ✅ 已完成 | 90% |
| YARN调度机制学习 | 深入理解调度原理 | 基本完成 | ⚠️ 部分完成 | 80% |
| 下周文档准备 | 制定文档大纲 | 已完成 | ✅ 已完成 | 100% |
**个人整体完成度93%**
## 具体完成任务
### 1. Hadoop集群稳定性优化周一
- **完成情况**: 成功解决了1G内存环境下的Hadoop配置问题
- **技术成果**:
- 优化了hadoop-env.sh配置将HADOOP_HEAPSIZE调整为512M
- 优化了yarn-env.sh配置将YARN_HEAPSIZE调整为512M
- 成功上传1G测试文件到HDFS验证了副本数量设置
- 建立了集群运行状态监控机制
- **解决的关键问题**: 彻底解决了NameNode因内存不足导致的崩溃问题
### 2. HDFS基础操作实践周二
- **完成情况**: 熟练掌握了HDFS常用命令操作
- **技术成果**:
- 创建了完整的HDFS命令操作手册包含20+个常用命令
- 成功完成文件上传/下载、目录管理、权限设置等操作
- 进行了集群负载测试,验证了系统在并发操作下的稳定性
- 整理了DataNode连接、权限管理等常见问题的解决方案
### 3. MapReduce应用实践周三
- **完成情况**: 成功运行MapReduce应用并理解执行流程
- **技术成果**:
- 成功运行WordCount示例程序分析了执行结果
- 深入分析了MapReduce作业日志理解了Map和Reduce阶段的执行过程
- 学习了YARN基础概念掌握了ResourceManager和NodeManager的作用
- 记录了作业执行的关键性能指标
### 4. YARN调度机制学习周四-周五)
- **完成情况**: 基本掌握了YARN调度器原理和配置方法
- **技术成果**:
- 完成了FIFO、Fair、Capacity三种调度器的对比分析
- 学习了YARN资源分配和回收机制
- 实践了不同调度器的配置,测试了调度效果
- 制定了下周YARN调度机制原理文档的详细大纲
## 遇到的问题及解决方案
### 主要技术问题
#### 问题1: 内存配置优化后系统启动缓慢
- **问题描述**: 调整内存配置后Hadoop集群启动时间明显延长
- **根本原因**: JVM垃圾回收频率增加启动过程中内存分配不够优化
- **解决方案**:
- 调整了JVM启动参数优化了垃圾回收策略
- 按照服务依赖关系调整了启动顺序
- 增加了启动过程的监控和日志记录
- **解决状态**: ✅ 已解决
- **经验总结**: 在资源受限环境下,需要平衡内存使用和系统性能
#### 问题2: MapReduce作业执行效率较低
- **问题描述**: WordCount作业在小数据集上执行时间过长
- **根本原因**: 默认配置下Map和Reduce任务数量设置不合理
- **解决方案**:
- 调整了mapreduce.job.maps和mapreduce.job.reduces参数
- 优化了输入数据的分片大小
- 调整了任务并发度配置
- **解决状态**: ✅ 已解决
- **经验总结**: MapReduce性能优化需要根据数据特点和集群资源进行调整
#### 问题3: YARN调度器配置理解困难
- **问题描述**: Fair Scheduler和Capacity Scheduler的配置参数复杂
- **根本原因**: 缺乏实际应用场景的理解,理论知识不够深入
- **解决方案**:
- 通过实际配置测试加深理解
- 参考了官方文档和最佳实践案例
- 与团队成员交流讨论,获得了有价值的建议
- **解决状态**: 🔄 持续改进中
- **经验总结**: 复杂技术需要理论学习与实践操作相结合
## 未完成任务及原因分析
### 1. YARN调度机制深度学习完成度80%
- **未完成部分**:
- 高级调度策略的配置和优化
- 多租户环境下的资源隔离机制
- 动态资源调整和弹性伸缩
- **原因分析**:
- 时间分配不够充分,前期问题解决耗时较多
- 技术复杂度超出预期,需要更多实践验证
- 缺乏多节点环境进行复杂场景测试
- **改进措施**: 下周将重点补充这部分内容,为文档撰写做好准备
### 2. 大模型应用场景学习完成度20%
- **未完成部分**:
- 大模型在集群资源管理中的应用
- AI驱动的故障检测机制
- **原因分析**:
- 优先级设置为低,时间主要投入到核心技术学习
- 需要更多背景知识支撑
- **改进措施**: 将在后续周次中逐步补充相关知识
## 学习收获与个人成长
### 技术能力提升
1. **分布式系统理解**: 通过实际部署和配置深入理解了Hadoop生态系统的架构和组件关系
2. **问题解决能力**: 在解决内存配置、性能优化等问题过程中,提升了系统性分析和解决问题的能力
3. **YARN调度机制**: 掌握了资源调度的基本原理,为后续深入学习奠定了基础
4. **实践操作技能**: 熟练掌握了HDFS命令操作和MapReduce应用部署
### 项目管理经验
1. **任务规划**: 学会了根据技术难度和依赖关系合理安排学习进度
2. **时间管理**: 在有限的时间内优先完成核心任务,提高了学习效率
3. **文档记录**: 养成了详细记录学习过程和问题解决方案的习惯
4. **团队协作**: 主动与团队成员交流,分享经验并寻求帮助
### 个人反思与改进
1. **优势表现**:
- 学习能力强,能够快速掌握新技术
- 问题解决思路清晰,善于总结经验
- 执行力好,按计划完成了大部分任务
2. **需要改进的方面**:
- 时间估算需要更加准确,复杂任务预留更多时间
- 理论学习需要与实践更好结合
- 需要提前了解技术难点,做好充分准备
## 下周工作计划
### 主要任务
1. **YARN调度机制原理文档撰写**: 基于本周学习成果,撰写高质量的技术文档
2. **补充未完成的学习内容**: 深入学习高级调度策略和资源隔离机制
3. **团队技术分享**: 准备YARN调度机制的技术分享材料
4. **下阶段学习规划**: 制定后续学习计划,为项目实施做准备
### 具体安排
- **周一-周二**: 完成YARN调度机制原理文档的核心内容撰写
- **周三-周四**: 补充高级特性学习,完善文档技术细节
- **周五**: 文档审核完善,准备团队分享材料
### 质量目标
- 文档内容准确完整,包含核心逻辑和关键参数说明
- 提供实际应用案例和最佳实践经验
- 确保文档对团队成员具有实际指导价值
## 团队协作表现
### 积极贡献
1. **技术交流**: 每日按时在群内同步学习进度,分享技术心得
2. **问题求助**: 遇到技术难点时主动寻求团队帮助,获得了有效支持
3. **经验分享**: 主动分享内存优化和HDFS操作的解决方案
4. **配合协作**: 积极配合沈永佳的配置模板工作,应用标准化配置
### 团队学习
1. 从王祖旺的学习方法中学到了系统性规划的重要性
2. 从邹佳轩的问题解决经验中获得了实用的技术技巧
3. 通过团队讨论加深了对分布式系统的理解
## 下周重点关注
### 技术重点
1. **文档质量**: 确保YARN调度机制文档的技术准确性和实用性
2. **知识深度**: 补充高级调度策略和性能优化相关知识
3. **实践验证**: 通过更多实际操作验证理论学习成果
### 个人发展
1. **技术写作能力**: 通过文档撰写提升技术表达和总结能力
2. **深度学习**: 从广度学习转向深度钻研,提高专业水平
3. **团队贡献**: 通过高质量文档为团队学习提供有价值的参考
---
**总结完成时间**: 2025-10-26
**下周重点任务**: YARN调度机制原理文档撰写
**个人评价**: 本周在Hadoop集群优化和YARN学习方面取得了显著进展为下周的文档撰写工作奠定了坚实基础

@ -0,0 +1,320 @@
# 第一周每天19:00-22:00详细计划
## 周一
### 19:00-20:00项目背景与需求边界理解
1. 阅读《项目核心任务说明文档》中“前端任务5交互式Web应用前端开发”和《用例文档》重点关注运维人员的核心操作场景如集群状态查看、故障处理
2. 梳理登录、集群监控、故障管理、日志分析四大模块的核心功能:
- 登录模块:账号密码验证、异常提示、页面跳转;
- 集群监控模块:节点状态展示(在线/离线、CPU/磁盘使用率趋势图;
- 故障管理模块:故障列表筛选、故障详情查看、修复操作触发;
- 日志分析模块:日志筛选(时间/节点、AI分析提交
3. 用手绘或ProcessOn制作《前端功能模块思维导图》标注每个模块的核心交互逻辑如“集群监控页→点击刷新按钮→获取最新节点数据”
- 交付物:个人版《前端功能模块思维导图》
### 20:00-21:00用例场景拆解聚焦登录
1. 拆解“登录”用例完整交互流程:
- 第一步:运维人员访问登录地址,前端展示账号、密码输入框及“登录”按钮;
- 第二步输入账号如admin、密码如123456@abc点击“登录”按钮
- 第三步前端做表单验证账号非空、密码≥6位验证不通过则提示对应错误
- 第四步:验证通过后,前端携带账号密码调用后端`/api/user/login`接口;
- 第五步接口返回成功→存储Token到localStorage跳转至集群监控页
- 第六步:接口返回失败→根据错误类型提示(如“账号或密码错误”“账号已禁用”);
2. 记录关键交互细节Token有效期8小时过期后前端自动清除Token并跳转登录页密码输入框支持“显示/隐藏”密码功能;
3. 整理文字版《登录用例交互清单》标注每个步骤的前端处理逻辑如“步骤三用Element Plus表单校验规则实现非空校验”
- 交付物:登录用例交互清单(文字版)
### 21:00-22:00技术栈初步认知
1. 浏览Vue 3官方文档“快速上手”章节
- 理解Vue组件的基本结构`<template>`模板、`<script setup>``<style>`
- 掌握`v-bind`(绑定属性)、`v-on`(绑定事件)等基础指令用法;
- 了解响应式数据(`ref`定义基本类型、`reactive`定义对象类型);
2. 打开Element Plus官网“快速开始”页面
- 查看组件引入方式全局引入vs按需引入新手优先全局引入简化操作
- 熟悉Button按钮、Form表单、Table表格组件的基础示例代码
- 记录组件使用步骤如“引入Element Plus样式文件→在组件中使用`<el-button>`标签”);
3. 撰写约500字的《技术栈核心概念笔记》重点标注
- Vue组件创建步骤新建`.vue`文件→编写模板/逻辑/样式→在路由中配置);
- Element组件引入流程安装依赖→在`main.js`中导入并使用);
- 新手易混淆点如Vue 3的`<script setup>`Vue 2
- 交付物技术栈核心概念笔记约500字
## 周二
### 19:00-20:00本地环境搭建Node.js + npm
1. 下载Node.js
- 打开Node.js官网https://nodejs.org/选择LTS版本如v18.17.0根据操作系统Windows/macOS下载对应安装包
- 双击安装包按向导步骤完成安装Windows需勾选“Add to PATH”macOS默认配置
2. 验证安装:
- Windows打开“命令提示符”macOS打开“终端”执行`node -v`若显示“v18.17.0”或对应版本号则Node安装成功
- 执行`npm -v`显示版本号如9.6.7则npm安装成功
3. 配置npm国内镜像
- 执行命令`npm config set registry https://registry.npmmirror.com`,解决后续下载依赖速度慢的问题;
- 执行`npm config get registry`若返回“https://registry.npmmirror.com/”则配置生效。
- 交付物终端显示Node、npm版本号的截图需包含`node -v`和`npm -v`命令及输出结果)
### 20:00-21:00项目初始化Vite + Vue 3
1. 创建Vue项目
- 终端执行命令`npm create vite@latest hadoop-fault-front -- --template vue`
- 按提示操作项目名称默认“hadoop-fault-front”→框架选择“Vue”→变体选择“JavaScript”等待项目骨架生成
2. 安装依赖:
- 执行`cd hadoop-fault-front`,进入项目根目录;
- 执行`npm install`安装项目所需基础依赖耐心等待网络不稳定时可重试直至终端显示“added xxx packages”
3. 启动项目:
- 执行`npm run dev`终端显示“VITE v4.5.0 ready in 300 ms”及访问地址默认`http://localhost:5173`
- 打开浏览器输入访问地址若看到Vue默认页面含“Hello Vue 3 + Vite”文字则项目启动成功。
- 交付物本地成功启动Vue项目的浏览器页面截图需包含地址栏和默认页面内容
### 21:00-22:00目录结构初始化
1. 创建核心目录:
- 打开项目中的`src`文件夹新建5个文件夹
- `api`:用于存放接口封装文件(如用户接口、集群接口);
- `components`:用于存放公共组件(如布局组件、加载组件);
- `views`:用于存放页面组件(如登录页、集群监控页);
- `router`:用于存放路由配置文件;
- `utils`:用于存放工具函数(如请求封装、时间格式化);
2. 创建基础文件:
- 在`router`目录下新建`index.js`文件(后续配置路由规则);
- 在`utils`目录下新建`request.js`文件后续封装Axios请求
3. 验证目录结构:
- 用VS Code打开项目查看`src`目录下是否有上述5个文件夹及2个基础文件
- 截图保存目录结构(需清晰展示`src`下的目录和文件层级)。
- 交付物规范化目录结构的截图需包含VS Code的文件管理器界面
## 周三
### 19:00-20:00工具链配置ESLint
1. 安装ESLint依赖
- 终端进入项目根目录,执行`npm install eslint -D``-D`表示开发环境依赖);
- 等待安装完成终端显示“added xxx packages”则安装成功
2. 初始化ESLint配置
- 执行`npx eslint --init`,按终端提示依次选择:
- 选择“To check syntax and find problems”检查语法和问题
- 选择“Vue.js”项目使用的框架
- 选择“JavaScript modules (import/export)”(项目模块系统);
- 选择“None”不使用TypeScript
- 选择“Node”项目运行环境
- 选择“JavaScript”配置文件格式
- 确认“Would you like to install them now?”→选择“Yes”自动安装所需依赖
3. 验证ESLint生效
- 在`src`目录下新建`test.js`文件,写入错误代码:`const a = 1; a = 2;`const声明的变量不可修改
- 终端执行`npx eslint src`,若显示“'a' is assigned a value but never used”“Assignment to constant variable”等报错信息则ESLint配置生效。
- 交付物ESLint初始化成功的终端报错截图需包含`npx eslint src`命令及报错结果)
### 20:00-21:00工具链配置Prettier
1. 安装Prettier及集成依赖
- 终端执行命令`npm install prettier eslint-config-prettier eslint-plugin-prettier -D`
- 等待安装完成确保无“error”提示
2. 配置ESLint与Prettier兼容
- 打开项目根目录的`.eslintrc.cjs`文件,找到`extends`数组,添加`'plugin:prettier/recommended'`,修改后如下:
```javascript
extends: [
'eslint:recommended',
'plugin:vue/vue3-recommended',
'plugin:prettier/recommended'
]
```
- 保存文件实现ESLint语法校验与Prettier格式美化的规则兼容
3. 配置Prettier格式规则
- 在项目根目录新建`.prettierrc`文件,写入配置:`{ "semi": false, "singleQuote": true }`(表示不加分号、使用单引号);
- 测试自动格式化:在`test.js`中写入`const name = "hadoop"`保存文件后Prettier会自动将双引号改为单引号删除多余分号。
- 交付物:保存代码后自动格式化的效果截图(需对比保存前后的代码差异,如双引号变单引号)
### 21:00-22:00基础组件初探登录页雏形
1. 创建登录页文件:
- 在`views`目录下新建`Login`文件夹,在该文件夹下新建`Index.vue`文件;
2. 引入Element Plus按钮组件
- 打开Element Plus官网“Button组件”页面https://element-plus.org/zh-CN/component/button.html复制“默认按钮”示例代码
```vue
<template>
<el-button type="primary">登录</el-button>
</template>
```
- 将代码粘贴到`Index.vue`的`<template>`标签中补充Vue组件基础结构
```vue
<template>
<div class="login-btn-container">
<el-button type="primary">登录</el-button>
</div>
</template>
<script setup>
// 后续添加逻辑
</script>
<style scoped>
.login-btn-container {
margin: 20px;
}
</style>
```
3. 全局引入Element Plus新手简化操作
- 打开`src/main.js`文件添加Element Plus引入代码
```javascript
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
createApp(App).use(ElementPlus).mount('#app')
```
4. 验证登录页雏形:
- 终端执行`npm run dev`,启动项目;
- 打开浏览器访问`http://localhost:5173`,修改`App.vue`的`<template>`为`<Login />`(需先在`App.vue`中导入`import Login from './views/Login/Index.vue'`
- 确认页面显示“登录”按钮,点击按钮无报错(控制台无红色错误信息)。
- 交付物:登录页显示可点击“登录”按钮的浏览器页面截图(需包含按钮和控制台无报错的界面)
## 周四
### 19:00-20:00跨域与环境变量配置
1. 配置跨域代理:
- 打开项目根目录的`vite.config.js`文件,在`defineConfig`函数的`server`选项中添加跨域代理配置:
```javascript
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
server: {
proxy: {
'/api': {
target: 'http://localhost:8000', // 后端开发环境接口地址(与后端确认)
changeOrigin: true, // 允许跨域(模拟请求来源为后端地址)
rewrite: (path) => path.replace(/^\/api/, '') // 移除请求路径中的“/api”前缀若后端接口无该前缀
}
}
}
})
```
2. 配置环境变量:
- 在项目根目录新建`.env.development`文件(开发环境专用配置),添加接口基础地址:
```env
# 开发环境接口基础地址(与跨域代理的“/api”对应
VITE_API_BASE_URL = '/api'
```
- 注意环境变量需以“VITE_”开头否则Vite无法识别
3. 验证配置:
- 保存`vite.config.js`和`.env.development`文件;
- 终端执行`npm run dev`重启项目确保启动无报错终端无“error”提示
- 交付物:`vite.config.js`和`.env.development`文件的代码截图(需清晰展示配置内容)
### 20:00-21:00接口请求封装Axios
1. 安装Axios依赖
- 终端执行`npm install axios`安装用于发送HTTP请求的Axios库
- 等待安装完成终端显示“added axios@xxx”则成功
2. 封装Axios实例
- 打开`src/utils/request.js`文件,写入封装代码:
```javascript
// 导入Axios
import axios from 'axios'
// 创建Axios实例
const request = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL, // 从环境变量获取接口基础地址
timeout: 30000 // 请求超时时间30秒适配AI分析等耗时接口
})
// 请求拦截器添加Token后续登录后使用
request.interceptors.request.use(
(config) => {
// 从localStorage获取Token若存在则添加到请求头
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
},
(error) => {
// 请求错误时的处理(如网络错误)
console.error('请求拦截器错误:', error)
return Promise.reject(error)
}
)
// 响应拦截器:统一处理错误
request.interceptors.response.use(
(response) => {
// 直接返回响应体(简化后续调用)
return response.data
},
(error) => {
// 处理常见错误如401 Token过期
if (error.response?.status === 401) {
// Token过期清除Token并跳转登录页后续需配合路由实现
localStorage.removeItem('token')
window.location.href = '/login'
}
console.error('响应拦截器错误:', error)
return Promise.reject(error)
}
)
// 导出封装后的实例
export default request
```
3. 验证封装:
- 在`src/api`目录下新建`user.js`文件,导入`request`实例:
```javascript
import request from '@/utils/request'
// 封装登录接口(后续联调使用)
export const login = (data) => {
return request({
url: '/user/login',
method: 'post',
data // 账号密码数据({ username: '', password: '' }
})
}
```
- 保存文件确保无语法错误VS Code无红色波浪线
- 交付物:`utils/request.js`和`api/user.js`文件的代码截图(需清晰展示封装逻辑)
### 21:00-22:00需求与技术方案整合
1. 整理本周关键成果:
- 需求层面:前端功能模块思维导图、登录用例交互清单;
- 技术层面本地环境Node.js + Vue 3、工具链ESLint + Prettier、基础配置跨域、Axios封装
- 组件层面登录页雏形含Element Plus按钮、规范化目录结构
2. 撰写《前端第一周进展总结》Markdown格式
- 标题前端第一周进展总结Hadoop故障检测项目
- 内容分三部分:
1. 已完成工作:按“需求分析→环境搭建→配置开发→组件雏形”罗列,附关键交付物说明;
2. 遇到的问题记录新手易踩坑点如Node安装未配置PATH、ESLint初始化选项选错及解决方法
3. 下周计划方向:完成登录页表单开发、配置路由、联调登录接口、启动集群监控页开发;
3. 优化总结文档:
- 用列表清晰展示内容,关键步骤附简单说明(如“跨域配置:解决开发环境调用后端接口的跨域问题”);
- 确保文档逻辑连贯,便于项目组同步进度。
- 交付物《前端第一周进展总结》Markdown格式可提供文字内容或文件截图
## 周五
### 19:00-20:30周任务复盘与调整
1. 复盘本周任务完成情况:
- 已完成需求分析思维导图、用例清单、环境搭建Node.js、Vue项目、工具链配置ESLint、Prettier、基础配置跨域、Axios封装、登录页雏形
- 待优化登录页未实现表单仅按钮、Axios拦截器未配合路由跳转、集群监控页未启动
- 问题记录如“ESLint初始化时选错模块系统导致配置报错重新执行`npx eslint --init`解决”;
2. 调整下周具体任务(聚焦核心优先级):
- 周一完成登录页表单开发Element Plus Form组件、配置Vue Router路由
- 周二:联调登录接口(调用`api/user.js`的`login`函数、实现Token存储与页面跳转
- 周三启动集群监控页开发节点列表静态渲染、ECharts初始化
- 周四:封装集群状态接口、实现集群监控页数据加载;
- 周五:优化登录页交互(如加载动画、错误提示)、复盘下周任务;
3. 输出《前端第二周任务计划》(文字版):
- 按天划分任务每个任务明确“核心目标”和“关键步骤”如“周一核心目标登录页表单开发关键步骤引入Element Form组件→编写校验规则→绑定提交事件”
- 交付物:《前端第二周任务计划》(文字版,需明确每天核心目标与关键步骤)
### 20:30-22:00新手学习加餐Vue基础强化
1. 学习Vue 3组件通信基础
- 浏览Vue 3官方文档“组件基础-Prop传递数据”章节
- 理解Prop的作用父组件向子组件传递数据
- 掌握Prop的定义方式如`const props = defineProps({ name: String })`
- 记录示例代码(父组件通过`<Child name="hadoop" />`传值,子组件用`{{ name }}`渲染);
2. 学习Vue Router基础
- 浏览Vue Router官网“快速开始”章节https://router.vuejs.org/zh/guide/
- 理解路由的作用页面跳转与URL映射
- 掌握路由安装(`npm install vue-router@4`)与基础配置(`router/index.js`定义路由规则);
- 记录示例代码(配置“登录页”路由:`{ path: '/login', component: () => import('@/views/Login/Index.vue') }`
3. 整理学习笔记:
- 撰写约300字的《Vue基础强化笔记》重点标注
- 组件Prop传递的注意事项Prop只读子组件不可修改父组件数据
- Vue Router的核心概念`router-link`跳转、`router-view`渲染组件);
- 下周学习应用场景如用Vue Router实现登录页与集群监控页的跳转
- 交付物《Vue基础强化笔记》约300字文字版或截图
Loading…
Cancel
Save