Hadoop与分布式开发

hadoop上的并行应用程序开发是基于MapReduce编程框架的,MapReduce编程模型的原理是:利用一个输入的key/value对集合来产生一个输出的key/value对集合。MapReduce库的用户用两个函数来表达这个计算:Map和Reduce。

用户自定义的map函数接收一个输入的key/value对,然后产生一个中间key/value对的集合。MapReduce把所有具有相同key值的value集合在一起,然后传递给reduce函数。

用户自定义的reduce函数接收key和相关的value集合。reduce函数合并这些value值,形成一个较小的value集合。一般来说,每次reduce函数调用只产生0或1个输出的value值。通常我们通过一个迭代器把中间的value值提供给reduce函数,这样就可以处理无法全部放入内存中的大量的value值集合了。MapReduce计算模型非常适合在大量计算机组成的大规模集群上并行运行。

Hadoop分布式文件系统由一个名称节点和N个数据节点组成。每个节点均是一台普通的计算机。在使用方式上HDFS与我们熟悉的单机文件系统非常类似,它可以创建目录,创建、复制和删除文件,以及查看文件的内容等。

通常,MapReduce框架和分布式文件系统是运行在一组相同的节点上的,也就是说,计算节点和存储节点在一起。这种配置允许框架在那些已经存好数据的节点上高效地调度任务,这可以使整个集群的网络带宽被非常高效的利用。

HBase的数据管理

HBase是一个类似Bigtable的分布式数据库,它的大部分特性和Bigtable一样,是一个稀疏的、长期存储的、多维度的排序映射表。这张表的索引是行关键字、列关键字和时间戳。每个值是一个不解释的字符数组,数据都是字符串,没有类型。

HBase体系结构的三大重要组成部分是:

  • HBaseMaster:HBase主服务器,与Bigtable的主服务器类似。
  • HRegionServer:HBase域服务器,与Bigtable的Tablet服务器类似。
  • HBaseClient:HBase客户端是由org.apache.hadoop.HBase.client.HTable定义的。

NameNode:HDFS的守护程序,记录文件是如何分割成数据块的,以及这些数据块被存储到哪些节点上,对内存和I/O进行集中管理,是个单点,发生故障将使集群崩溃

SecondaryNameNode:监控HDFS状态的辅助后台程序,每个集群都有一个,与NameNode进行通讯,定期保存HDFS元数据快照,当NameNode故障可以作为备用NameNode使用

DataNode:每台从服务器都运行一个,负责把HDFS数据块读写到本地文件系统,负责所在物理节点的存储管理,一次写入,多次读取,文件由数据块组成,典型的大小是64MB,数据块尽量散布到各个节点

JobTracker:用于处理作业的后台程序,决定有哪些文件参与处理,然后切割task并分配节点,监控task,重启失败的task,每个集群只有唯一一个JobTracker,位于Master节点

TaskTracker:位于Slave节点,与DataNode结合,管理各自节点上的task,每个节点只有一个TaskTracker,但一个TaskTracker可以启动多个JVM,用于并行执行map或reduce任务,与JobTracker交互

Master:运行NameNode、SecondaryNameNode、JobTracker的节点,Master不是唯一的

Slave:运行TaskTracker、DataNode的节点

三种运行模式

单机模式:安装简单,几乎不用作任何配置,但仅限于调试用于

伪分布模式:在单节点上同时启动NameNode、DataNode、JobTracker、TaskTracker、SecondaryNameNode等五个进程,模拟分布式运行的各个节点

完全分布模式:正常的Hadoop集群,由多个各司其职的节点构成

NameNode使用事务日志记录HDFS元数据的变化,使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等。

时间: 2024-08-03 22:48:11

Hadoop与分布式开发的相关文章

Hadoop完全分布式的Eclipse开发环境配置

Hadoop安全分布式的Eclipse开发环境配置 安装Eclipse: 详细见教程:http://blog.csdn.net/wang_zhenwei/article/details/48032001 安装Hadoop-Eclipse-Plugin: 下载 hadoop2x-eclipse-plugin ,将 release 中的 hadoop-eclipse-kepler-plugin-2.2.0.jar (虽然标注的是 2.2.0,但在 2.6.0 下是没问题的,应该在 2.x 版本下都可

hadoop学习系列(1.大数据典型特性与分布式开发难点)

第一天 1.大数据典型特性与分布式开发难点 1. 大数据典型特性与分布式开发难点 2. Hadoop框架介绍与搜索技术体系介绍 3. Hadoop版本与特性介绍 4. Hadoop核心模块之HDFS分布式文件系统架构介绍 5. Hadoop核心模块之Yarn操作系统架构介绍 6. Linux安全禁用设置与JDK安装讲解 7. Hadoop伪分布式环境部署HDFS部分 8. Hadoop伪分布式环境部署Yarn和MR部分 9. Hadoop环境使用常见的错误集合 10. Hadoop环境常规设置与

【转】Hadoop HDFS分布式环境搭建

原文地址  http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统,因此研究了一下如何在Linux 下配置一个HDFS Clust.小记一下,以备将来进一步研究和记忆. HDFS简介 全称 Hadoop Distributed File System, Hadoop分布式文件系统. 根据Google的GFS论文,由Doug Cutting使用JAVA开发的开源项目

Hadoop安装及开发

Hadoop安装 安装环境 本人开发用的电脑操作系统是ubuntu14.04 64位,因此本文讲述的是Hadoop在ubuntu14.0464bit系统下的安装,实际上Hadoop目前也只支持Linux系统.有人号称在Windows下成功安装了Hadoop,我是没有见过. 新建用户 首先要为Hadoop的安装创建一个新用户: sudouseradd -d /home/hadoop -m hadoop sudopasswd hadoop 输入hadoop用户的密码,两次 为hadoop用户增加管理

Hadoop全分布式集群环境配置

Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错的特点,并且设计用来部署在低廉的(low-cost)硬件上:而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.HDFS

Hadoop大数据开发学习路线图阶段一

Hadoop发展到今天家族产品已经非常丰富,能够满足不同场景的大数据处理需求.作为目前主流的大数据处理技术,市场上很多公司的大数据业务都是基于Hadoop开展,而且对很多场景已经具有非常成熟的解决方案. 作为开发人员掌握Hadoop及其生态内框架的开发技术,就是进入大数据领域的必经之路. 下面详细介绍一下,学习Hadoop开发技术的路线图. Hadoop本身是用java开发的,所以对java的支持性非常好,但也可以使用其他语言. 下面的技术路线侧重数据挖掘方向,因为Python开发效率较高所以我

2018年最新Hadoop大数据开发学习路线图

Hadoop发展到今天家族产品已经非常丰富,能够满足不同场景的大数据处理需求.作为目前主流的大数据处理技术,市场上很多公司的大数据业务都是基于Hadoop开展,而且对很多场景已经具有非常成熟的解决方案. 作为开发人员掌握Hadoop及其生态内框架的开发技术,就是进入大数据领域的必经之路. 下面详细介绍一下,学习Hadoop开发技术的路线图. Hadoop本身是用java开发的,所以对java的支持性非常好,但也可以使用其他语言. 下面的技术路线侧重数据挖掘方向,因为Python开发效率较高所以我

Hadoop完全分布式集群搭建

Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和调试. 伪分布式模式(Pseudo Distrubuted Mode),使用的是分布式文件系统,守护进程运行在本机机器,模拟一个小规模的集群,在一台主机模拟多主机,适合模拟集群学习. 完全分布式集群模式(Full Distributed Mode),Hadoop的守护进程运行在由多台主机搭建的集群上

Window 10 WSL 下hadoop 伪分布式安装

Window 10 下的WSL子系统的安装可以参考之前的文章:window10 WSL子系统上设置redis开发环境 有时候,为了在window系统上进行hadoop开发和测试,可以在WSL上安装hadoop的伪分布式系统 因为子系统使用的是ubuntu 18.04,所以下面的安装以此为参考 下面是具体的配置步骤: 1:JDK的安装配置:这是必不可少的步骤 2:ssh的安装配置:Ubuntu SSH安装及配置免密码登录,安装完后可以用 ssh localhost来验证是否成功 3:hadoop伪