继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Hadoop

tobeyond
关注TA
已关注
手记
粉丝 1
获赞 6

http://img3.mukewang.com/5e25635a0001c66304000472.jpg

自2012年以来,“Hadoop”这个术语通常不仅指上述基本模块,而且还指向可以安装在Hadoop之上或之上的附加软件包的收集,例如Apache Pig,Apache Hive,Apache HBase,Apache Spark等。

MapReduce

Hadoop MapReduce是一个软件框架,用于轻松编写应用程序,以可靠,容错的方式在大型集群(数千个节点)的商用硬件上并行处理大量数据。

术语MapReduce实际上指的是Hadoop程序执行的以下两个不同任务:

  • The Map Task: 术语MapReduce实际上指的是Hadoop程序执行的以下两个不同任务:

  • The Reduce Task: 此任务将map任务的输出作为输入,并将这些数据元组合并为较小的元组集合。 reduce任务总是在map任务之后执行。

通常输入和输出都存储在文件系统中。该框架负责调度任务,监视它们并重新执行失败的任务。

MapReduce框架由每个集群节点的单个主JobTracker和一个从属TaskTracker组成。主机负责资源管理,跟踪资源消耗/可用性以及调度从机上的作业组件任务,监视它们并重新执行失败的任务。从属TaskTracker按主控器指示执行任务,并定期向主控器提供任务状态信息。

JobTracker是Hadoop MapReduce服务的单点故障,这意味着如果JobTracker关闭,所有正在运行的作业都将停止。

Hadoop分布式文件系统

Hadoop可以直接与任何可安装的分布式文件系统(如本地FS,HFTP FS,S3 FS等)一起工作,但Hadoop使用的最常见的文件系统是Hadoop分布式文件系统(HDFS)。

Hadoop分布式文件系统(HDFS)基于Google文件系统(GFS),并提供一个分布式文件系统,该系统设计为在大型集群(数千台计算机)上运行小型计算机机器以可靠,容错方式。

HDFS使用主/从架构,其中主节点由管理文件系统元数据的单个NameNode和存储实际数据的一个或多个从节点DataNode组成。

HDFS命名空间中的文件被拆分为几个块,这些块存储在一组DataNode中。 NameNode决定块到DataNode的映射。DataNodes负责与文件系统的读写操作。它们还根据NameNode给出的指令来处理块创建,删除和复制。

HDFS提供了一个类似任何其他文件系统的shell,并且有一个命令列表可用于与文件系统交互。这些shell命令将在单独的章节以及适当的示例中介绍。

Hadoop如何工作?

阶段 1

用户/应用程序可以通过指定以下项目来向Hadoop(hadoop作业客户端)提交作业以获取所需的进程:

  1. 分布式文件系统中输入和输出文件的位置。

  2. java类以jar文件的形式包含map和reduce函数的实现。

  3. 通过设置作业的不同参数来配置作业。

阶段 2

Hadoop作业客户端然后将作业(jar /可执行文件等)和配置提交给JobTracker,JobTracker然后承担将软件/配置分发给从属的责任,Hadoop作业客户端然后将作业(jar /可执行文件等)和配置提交给JobTracker,JobTracker然后承担将软件/配置分发给从属的责任,

阶段 3

不同节点上的TaskTracker根据MapReduce实现执行任务,reduce函数的输出存储在文件系统上的输出文件中。

Hadoop的优势

  • Hadoop框架允许用户快速编写和测试分布式系统。它是高效的,它自动分配数据和工作在整个机器,反过来,利用CPU核心的底层并行性。

  • Hadoop不依赖硬件来提供容错和高可用性(FTHA),相反Hadoop库本身设计用于检测和处理应用程序层的故障。

  • 服务器可以动态添加或从集群中删除,Hadoop继续运行而不中断。

  • Hadoop的另一个大的优点是,除了开源之外,它在所有平台上兼容,因为它是基于Java的



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP