持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天 Hadoop-开源分布式计算平台,可以利用它组织计算机资源,从而搭建自己的分布式计算平台,并且可以充分利用集群的计算和存储能力,完成海量数据的处理。
高可靠性 高扩展性 高效性 高容错性
- 基础部分
- Hadoop Common,它是支撑Hadoop的公共部分,包括文件系统、远程过程调用RPC和序列化函数库等
- HDFS 它是可以提供高吞吐量的可靠分布式文件系统,是google GFS的开源实现
- MapReduce 它是大型分布式数据处理模型
- 配套部分
- HBase 它是支持结构化数据存储的分布式数据库
- Hive 它是提供数据摘要和查询功能的数据仓库
- Pig它是在MapReduce上构建的一种叫本事开发方式,大大简化了MapReduce的开发工作
- Cassandra 它是由Facebook支持的开源、高可扩展分布式数据库,是Amazon库层架构Kynamo的全分布和Google BigTable的列式数据存储模型的有机结合
- Chukwa 它是用来管理大型分布式系统的数据采集系统
- Zookeeper 它用于解决分布式系统中一致性问题
HDFS-分布式存储
- 采用了主从结构模型,允许以文件的形式存储数据,
- NameNode主服务器 管理文件系统的命名空间和客户端对文件的访问操作
- DataNode集群 管理存储的数据
MapReduce-并行编程模式
- 任务的分发、跟踪、执行,并收集结果
- 原理:利用一个输入的key/value对集合产生一个输出的key/value对集合。Map:用户定义的Map函数接受一个输入key/value然后产生一个中间key/value对的集合。MapReduce:把所有具有相同key值的value集合在一起,然后传递给Reduce函数。Reduce:用户定义的Reduce函数接受key和相关的value集合,Reduce函数合并这些value值,形成一个较小的value集合。
并行计算的原理:
-
数据的分布存储
-
分布式并行计算
-
本地计算“移动计算比移动数据更经济”
-
任务粒度(128MB)
-
数据分割(哈希)
-
数据合并combine
-
reduce任务
-
任务管道