Hadoop是一个分布式的计算平台。 Hadoop primarily consists of the Hadoop Distributed FileSystem (HDFS) and an implementation of the Map-Reduce programming paradigm.<br> Hadoop is a software framework that lets one easily write and run applications that process vast amounts of data. Here's what makes Hadoop especially useful:<br> 可扩展: Hadoop can reliably store and process petabytes. 廉价: It distributes the data and processing across clusters of commonly available computers. These clusters can number into the thousands of nodes. <br> 高效: By distributing the data, Hadoop can process it in parallel on the nodes where the data is located. This makes it extremely rapid. <br> 可靠: Hadoop automatically maintains multiple copies of data and automatically redeploys computing tasks based on failures.
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算
Apache Hadoop 2.6.0发布了,新的稳定版,发布频率和质量越来越高了,增加了很多东西,从安装包的大小就能看出来,直接增加了50M,30%有木有。
目前,基于类似思想的Open Source项目还很多,如Facebook用于用户分析的Hive。 HDFS作为一个分布式文件系统,是所有这些项目的基础。分析好HDFS,有利于了解其他系统。由于Hadoop的HDFS和MapReduce是同一个项目,我们就把他们放在一块,进行分析。 下图是MapReduce整个项目的顶层包图和他们的依赖关系。Hadoop包之间的依赖关系比较复杂,原因是HDFS提供了一个分布式文件系统,该系统提供API,可以屏蔽本地文件系统和分布式文件系统,甚至象Amazon S3这样的在线存储系统。这就造成了分布式文件系统的实现,或者是分布式文件系统的底层的实现,依赖于某些貌似高层的功能。功能的相互引用,造成了蜘蛛网型的依赖关系。一个典型的例子就是包conf,conf用于读取系统配置,它依赖于fs,主要是读取配置文件的时候,需要使用文件系统,而部分的文件系统的功能,在包fs中被抽象了。
Windows下使用Hadoop实例
Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法
Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多小的工作单元,并把这些单元放到任何集群节点上执行。在MapReduce中,一个准备提交执行的应用程序成为“作业job”,而从一个作业换分出的、运行于个计算节点的工作单元成为“任务task”。此外,Hadoop提供的分布式文件系统HDFS主要负责各个节点上的数据的存储,并实现了高吞吐率的数据读写。
在Hadoop中执行的任务有时候需要把多个Map/Reduce作业连接到一起,这样才能够达到目的。在Hadoop生态圈中,有一个相对比较新的组件叫做Oozie,它让我们可以把多个Map/Reduce作业组合到一个逻辑工作单元中,从而完成更大型的任务。
Hadoop与数据分析淘宝。Hadoop基本概念;Hadoop的应用范围;Hadoop底层实现原理;Hive与数据分析;Hadoop集群管理;典型的Hadoop离线分析系统架构;常见问题及解决方案。
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。这个项目的地址是http://hadoop.apache.org/core/。
由于相对hdfs的客户端存在相对路径问题,参见《HadoopHDFS开发参考》,我们修改了hadoop-0.18.1的源码并进行了重新编译,代码为forlink-hadoop.tar.gz。HDFS中,节点分为Namenode和Datanode,其中Namenode只有一个(可以通过《HadoopHDFS系统双机热备方案》配置两台,但同时只能有一台提供服务),Datanode可以有多台。
本文档主要是针对Hadoop最基本知识的了解,对于刚刚接触Hadoop学习过程中的总结。Hadoop是什么Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。
在Microsoft Windows XP操作系统下,安装Ubuntu8.04 lts server版本+xubuntu桌面到VMware虚拟机上。
目前,基于类似思想的Open Source项目还很多,如Facebook用于用户分析的Hive。 HDFS作为一个分布式文件系统,是所有这些项目的基础。分析好HDFS,有利于了解其他系统。由于Hadoop的HDFS和MapReduce是同一个项目,我们就把他们放在一块,进行分析。
Ambari部署hadoop集群
Hadoop是2005 Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样,MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。
hadoop在虚拟机上(远程连接也是一样只需要知道master的ip和core-site.xml配置即可。
ubuntu14.04 安装hadoop
生活中,可能所有人都间接用过他的作品,他是 Lucene、Nutch 、Hadoop 等项目的发起人。是他,把高深莫测的搜索技术形成产品,贡献给普罗大众;还是他,打造了目前在云计算和大数据领域里如日中天的 Hadoop。他是某种意义上的盗火者,他就是 Doug Cutting。