hadoop学习笔记4:hadoop、spark概念
来源:互联网 发布:胡歌男粉丝知乎 编辑:程序博客网 时间:2024/04/28 05:11
hadoop学习笔记4:hadoop、spark概念
- hadoop学习笔记4hadoopspark概念
- hadoop
- 1HDFS
- 2MapReduce
- 3YARN
- spark
- hadoop
1.hadoop
Hadoop是一种开源的适合大数据的分布式存储和处理的平台。
Hadoop有三种不同的模式操作,分别为单机模式、伪分布模式和完全分布模。
Hadoop的核心是HDFS、Mapreduce和YARN(hadoop2.0以上)
1.1HDFS
主要特点:
保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。
运行在廉价的机器上。适合大数据的处理。HDFS默认会将文件分割成block,64M为1个block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,那内存的负担会很重。
Client:切分文件;访问HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。
NameNode:Master节点,在hadoop1.X中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。是HDFS里面的管理者,发挥者管理、协调、操控的作用
DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。是HDFS的工作者,发挥按着Namenode的命令干活,并且把干活的进展和问题反馈到Namenode的作用。
Secondary NameNode:辅助NameNode,分担其工作量;定期合并fsimage和fsedits,推送给NameNode;紧急情况下,可辅助恢复NameNode,但Secondary NameNode并非NameNode的热备。
1.2MapReduce
MapReduce是一种简化并行 计算的编程模型,思想就是“分而治之”。
(1)Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任 务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。
(2)Reducer负责对map阶段的结果进行汇总。至于需要多少个Reducer,用户可以根据具体问题,通过在mapred-site.xml配置文件里设置参数mapred.reduce.tasks的值,缺省值为1。
- JobTracker:Master节点,只有一个,管理所有作业,作业/任务的监控、错误处理等;将任务分解成一系列任务,并分派给TaskTracker。
- TaskTracker:Slave节点,运行Map Task和Reduce Task;并与JobTracker交互,汇报任务状态。
Map Task:解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘(如果为map-only作业,直接写入HDFS)。
Reducer Task:从Map Task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行。
1.3YARN
YARN总体上采用master/slave架构;YARN将资源管理和处理组件分开,对集群中的资源进行统一管理和调度,大大提高了集群的资源利用率并降低了集群管理成本。YARN作为一个通用数据操作系统,既可以运行像MapReduce、Spark这样的短作业,也可以部署像Web Server、MySQL Server这种长服务,真正实现一个集群多用途。
- ResourceManager:Master节点,ResourceManager(代替集群管理器)负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的Container
NodeManager:Slave节点,( 代替 TaskTracker)
ApplicationMaster 代替一个专用且短暂的 JobTracker
- 一个分布式应用程序代替一个 MapReduce 作业
2.spark
Spark是一个计算框架(内存集群计算),是MapReduce的替代方案,专注于计算,而不承担数据存储功能。
- Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
- Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
- Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行(目前部署Spark的企业,其实都在现有的Hadoop集群中运行Spark)
参考文献:
YARN 简介:http://www.ibm.com/developerworks/cn/data/library/bd-yarn-intro/
一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了
http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html
- hadoop学习笔记4:hadoop、spark概念
- Hadoop概念学习系列之Hadoop、Spark学习路线
- ES-Hadoop学习笔记-Spark交互
- hadoop+spark配置笔记
- hadoop spark 笔记
- Hadoop学习笔记(4)
- Hadoop学习笔记 4
- Hadoop+Spark学习
- Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)(十八)
- Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)
- Hadoop学习-基础概念
- Hadoop学习笔记-Hadoop初识
- hadoop学习笔记-hadoop起源
- hadoop学习笔记 Hadoop进程
- 【hadoop】hadoop学习笔记-回收站
- Apache Spark 学习笔记(2)- 编译Hadoop
- hadoop,spark学习之路
- Hadoop学习笔记(1):概念和整体架构
- C++中的const
- 3.4 T4
- iOS 图片旋转方法
- BZOJ 1061费用流
- 从TCP三次握手说起——浅析TCP协议中的疑难杂症
- hadoop学习笔记4:hadoop、spark概念
- ubuntu在登录界面添加root用户登录的办法
- git命令记录
- 基于hibernate实现jpa规范
- 在公司的第一个项目总结
- Tomcat日志打印请求响应时间
- BZOJ 1507 splay
- 使用 ftrace 调试 Linux 内核,第 1 部分
- uva 147 Dollars (dp)