Hadoop- 用于大数据的分布式存储及处理计算平台
- 开源
- java语言
- 低成本
Hadoop架构
- Hadoop Common Package
- 提供系统交互及支撑
- Hadoop是一个软件
- Hadoop Distributed File System(HDFS)
- 提供分布式文件管理能力
- 实现文件分块存储
- 在Hadoop中 文件是拆分成一小块一小块分布在计算机集群上面,每一个文件块都有三个备份,就算一台计算机宕机了,也不会造成数据的丢失
- 可以加快文件的存储
- Hadoop YARN
- 提供任务调度和集群资源管理
- 提供cpu和内存资源管理
- MapReduce Engine
- 提供计算机的分布式并行执行功能
- 实现计算机任务的分开运行
- Map,计算机集群上面每一台计算机都有一个类似Map的程序,将自己计算机上面的数据进行分组缓存,然后根据一定的规则,发送到其他的机器上面,这样每一台计算机得到的数据就是分组过后很容易处理的数据
- Reduce就是将分组过后的数据进行并行处理
- 我理解的是,Map是处理数据,Reduce是统计数据,例如将一个90MB的文本文件分开储存到3台计算机上面,这样每一台计算机存储30MB的文本文件,文本文件中有各种单词数字符号信息,现在每台机子上面的Map程序处理自己的30MB数据,将数据分为,单词,符号,数字。之后将处理过后的数据,单词就集中发到第一台计算机上面由第一台计算机的Reduce程序处理,符号就发到第二台计算机由第二台计算机的Reduce程序进行加工处理,以此类推,最后将统计信息集中起来。
- Hive
- 数据仓库工具
- 可以将SQL语句转换为MapReduce任务运行,十分适合数据仓库
- 以行为基本单位,效率不是很高
- Hbase
- 分布式数据库
- 列数据库
- Mahout
- 并行机器学习
- 分类,聚类,协同过滤等等
- 操作简单
- Spark
- 内存版的MapReduce
- 更灵活高效的编程模型