本文为学习笔记,会随着学习深入持续更新,仅供参考
一、hadoop是干嘛的
分布式存储、计算、调度的一个解决方案,可以构建大规模服务集群。完成海量数据存储。
二、基本架构、组成模块、实现原理
包括:HDFS组件、MapReduce组件、YARN组件
1、HDFS组件:
适合一次写入多次读出场景,文件经过创建写入就不需要变更。具备高容错性。
HDFS物理上是分块存储的,块大小可以通过参数调整(hdfs-default.xml),2.X及以上版本默认是128M。HDFS的大小设置主要取决于磁盘传输速率,块设置的太大太小都不合适。
这个掉线机制默认是10min+30s,配置文件可修改(hdfs-default.xml)
a) HDFS如何实现数据读写的
b) HDFS如何实现稳定性
Secondary NameNode辅助主节点通过定期合并Edit Logs和FsImage,提高了系统的可靠性和稳定性。每次的检查时间(check point)可以通过配置文件设置(hdfs-default.xml),默认是1h
NameNode和Secondary NameNode之间只相差最近生成的数据,即文件edits_inprogress,如果想查看服务器上数据同步情况,哪个节点同步了什么数据,可以通过查看Fsimage 和 Edits 文件实现,查看步骤参考链接
e) HDFS如何保障数据完整性
通过添加crc校验,原始数据传输的时候通过原始数据+crc校验码发送,接收方会进行数据校验。
2、MapReduce组件:
一个分布式编程框架,适合海量数据计算(TB/PB);不擅长实时计算,不擅长流式计算,不适合循环任务计算。
后续介绍
3、Yarn组件:
调度平台,负责为应用程序提供运算资源
默认是容量调度器,如果并发度要求高选择公平调度器。
重要:[生产环境配置参数链接](yarn-site.xml)(https://www.yuque.com/tmfl/big_data/hnmlg0)
三、常用api
[linux服务器上HDFS常用命令]
(https://www.jianshu.com/p/3495e1f203bb)
四、在springboot中应用
HDFS的API操作(通过springboot实现)