第五周假期进度报告(8.10 - 8.16)

一、本周做了什么?

本周继续深耕大数据基础,重点巩固Hadoop环境与应用,并迈出Hive实践第一步。学习时间保持稳定。

学习与实操:

学习时长: 维持 日均约2小时。

敲代码: 日均 约1.5小时。核心进展:

Hadoop 伪分布式环境重建与强化: 为了加深理解,主动重建了一次伪分布式环境。这次更注重理解每个配置文件(core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml)中关键参数的含义(如fs.defaultFS, dfs.replication, mapreduce.framework.name),减少了配置错误。重点练习了 **HDFS 命令行操作 (hdfs dfs) **:

熟练进行文件/目录管理:mkdir, ls, put (上传本地文件), get (下载到本地), cp, mv, rm。

查看文件内容:cat, tail。

管理权限与所有权:chmod, chown (解决了上周遗留的权限问题)。

检查HDFS状态:dfsadmin -report (查看DataNode状态、空间使用)。

Hive 入门与实践:

概念学习: 理解 Hive 作为 数据仓库工具 的定位,它将 SQL 查询转换为 MapReduce/Tez/Spark 作业在 Hadoop 上执行。核心概念包括:元数据存储(Metastore,通常用MySQL/PostgreSQL/Derby)、表定义(内部表 vs 外部表)、分区与分桶。

环境安装与配置: 在现有 Hadoop 伪分布式集群上,成功 安装并配置了 Hive。关键步骤:配置 hive-site.xml (设置 JDBC 连接 Metastore、Hive 数据仓库路径 hive.metastore.warehouse.dir),启动 Metastore 服务 (hive --service metastore &),验证 Hive CLI (hive) 可连接。

基础 DDL/DML 操作: 在 Hive CLI 中实践了:

数据库操作:CREATE DATABASE, USE DATABASE, SHOW DATABASES。

表操作:CREATE TABLE (定义字段、分区),SHOW TABLES, DESCRIBE FORMATTED table_name (查看表详细元信息)。

数据加载:使用 LOAD DATA LOCAL INPATH '/local/path' [OVERWRITE] INTO TABLE table_name 将本地测试数据文件加载到 Hive 表。成功执行了简单的 SELECT 查询。

解决问题: 日均耗时 约1小时。主要挑战:

Hive Metastore 配置与启动: JDBC 连接串配置错误、Metastore 数据库(如 Derby)初始化或连接问题导致服务启动失败。

Hive 表数据加载路径问题: LOAD DATA 时混淆 LOCAL(本地文件系统)与非 LOCAL(HDFS)路径导致文件找不到。

Hive SQL 语法细微差别: 与标准 SQL 的差异(如 INSERT INTO 使用方式不同)导致执行报错。

重建 Hadoop 环境时,hdfs namenode -format 的注意事项(确保所有服务停止、数据目录清空) 因疏忽导致问题。

辅导任务: 持续进行 约3个下午 的数学物理辅导,进入真题模拟阶段。

二、下周计划?

目标深化 Hive 应用,初步探索 MapReduce 编程。

学习/编码: 保持 日均2小时,确保 1小时以上 实践。

Hive 进阶:

学习 分区表 的创建与管理,理解其提升查询效率的原理。

实践更复杂的 HiveQL 查询:聚合函数 (COUNT, SUM, AVG, MAX, MIN)、GROUP BY, JOIN (内连接、左连接)。

了解 Hive 内部表与外部表 的区别及应用场景。

MapReduce 初探:

学习 MapReduce 编程模型 的核心思想(Map 和 Reduce 阶段,Shuffle & Sort)。

尝试 使用 Java 编写一个简单的 MapReduce 程序(如:统计文本中每个单词的长度分布),打包 (jar) 并提交到 Hadoop 集群运行。

理解 YARN: 通过运行 MapReduce 作业,观察 YARN Web UI (ResourceManager Web UI),理解作业执行流程、资源分配和状态监控。

辅导: 预计继续 2-3个下午。

三、本周遇到的问题?

环境配置问题重现: 重建 Hadoop 环境和配置 Hive Metastore 时,环境变量、路径、端口、配置文件格式等细节问题再次成为主要障碍,耗费较多调试时间,反映出对配置项的理解仍需加强。

Metastore 概念抽象: 对 Hive Metastore 的作用(存储表结构等元数据)及其与 HiveServer、实际数据存储(HDFS)的关系 理解不够直观,初期配置时易混淆。

路径混淆陷阱: Hive 中 LOAD DATA 命令的 LOCAL 关键字区分本地文件系统和 HDFS 路径,容易疏忽导致 FileNotFound 错误。需要时刻保持清晰。

Hive SQL 兼容性困扰: HiveQL 与标准 SQL 的差异(如 DML 操作限制、数据类型、函数名) 导致编写查询时需要额外注意,有时需查阅 Hive 特定文档。

学习资源版本差异: 不同教程使用的 Hadoop/Hive 版本不同,配置文件参数名称、默认值或服务启动方式可能存在差异,需要根据自己环境灵活调整,增加了学习成本。

总结: 第五周聚焦 Hadoop 环境巩固与 Hive 入门。核心体会:熟练操作 HDFS 是基石;Hive 极大简化了 Hadoop 上的数据分析,但 Metastore 和配置是入门关键一步;环境细节的熟练掌握只能通过反复实践获得。下周将深入 Hive 查询与分区,并挑战 MapReduce 编程,从 SQL 层面向底层计算模型迈进。稳扎稳打!

posted @ 2025-08-16 21:41  最后的沙丘  阅读(7)  评论(0)    收藏  举报