Hadoop之HDFS 学习笔记
建立开发环境 熟悉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:存储和管理文件块
实操建议
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2026年06月08日 21时07分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
rabbitmq逻辑与开发
2023-03-01
php实现根据身份证获取年龄
2023-03-01
PHP实现的MongoDB数据增删改查
2023-03-01
PHP实现的SSO单点登录系统,拿走就用吧
2023-03-01
php实现短信验证功能
2023-03-01
php实现逆转数组
2023-03-01
PHP实现通过geoip获取IP地理信息
2023-03-01
PHP实现页面静态化、纯静态化及伪静态化
2023-03-01
php容许ajax跨域,PHP设置允许ajax跨域请求的两种常见方法
2023-03-01
RabbitMQ进程结构分析与性能调优
2023-03-01
PHP对接百度地图
2023-03-01
PHP对表单提交特殊字符的过滤和处理
2023-03-01
php对象引用和析构函数的关系
2023-03-01
RabbitMQ HTTP 认证后端项目常见问题解决方案
2023-03-01
PHP将图片转换成base64格式(优缺点)
2023-03-01
php将多个值的数组去除重复元素
2023-03-01
php局域网上传文件_PHP如何通过CURL上传文件
2023-03-01
PHP工具插件大全
2023-03-01
php布尔值的++
2023-03-01