1. 场景:
现在人产生数据越来越快,机器则更快,所以需要另外的一种处理数据的方法。
硬盘容量增加,但是性能没跟上,解决办法是将数据分到多块硬盘,然后同时读取。问题:
硬件问题 -- 复制数据 解决(RAID) 分析需要从不同的硬盘读取的数据: MapReduceHadoop:
1) 可靠的共享存储(分布式存储) 2) 抽象的分析接口(分布式分析)
2. 大数据
-- 可以理解为不能使用一台机器处理的数据大数据的核心是样本 = 总体
特性: 大量性 快速性 多样性 易变性 准确性 复杂性
关键技术:
1) 数据分布在多台机器 -- 可靠性: 每个数据块都复制到多个节点 性能: 多个节点同时处理数据 2) 计算随数据走 网络IO速度<<本地磁盘速度,大数据系统会尽量地将任务分配到离数据最近的机器上运行 (程序运行时,将程序及其依赖包都复制到数据所在的机器运行) 代码向数据迁移,避免大规模数据时,造成大量数据迁移的情况,尽量让一段数据的计算发生在同一台机器上 3) 串行IO取代随机IO 传输时间<<寻道时间,一般数据写入后不再修改** 大数据主要解决的是数据比较多,所以存放到多台机器上,那么需要关注数据存储的问题,以及数据的安全保障,还有数据的计算问题,计算的性能;
3. Hadoop
Hadoop高容错、高可靠性、高扩展性,特别适合写一次,读多次的场景。
适合:
大规模数据 流式数据(写一次,读多次) 商用硬件(一般硬件)不适合:
低延迟的数据访问 大量的小文件 频繁修改文件(基本就是写1次)** 4. Hadoop架构
HDFS: 分布式文件存储
YARN:分布式资源管理 MapReduce:分布式计算 Others:利用YARN的资源管理功能实现其他的数据处理方式内部各个节点基本都是采用Master-Woker架构