Hadoop Learn Notes
缘由
- 计算对于数据处理的性能的发展跟不上日益增长的数据量
- 由此引出了工业界的用多台机器的并行处理能力去弥补单台机器的处理瓶颈
- Hadoop是利用互联网的多台计算机使用MapReduce(改进的单指令多数据流技术)来进行并行处理计算大量数据
什么是大数据
- 大数据——无法被符合服务等级协议的单台计算机处理或者存储的任何数据集。
- 一个单节点处理大容量的数据光读取就要花费过长时间,假如分配到多个节点,就可以省略很多时间
- 但是通过网络传输数据会更加慢
大数据技术背后的核心思想
- 大数据处理方法的共同特征
- 数据分布到了多个节点(网络IO <<本地IO)
- 计算程序离数据更近(集群上的节点),不是相反
- 数据处理尽量在本地完成
- 使用可顺序读取磁盘IO代替随机读取磁盘IO(数据交换速度<<数据寻道时间)
- 目的都在于使得输入/输出IO并行化,提高数据处理性能
数据分发到多个节点上
- 把数据分布到各个服务器节点的最终目的在于让大量的计算节点同时参与到数据的处理计算过程中来,就算一台能够存的下的数据也会分发到多个节点
- 每个数据块会在多个节点上有多份拷贝,hadoop默认了有三块,增加了系统的容错性,一个结点故障,其他节点还备份有故障结点的数据
- 为达到数据并行处理的目的,多个节点可以同时参与到数据处理过程
- 也不会把所有数据统一放到一个文件服务器去每个结点去读取所需部分,因为本地的数据读取速度高于网络IO速度啊
计算逻辑移动到数据附近
- 大数据的一个观念就是,把数据分布到各个计算节点,程序也要移动到数据附近,那么,程序运行所以来的函数库也要移动到数据处理节点;结点一多,程序维护部署是一个宯的挑战,所以大数据系统可以集中式地部署程序代码,大数据系统后台会在计算任务启动之前把程序移动到各个数据处理结点
计算节点进行本地数据处理
- 大数据模型是一种基于分布式和并行处理的编程模型。
- 数据被分发到各个计算节点,程序运行依赖库也移动到了数据所在结点,计算节点就地计算处理数据的条件完备了。
- 上面也只是个理想状态,大数据系统会把计算任务尽量调度到离数据最近的节点。
- 分布在各个计算几点的计算结果,最终可能会汇聚到一个计算节点,汇集的数据量相对于计算节点本地处理的原始数据来说,就小了很多,减轻网络IO的耗时。
大数据的编程模型
大数据和事务性系统
能够处理多大的数据量
商用示例
hadoop概念
初识hadoop
hadoop系统管理
MapReduce开发基础
MapReduce开发进阶
Hadoop输入输出
测试Hadoop程序
Hadoop监控
使用Hadoop构建数据仓库
使用Pig进行数据处理
HCatalog和企业级Hadoop
使用Hadoop分析日志
使用HBASE构建实时系统
Hadoop与数据科学
Hadoop与云运算
构建YARN应用程序