欢迎来到Yahoo!Hadoop教程!这个系列教程将向你介绍ApacheHadoop系统的许多方向,还将向你展示:如何进行简单和高级的集群配置;如何使用分布式文件系统;如何使用分布式文件系统,如何开发复杂的HadoopMapReduce应用,并且其它相关的分布式系统也提及。
由于相对hdfs的客户端存在相对路径问题,参见《HadoopHDFS开发参考》,我们修改了hadoop-0.18.1的源码并进行了重新编译,代码为forlink-hadoop.tar.gz。HDFS中,节点分为Namenode和Datanode,其中Namenode只有一个(可以通过《HadoopHDFS系统双机热备方案》配置两台,但同时只能有一台提供服务),Datanode可以有多台。
目标目的很简单,为进行研究与学习,部署一个hadoop运行环境,并搭建一个hadoop开发与测试环境。
和Hadoop无缝集成 Hadoop分析后的结果可直接写入HBase; 存放在HBase的数据可直接通过Hadoop来进行分析。
目前,基于类似思想的Open Source项目还很多,如Facebook用于用户分析的Hive。 HDFS作为一个分布式文件系统,是所有这些项目的基础。分析好HDFS,有利于了解其他系统。由于Hadoop的HDFS和MapReduce是同一个项目,我们就把他们放在一块,进行分析。
Scribe是facebook开源的日志收集系统,可用于搜索引擎中进行大规模日志分析处理。其通常与Hadoop结合使用,scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理。
Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。
Hive到底是什么呢?其实HIVE就是一个SQL解析引擎,它将SQL语句转译成M/RJOB然后在Hadoop执行,来达到快速开发的目的。拨开HIVE的神秘面纱之后来看它的表其实就是一个Hadoop的目录/文件(HIVE默认表存放路径一般都是在你工作目录的hive目录里面),按表名做文件夹分开,如果你有分区表的话,分区值是子文件夹,可以直接在其它的M/Rjob里直接应用这部分数据。
Hadoop是一个分布式的文件系统,他就像一个管家,管理你数据的存放,在物理上较远的地方会分别存放(这样一是不同的地方读取数据都很快,也起到了异地容灾的作用),他会动态管理和调动你的数据节点,高强的容错处理,最大程度的降低数据丢失的风险。Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。 一个Map/Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,由 map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序, 然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统中。 整个框架负责任务的调度和监控,以及重新执行已经失败的任务。
HDFS文件创建流程:文件夹的创建是一个相对简单的过程,主要是通过FileSystem中的mkdirs()方法,这个方法在DFSClient实例中调用同名方法mkdirs(),通过Hadoop本身的RPC机制调用Namenode的mkdirs()方法,最终这个调用PUSH到FSNameSystem的mkdirsInternal方法,这个方法主要就是检验访问权限,最后通过FSDirectory的unprotectedMkdir()方法,构建一个INodeDirectory实例添加到文件系统的目录树中。
这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有所体会,比如在HDFS上运行示例程序或简单作业等。
Google、VMWare和Amazon等公司已经开始提供云计算产品和战略。本文讲解如何使用ApacheHadoop构建一个MapReduce框架以建立Hadoop集群,以及如何创建在Hadoop上运行的示例MapReduce应用程序。还将讨论如何在云上设置耗费时间/磁盘的任务。云计算简介近来云计算越来越热门了,云计算已经被看作IT业的新趋势。云计算可以粗略地定义为使用自己环境之外的某一服务提供的可伸缩计算资源,并按使用量付费。可以通过Internet访问“云”中的任何资源,而不需要担心计算能力、带宽、存储、安全性和可靠性等问题。
HIVE介绍简介,是什么hive是一个基于hadoop的数据仓库。使用hadoop-hdfs作为数据存储层;提供类似SQL的语言(HQL),通过hadoop-mapreduce完成数据计算;通过HQL语言提供使用者部分传统RDBMS一样的表格查询特性和分布式存储计算特性。
这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有所体会,比如在HDFS上运行示例程序或简单作业等。
Apache Hadoop是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据。Hadoop的核心子项目,提供了一个分布式文件系统(HDFS)和支持MapReduce的分布式计算。
HDFS被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件;HDFS应用需要一个“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。
MapReduce是一个在海量数据上进行数据处理的并行编程模型,它特别适合于海量非结构化和结构化数据的搜索、分析和挖掘任务,已经开始被人们广泛使用。对于兴起的众多类似MapReduce系统来说,如何有效地评估和分析对比这些系统,成为当前一个需要解决的问题。本文详细讨论了针对MapReduce运行系统的性能评估指标和方法,设计和选择一系列具有代表性的程序和数据作为基准,用来评估和分析MapReduce系统。在这一评估方法指导下,本文在我们自己实现的MapReduce运行系统——Tplatform平台上扩展了Profiling功能,然后进行了一系列评估实验,来分析和寻找系统性能瓶颈,为未来系统优化提供依据。通过实验我们发现了我们系统的一些可改进的问题如任务调度、落后者问题等等。我们选择了针对导致提交任务延迟增加的落后者问题,通过实现后备任务策略来尝试改进。经模拟实验结果显示,我们提出的改进策略能够有效地改进落后者问题的性能问题。关键词:MapReduce,性能评估,落后者问题,后备任务策略。
目前,基于类似思想的Open Source项目还很多,如Facebook用于用户分析的Hive。 HDFS作为一个分布式文件系统,是所有这些项目的基础。分析好HDFS,有利于了解其他系统。由于Hadoop的HDFS和MapReduce是同一个项目,我们就把他们放在一块,进行分析。
Hadoop是Google MapReduce 的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。