第五周假期进度报告(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 层面向底层计算模型迈进。稳扎稳打!
                    
                
                
            
        
浙公网安备 33010602011771号