Hadoop之HDFS 学习笔记
发布日期:2021-04-30 21:09:21 浏览次数:77 分类:精选文章

本文共 1530 字,大约阅读时间需要 5 分钟。

Hadoop学习笔记

A. Hadoop基础学习

1. 概况

Hadoop是一个分布式文件系统,主要用于存储和管理海量数据。其核心组件包括HDFS(分布式文件系统)和MapReduce(分布式计算框架)。开发环境可以是Windows、Linux或macOS,推荐使用Java和Python进行编程。

2. 学习目标

  • 理解分布式文件系统的工作原理
  • 熟悉HDFS的基本命令和操作
  • 掌握HDFS编程
  • 理解NameNode和SecondaryNameNode的交互机制

3. 具体知识点

Hadoop的架构模块包括:

  • HDFS:分布式文件系统,由NameNode和DataNode组成
  • Yarn:资源调度和任务管理平台
  • MapReduce:分布式计算框架

默认块大小在Hadoop 2.x中为256MB,可配置。


B. Hadoop学习笔记

1. Hadoop的发展历史

  • Nutch:最初由Doug Cutting开发,全网爬虫项目
  • MapReduce:由Google开发,用于处理大规模数据
  • Hadoop:2008年由Apache发布,成为开源大数据生态系统
  • 生态圈:衍生出多个工具和框架

2. Hadoop版本介绍

  • Hadoop 1.x:基于MapReduce 1.x
  • Hadoop 2.x:基于MapReduce 2.x(Yarn),更注重资源管理
  • Hadoop 3.x:引入了Ratify,提升集群管理效率

3. Hadoop生产环境版本选择

  • Cloudera Manager:商业化解决方案
  • Ambari:开源资源管理工具
  • 阿里大数据平台腾讯大数据平台:国内常用
  • 自研平台:如大数据平台开发工程师

4. Hadoop架构模块介绍

  • NameNode:管理文件系统元数据
  • DataNode:存储文件块
  • SecondaryNameNode:提供NameNode的容灾备份
  • Yarn:资源调度平台

HDFS的工作原理:

  • 文件块:将文件抽象为块,存储在多个DataNode上
  • 块管理:通过NameNode进行元数据管理
  • 读写机制:支持多线程读写,提升性能

5. HDFS功能详解

  • 分布式文件存储:将数据分布到多个节点
  • 块大小配置:默认256MB,可调整
  • 安全模式:确保数据完整性,防止丢失
  • Shell命令操作
    • hdfs dfs -rm -skipTrash /path:删除文件
    • hdfs dfs -mv /src /dest:文件移动

6. HDFS安全模式

  • 启动时检查块完整性
  • 只读模式修复数据
  • 副本机制确保数据冗余

7. HDFS Java API开发

  • 需要配置开发环境:
    • JDK
    • Maven
    • Idea
    • Hadoop环境变量
  • 使用跨平台工具访问集群

C. 零散知识点

1. 虚拟化

  • 虚拟化技术将物理资源转换为多台虚拟资源,常用于测试和开发

2. 集群时钟同步

  • 通过网络时间或NTP同步
  • 工作中常用NTP服务器

3. 集群操作

  • 数据删除需使用root用户
  • 集群规划需评估需求、申请资源
  • 使用Hadoop命令管理集群

D. 其他备注

  • 环境搭建:需熟悉Linux命令,推荐使用Ubuntu
  • 工具推荐:使用IDEA或IntelliJ IDEA进行开发
  • 学习资源:建议阅读官方文档和实操教程
  • 技术交流:参与开源社区,学习先进经验
  • 实操建议:多练习命令操作,定期检查错误日志

Q&A

  • MapReduce Shuffle失败原因:网络延迟或序列化问题
  • 集群高可用性:支持多个NameNode
  • NameNode和DataNode职责
    • NameNode:处理客户端请求
    • DataNode:存储和管理文件块

实操建议

  • 建立开发环境
  • 熟悉HDFS命令
  • 进行实操练习
  • 解决常见问题
  • 上一篇:面试Java高级开发岗位,只需准备这几点,让面试官折服!
    下一篇:国庆佳节第四天,谈谈我月收入增加 4K 的故事

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2026年06月08日 21时07分05秒