Hadoop中的一些基本概念
对多个硬盘中的数据进行IO操作:
- 需要解决硬盘故障问题(避免数据丢失)
- 大多数分析任务需要结合多台机器共同更使用(MapReduce提出编程模型:该模型抽象出这些硬盘的IO问题并将其转换为对一个数据集(由键值对构成)的计算)
Hadoop本身已经超出了批处理本身,而形成了一个庞大的生态。
- MapReduce更适合没有用户在现场等待查询结果的离线使用场景(查询需要等待的时间长)
- HBase在线访问组件,使用HDFS做底层存储的键值存储模型。
- YARN集群资源管理系统,允许任何一个分布式程序基于Hadoop集群的数据而运行
- 传统关系型数据库更适合小规模数据的低延迟检索和快速更新。MapReduce则更适合一次大量IO的场景。
能与Hadoop协同工作的处理模式:
- Interactive SQL(交互式SQL)
- Iterative processing(迭代处理)
- Stream processing(流处理)
- Search(搜索)
网格计算:
网格计算即为分布式计算,研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些把这些部分分配给堕胎计算机进行处理,最后将这些计算结果综合起来得到最终结果。
MPI(Message Passing Interface消息传递接口):
MPI是标准化的、面向主流并行计算机、可移植的消息传递接口标准。其中一个主要的实现版本为MPICH
主要理念:
- 机器由若干可以相互传递消息的进程能成构成
- 每个进程拥有私有的存储空间,进程间无共享存储
- 进程间的消息传递采用显式的发送/接受机制完成
- 程序的运行模式主要由松散同步和完全异步两种
- 程序往往采用SPMD(single program multiple data)方式编写。