hadoop菜鸟教程 - CSDN
精华内容
参与话题
  • Hadoop教程(一) Hadoop入门教程

    万次阅读 多人点赞 2015-11-24 21:40:50
    Hadoop框架中最核心设计就是:HDFS和MapReduce,HDFS实现存储,而MapReduce实现原理分析处理,这两部分是hadoop的 核心。数据在Hadoop中处理的流程可以简单的按照下图来理解:数据通过Haddop的集群处理后得到结果,...

     

    Hadoop教程() Hadoop入门教程

     

     

    1 Hadoop入门教程

    HadoopApache开源组织的一个分布式计算开源框架(http://hadoop.apache.org/),用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计就是:HDFSMapReduceHDFS实现存储,而MapReduce实现原理分析处理,这两部分是hadoop核心。数据在Hadoop中处理的流程可以简单的按照下图来理解:数据通过Haddop的集群处理后得到结果,它是一个高性能处理海量数据集的工具 

    1.1 Hadoop家族

           

           

    1、Apache Hadoop:Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。

     

    2、Apache Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

     

    3、Apache Pig:是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫PigLatin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。

     

    4、Apache HBase:是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。

     

    5、Apache Sqoop:是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL,Oracle,Postgres等)中的数据导进到HadoopHDFS中,也可以将HDFS的数据导进到关系型数据库中。

     

    6、Apache Zookeeper:是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。

     

    7、Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。MahoutMapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。

               

    8、Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身

    9、Apache Avro:是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。

     

    10、     Apache Ambari:是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。

     

    11、     Apache Chukwa:是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合Hadoop处理的文件保存在HDFS中供Hadoop进行各种MapReduce操作。

     

    12、     Apache Hama:是一个基于HDFSBSPBulkSynchronousParallel)并行计算框架,Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。

     

    13、     Apache Flume:是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。

     

    14、     Apache Giraph:是一个可伸缩的分布式迭代图处理系统,基于Hadoop平台,灵感来自BSP(bulksynchronousparallel)GooglePregel

     

    15、     Apache Oozie:是一个工作流引擎服务器,用于管理和协调运行在Hadoop平台上(HDFSPigMapReduce)的任务。

     

    16、     Apache Crunch:是基于GoogleFlumeJava库编写的Java库,用于创建MapReduce程序。与HivePig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库。

     

    17、     Apache Whirr:是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持AmazonEC2Rackspace的服务。

     

    18、     Apache Bigtop:是一个对Hadoop及其周边生态进行打包,分发和测试的工具。

     

    19、     Apache HCatalog:是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越HadoopRDBMS,利用PigHive提供关系视图。

     

    20、     Cloudera Hue:是一个基于WEB的监控和管理系统,实现对HDFSMapReduce/YARN,HBase,Hive,Pigweb化操作和管理。

     

    1.2 HDFS文件系统

    HDFSHadoop Distributed File SystemHadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(largedata set)的应用程序。

    HDFS的设计特点:

    1、大数据文件,非常适合上T级别的大文件或者一堆大数据文件的存储。

    2、文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算器上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多。

    3、流式数据访问,一次写入多次读写,这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。

    4、廉价硬件,HDFS可以应用在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。

    5、硬件故障,HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。

     

    HDFSmaster/slave构架:

    一个HDFS集群是有一个Namenode和一定数目的Datanode组成。Namenode是一个中心服务器,负责管理文件系统的namespace和客户端对文件的访问。Datanode在集群中一般是一个节点一个,负责管理节点上它们附带的存储。在内部,一个文件其实分成一个或多个block,这些block存储在Datanode集合里。Namenode执行文件系统的namespace操作,例如打开、关闭、重命名文件和目录,同时决定block到具体Datanode节点的映射。DatanodeNamenode的指挥下进行block的创建、删除和复制。NamenodeDatanode都是设计成可以跑在普通的廉价的运行linux的机器上。

     

    HDFS的关键元素:

    1、Block:将一个文件进行分块,通常是64M

    2、NameNode:保存整个文件系统的目录信息、文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode就失效了。在Hadoop2.*开始支持activity-standy模式----如果主NameNode失效,启动备用主机运行NameNode

    3、DataNode:分布在廉价的计算机上,用于存储Block块文件。

     


    HDFS架构图

     

    4、Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。接收到心跳信号意味着该Datanode节点工作正常。块状态报告包含了一个该Datanode上所有数据块的列表。


    5、参考资料

    HDFS Java API:http://hadoop.apache.org/core/docs/current/api/

    HDFS源代码:http://hadoop.apache.org/core/version_control.html

     

    1.3 MapReduce文件系统

    MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。MapReduce将分成两个部分"Map(映射)""Reduce(归约)"

    当你向MapReduce框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map任务,然后分配到不同的节点上去执行,每一个Map任务处理输入数据中的一部分,当Map任务完成后,它会生成一些中间文件,这些中间文件将会作为Reduce任务的输入数据。Reduce任务的主要目标就是把前面若干个Map的输出汇总到一起并输出。

    MapReduce流程图

           

    MapReduce流程图

    步骤1:首先对输入数据源进行切片

    步骤2master调度worker执行map任务

    步骤3worker读取输入源片段

    步骤4worker执行map任务,将任务输出保存在本地

    步骤5master调度worker执行reduce任务,reduce worker读取map任务的输出文件

    步骤6:执行reduce任务,将任务输出保存到HDFS

     

    1.4 学习Linux推荐书籍:

    1. Hadoop权威指南

    2. Hadoop实战

    3. Hadoop技术内幕:深入解析Hadoop CommonHDFS架构设计与实现原理》

    4. Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》

    5. Hadoop技术内幕:深入解析YARN架构设计与实现原理》


                    --以上为《Hadoop入门教程》,如有不当之处请指出,我后续逐步完善更正,大家共同提高。谢谢大家对我的关注。

                                                                                                                                                                                          ——厚积薄发(yuanxw)


    展开全文
  • Alex 的 Hadoop 菜鸟教程: 第1课 hadoop体系介绍

    万次阅读 多人点赞 2015-03-06 10:46:46
    介绍hadoop的体系,对hadoop庞大的生态圈进行了介绍,并标出了学习的优先级。简单明了的介绍,看了不晕

    原帖地址:http://blog.csdn.net/nsrainbow/article/details/36396007

    本教程适用人群

    如果你是以下的几类人中的一种
    • 老板叫我搭建一个hadoop集群,但是我还什么都不懂,网上的教程概念介绍的好多,我看的头晕,咋办?
    • 我想学hadoop但是我是个完全不懂的小白,hadoop有这么多的东西,我究竟要学那些算是能学会hadoop?
    那么你就是本教程的适用人群!看完这个教程你不会成为一只Hadoop大象,但是你可以成为一只小象,至少你已经知道Hadoop长什么样子,有几条腿了,可以再学习很多进阶的教程了。

    本教程的特点

    • 不要求你有很多台机器,你的最低要求就是有2台虚拟机搭建出来的centos机器,这样你在家也可以学习hadoop,而不是必须要在实验室或者公司
    • 不会介绍很多的概念,直接采用一个个的实践例子让你自己感受hadoop,如果需要了解具体的概念和参数,请继续学习每个教程后面的参考资料
    • 前21课介绍了高优先级组件,属于课程的主体部分,学完了21课就算完成了课程了,真正成为一只小象了。21课之后的低优先级组件我就看心情更新了,毕竟没那么多时间
    OK,现在开始!


    hadoop核心

    Apache Hadoop 项目有两个核心组件,被称为 Hadoop 分布式文件系统 (Hadoop Distributed File System, HDFS) 的文件存储,以及被称为 MapReduce 的编程框架。有一些支持项目充分利用了 HDFS 和 MapReduce。 



    支持商

    Hadoop有两个主要支持商HortonWorks (代表社区)和 Cloudera (代表商业), HortonWorks发布的安装包叫 Ambari , Cloudera发布的安装包叫 CDH (截至本文发布最新为CDH5)。其实还有一个MapR因为用的人不多,我就不介绍了 
    选择建议:
    我也不知道选什么好,因为我只用过cdh的版本,只是因为他看起来更商业化,可能会更稳定吧,不过cdh的官方文档都是英文而且写的很杂乱。如果你找不到什么cdh的资料可以看下我博客里面关于hadoop的文章,这些都是是我在cdh官方文档的基础上翻译和改进的

    生态圈

    下面介绍下Hadoop庞大的开源生态圈的一些组件(主要还是以CDH5官方安装教程有提到的为主)。由于条目众多,我会列出学习的优先级:高,低。优先级低的只需要了解就好了,基本工作中都可能不会用到。所以大家一上手的时候只需要高这个级别的就好了,低的等闲的没事干的时候去看下。


    HDFS []

    hadoop做出了一个虚拟文件系统,在这个系统上你以为你创建了一个文件,其实这个文件有可能被同时存放在很多台机子上,这样就让你的系统表面上看起来是一个空间,实际上是很多服务器的磁盘构成的,这就是分布式操作系统

    对应课程

    YARN (MapReduce2.0) []

    这是一个面向 Hadoop 的编程模型。有两个阶段,它们分别被称为 Map 和 Reduce。在分布式系统上进行计算操作基本都是由这两个概念步骤组成的,因为分布式系统,并不像一般的数据库或者文件系统,不能从上至下,或者从第一条开始进行求和等操作,就需要一种由分散的节点不断向一个点聚拢的计算过程。

    对应课程

    HBase [

    HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。HBase 跟 MongoDB也是目前市面上NoSQL数据库的两个首选项目

    对应课程


    ZooKeeper []

    ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。提供中央的控制信息和同步。通常为Hbase提供节点见的协调。看起来很抽象,简单的说没有zookeeper就无法部署HDFS的HA模式,只要是生产环境的部署肯定离不开zookeeper。所以一开始也不用太懂zookeeper,只要会用就行。

    对应课程

    Hive []

    你可以在Hive里面建立表,通过表映射实际存储的hadoop文件,然后写sql去查询数据。Hive会把你输入的sql语句转化为mapreduce 任务去查询hadoop。但是速度非常慢,每次查询大概需要几分钟,所以hive主要是用于统计分析用的,并且支持的sql语法非常有限。但是毕竟写sql比些mapreduce任务简单多了。

    对应课程

    Sqoop []

    Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递。

    对应课程


    Impala []

    Cloudera发布了实时查询开源项目Impala 1.0 beta版,称比原来基于MapReduce的Hive SQL查询速度提升3~90倍(详情可以参考此文中的“How much faster are Impala queries than Hive ones, really?”部分),而且更加灵活易用。Impala是高角羚的意思,这种羚羊主要分布在东非。多款产品实测表明,Impala比原来基于MapReduce的Hive SQL查询速度提升3~90倍。Impala是Google Dremel的模仿,但在SQL功能上青出于蓝胜于蓝。

    对应课程

    pig []

    pig是hadoop上层的衍生架构,与hive类似。对比hive(hive类似sql,是一种声明式的语言),pig是一种过程语言,类似于存储过程一步一步得进行数据转化。感觉跟hive 类似是不是?网上有人总结了他们的区别:Pig用来写一些即时脚本吧,比如领导问你要份数据,半个小时要出来之类;Hive嘛,就是一个产品经理过来,问这个啥回事?于是你Hive一下,一个简洁的类SQL语句

    对应课程

    Spark []

    Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Apache Spark现在名声大噪。为支持Spark项目成立的 Databricks公司 从Andereessen Horowittz那里募集了1400万美元,Cloudera也已决定全力支持Spark

    对应课程

    HttpFs[]

    HttpFs 其实也是HDFS的组件之一只是默认是没有安装的,有了HttpFs可以方便的在网页上操作hdfs的文件系统,并且HttpFs提供了一套REST风格的API可以用程序对hdfs的文件进行操作


    Hue []

    HUE是一个很漂亮的web客户端,你可以在hue上调用和管理hadoop的各个组件,比如查看/编辑Hbase表的数据,查看/编辑Hive数据表,执行sql等作业

    对应课程

    Oozie []

    Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat

    对应课程

    Phoenix[]

    Phoenix是Apache的顶级项目。Phoenix在Hbase上构建了一层关系型数据库。可以用SQL来查询Hbase数据库,并且速度比Impala更快。还支持很多丰富的特性,最有名的便是它的二级索引。Phoenix借鉴了很多关系型数据库优化查询的方法,将这些方法用在Hbase上,让Hbase更方便使用。

    对应课程

    Flume[]

    日志收集组件,通过在服务器上安装agent来收集服务器的日志,而且可以把多个flume串联起来,实现日志的转换,处理和集中。其实这个组件并不完全算是hadoop生态圈里面的东西,但是由于hadoop集群机器众多,日志数量巨大,可以说hadoop自己生成的日志就是海量数据,所以怎样合理的收集日志和对日志进行查询就成为了一个hadoop领域的一个必须解决的问题。所以flume也被列为hadoop生态圈的一份子


    Sentry []

    提供细粒度基于角色的安全控制


    Flume [

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。


    Apache Crunch []

    Apache Crunch(孵化器项目)是基于Google的FlumeJava库编写的Java库,用于创建MapReduce流水线。与其他用来创建MapReduce作业的高层工具(如Apache Hive、Apache Pig和Cascading等)类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库。而与其他工具不同的是,Crunch并不强制所有输入遵循同一数据类型。相反,Crunch使用了一种定制的类型系统,非常灵活,能够直接处理复杂数据类型,如时间序列、HDF5文件、Apache HBase表和序列化对象(像protocol buffer或Avro记录)等。

    Crunch并不想阻止开发者以MapReduce方式思考,而是尝试使之简化。尽管MapReduce有诸多优点,但对很多问题而言,并非正确的抽象级别:大部分有意思的计算都是由多个MapReduce作业组成的,情况往往是这样——出于性能考虑,我们需要将逻辑上独立的操作(如数据过滤、数据投影和数据变换)组合为一个物理上的MapReduce作业


    Llama []

    让外部服务器从YARN获取资源的框架,另外Llama就是羊驼国内俗称草泥马


    Mahout []

    Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Apache Mahout项目已经发展到了它的第三个年头,目前已经有了三个公共发行版本。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。

    Mahout 的创始人 Grant Ingersoll 介绍了机器学习的基本概念,并演示了如何使用 Mahout 来实现文档聚类、提出建议和组织内容。



    Cloudera Search []

    基于Solr的查询组件


    Snappy []

    Snappy 是一个 C++ 的用来压缩和解压缩的开发包,其目标不是最大限度压缩,而且不兼容其他压缩格式。Snappy 旨在提供高速压缩速度和合理的压缩率。Snappy 比 zlib 更快,但文件相对要大 20% 到 100%。在 64位模式的 Core i7 处理器上,可达每秒 250~500兆的压缩速度。


    Whirr []

    Apache Whirr是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr现今相对中立,当前支持Amazon EC2和Rackspace服务。一组为了运行云服务而设计的代码库,比如可以用来在AWS上部署ZooKeeper


    Avro []

    被IBM和Cloudera使用,用于数据串行化,也就是将数据转换为紧密的二进制格式(JSON)在Hadoop上存储和使用


    以下的两个在CDH手册中并没有提到,但是在别的hadoop教程中经常被提到,顺带也介绍下


    Fuse []

    让 HDFS 系统看起来就像一个普通的文件系统,所以您可以对 HDFS 数据使用 ls、rm、cd 和其他命令。

    Hadoop Streaming []

    一个实用程序,在任何语言(C、Perl 和 Python、C++、Bash 等)中支持 MapReduce 代码。示例包括一个 Python 映射程序和一个 AWK 缩减程序。


    Hadoop 架构图

    本图显示了 Hadoop 架构

    HDFS(底层)位于商品硬件的集群之上。简单的机架式服务器,每台都配置 2 个十六核 CPU、6 到 12 个磁盘,以及 32G RAM。在一个 map-reduce 作业中,Map层以极高的速度从磁盘读取。Map向Reduce发出已进行排序和提供的键值对,然后,Reduce层汇总键值对。

    展开全文
  • hadoop与大数据的关系? 大数据技术正渗透到各行各业。作为数据分布式处理系统的典型代表,Hadoop已成为该领域的事实标准。但Hadoop并不等于大数据。它只是一个成功的分布式系统,用于处理离线数据。大数据领域中...

    hadoop与大数据的关系?
    大数据技术正渗透到各行各业。作为数据分布式处理系统的典型代表,Hadoop已成为该领域的事实标准。但Hadoop并不等于大数据。它只是一个成功的分布式系统,用于处理离线数据。大数据领域中还有许多其他类型的处理系统。
    随着大数据技术的普及,Hadoop已成为其开源功能和卓越性能的新宠。有些人甚至认为大数据是Hadoop。实际上,这是一种误解。 Hadoop只是一个用于处理离线数据的分布式存储和处理系统。除了Hadoop之外,还有用于处理流数据的Storm、Oracle处理关系数据、Splunk处理实时机器数据……有许多主流大数据系统,而Hadoop只是其中之一。

    数据分析师要学什么?
    01、Hadoop生态系统及版本衍化 作业
    02、 HDFS应用场景、部署、原理与基本架构 作业
    02、 推荐课外阅读资料
    02、(1) HDFS应用场景、部署、原理与基本架构
    02、(2) HDFS部署与Shell命令使用
    02、(3) Understanding_Hadoop_Clusters_and_the_Network
    03、 MapReduce应用场景、原理与基本架构
    03、 推荐课外阅读资料
    03、MapReduce应用场景、原理与基本架构 作业
    04、MapReduce部署以及编程实践(涉及多语言编程)
    05、 HBase应用场景、原理与基本架构 作业
    05、 HBase应用场景、原理与基本架构
    05、推荐课外阅读资料
    06、 推荐课外阅读资料
    06、HBase部署以及编程实践 作业
    06、HBase部署以及编程实践
    07、HBase案例分析 作业
    07、推荐课外阅读资料
    08、 Zookeeper部署及典型应用 作业
    08、Zookeeper部署及典型应用 课外推荐阅读
    08、Zookeeper部署及典型应用
    09、Hive应用场景、基本架构、部署以及应用 作业
    09、Hive应用场景、基本架构、部署以及应用 课外推荐阅读
    09、Hive应用场景、基本架构、部署以及应用
    10、 Flume应用场景、原理、基本架构与案例分析 作业
    10、Flume应用场景、原理、基本架构与案例分析 课外阅读
    10、Flume应用场景、原理、基本架构与案例分析
    11、Mahout数据挖掘工具包介绍 作业
    11、Mahout数据挖掘工具包介绍 课外阅读
    12、Sqoop传统数据库与Hadoop间数据同步工具 作业
    12、Sqoop传统数据库与Hadoop间数据同步工具 课外阅读
    13、下一代Hadoop(2.0)介绍 作业
    13、下一代Hadoop(2.0)介绍 课外阅读
    Flume应用场景、原理、基本架构与案例分析
    Hadoop 2.0基本架构和发展趋势_董西成
    Hadoop distributed file system
    Hadoop in Practice
    Hadoop.in.Action
    Hadoop.Operations
    Hadoop.The.Definitive.Guide.3rd.Edition.May.2012
    HadoopMahoutRoadmap.png
    Hadoop、HBase、Hive、Pig、Zookeeper资料整理
    Hadoop与大数据技术大会PPT资料
    Hadoop与数据分析@taobao
    Hadoop在大型内容推荐系统中的应用
    Hadoop在雅虎的应用
    Hadoop实战(第2版)
    Hadoop实战-陆嘉恒(高清完整版)
    Hadoop技术内幕:深入解析Hadoop Common和HDFS
    Hadoop技术内幕:深入解析MapReduce架构设计i与实现原理》迷你书
    Hadoop权威指南(第2版) (1)
    Hadoop源代码分析完整版
    Hadoop源码.doc
    Hadop:开启通向云计算的捷径(刘鹏)
    HDFS HA和Federation安装部署方法 v0.1
    HDFS——Hadoop分布式文件系统深度实践(配光盘)_IT168文库
    Hive应用场景、基本架构、部署以及应用
    MapReduce Design Patterns
    opentsdb-hbasecon
    Professional Hadoop Solutions
    Sep-2013
    spring-data-hadoop-reference 1.0.2
    spring-data-hadoop-reference menual
    Sqoop传统数据库与Hadoop间数据同步工具
    《hadoop技术内幕:深入解析YARN架构设计与实现原理》迷你书
    下一代Hadoop(2.0)介绍
    推荐课外阅读资料
    数据可视化实战
    数据挖掘导论
    数据挖掘技术在推荐系统的应用by陈运文
    月光宝盒双11-HBase集群应用和优化经验-九翎
    深入浅出Hadoop实战开发(HDFS实战图片、MapReduce、HBase实战微博、Hive应用)(1)
    深入解析YARN架构设计与实现原理(完整版)
    精通Hadoop
    腾讯HADOOP集群实践

    大数据教程百度盘下载
    http://www.xuexiluxian.net/hadoop-xuexi.html

    展开全文
  • Hadoop入门——初识Hadoop

    万次阅读 多人点赞 2020-08-24 09:41:21
    Hadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。今年大型IT公司,如EMC、Microsoft、Intel、...

    推荐一个微信商城,扫码即可购买,性价比超高,程序员必备

    店主就是博主,有任何问题可随时通过商城内的微信与博主取得联系

     

    一.hadoop是什么

    Hadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎所有主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。今年大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明显增加了Hadoop方面的投入。

     

    二 .hadoop能干什么

    hadoop擅长日志分析,facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是hive,少量尝试mahout!)

     

    三.hadoop的核心

    1.HDFS: Hadoop Distributed File System  分布式文件系统

    2.YARN: Yet Another Resource Negotiator   资源管理调度系统

    3.Mapreduce:分布式运算框架

     

    四.HDFS的架构

    主从结构

           •主节点, namenode

            •从节点,有很多个: datanode

    namenode负责:

             •接收用户操作请求

             •维护文件系统的目录结构

             •管理文件与block之间关系,block与datanode之间关系

    datanode负责:

             •存储文件

             •文件被分成block存储在磁盘上

             •为保证数据安全,文件会有多个副本

     

    Secondary NameNode负责:

               合并fsimage和edits文件来更新NameNode的metedata

     

    五.Hadoop的特点

    扩容能力(Scalable):能可靠地(reliably)存储和处理千兆字节(PB)数据。

    成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。

    高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理它们,这使得处理非常的快速。

    可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(redeploy)计算任务。

     

    六.NameNode

    1.简介

    namenode是整个文件系统的管理节点。他维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。

    文件包括:

    fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。

    edits:操作日志文件。

    fstime:保存最近一次checkpoint的时间。

     

    2.NameNode的工作特点

    NameNode始终在内存中保存metedata,用于处理“读请求”,到有“写请求”到来时,NameNode首先会写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回。

    Hadoop会维护一个人fsimage文件,也就是NameNode中metedata的镜像,但是fsimage不会随时与NameNode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary NameNode就是用来合并fsimage和edits文件来更新NameNode的metedata的。

     

    3.什么时候checkpoint

    fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。 
    fs.checkpoint.size    规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。

     

     

    七.SecondaryNameNode

    1.简介

    HA的一个解决方案。但不支持热备。配置即可。
    执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage.
    默认在安装在NameNode节点上,但这样...不安全!

    2.工作流程

    (1)secondary通知namenode切换edits文件;
    (2)secondary从namenode获得fsimage和edits(通过http);
    (3)secondary将fsimage载入内存,然后开始合并edits;
    (4)secondary将新的fsimage发回给namenode;
    (5)namenode用新的fsimage替换旧的fsimage;

     

    八.DataNode

    提供真实文件数据的存储服务。
    文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block.
    dfs.block.size
    不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间;
    Replication:多复本。默认是三个。

     

    九.HDFS

    (1)读过程

    1.初始化FileSystem,然后客户端(client)用FileSystem的open()函数打开文件

    2.FileSystem用RPC调用元数据节点,得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。

    3.FileSystem返回FSDataInputStream给客户端,用来读取数据,客户端调用stream的read()函数开始读取数据。

    4.DFSInputStream连接保存此文件第一个数据块的最近的数据节点,data从数据节点读到客户端(client)

    5.当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点。

    6.当客户端读取完毕数据的时候,调用FSDataInputStream的close函数。

    7.在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点。

    8.失败的数据节点将被记录,以后不再连接。

     

    (2)写过程

    1.初始化FileSystem,客户端调用create()来创建文件

    2.FileSystem用RPC调用元数据节点,在文件系统的命名空间中创建一个新的文件,元数据节点首先确定文件原来不存在,并且客户端有创建文件的权限,然后创建新文件。

    3.FileSystem返回DFSOutputStream,客户端用于写数据,客户端开始写入数据。

    4.DFSOutputStream将数据分成块,写入data queue。data queue由Data Streamer读取,并通知元数据节点分配数据节点,用来存储数据块(每块默认复制3块)。分配的数据节点放在一个pipeline里。Data Streamer将数据块写入pipeline中的第一个数据节点。第一个数据节点将数据块发送给第二个数据节点。第二个数据节点将数据发送给第三个数据节点。

    5.DFSOutputStream为发出去的数据块保存了ack queue,等待pipeline中的数据节点告知数据已经写入成功。

    6.当客户端结束写入数据,则调用stream的close函数。此操作将所有的数据块写入pipeline中的数据节点,并等待ack queue返回成功。最后通知元数据节点写入完毕。

    7.如果数据节点在写入的过程中失败,关闭pipeline,将ack queue中的数据块放入data queue的开始,当前的数据块在已经写入的数据节点中被元数据节点赋予新的标示,则错误节点重启后能够察觉其数据块是过时的,会被删除。失败的数据节点从pipeline中移除,另外的数据块则写入pipeline中的另外两个数据节点。元数据节点则被通知此数据块是复制块数不足,将来会再创建第三份备份。

     

     

    展开全文
  • Hadoop2.X大数据零基础入门课程,主要包括HDFS、MapReduce、ZooKeeper、Kafka等框架理论知识、集群搭建、操作实战等。
  • 只不过它是一个基于Hadoop的工作流引擎,在实际工作中,遇到对数据进行一连串的操作的时候很实用,不需要自己写一些处理代码了,只需要定义好各个action,然后把他们串在一个工作流里面就可以自动执行了。...
  • Hadoop入门教程

    千次阅读 2019-03-19 13:17:09
    1 Hadoop入门教程 Hadoop是Apache开源组织的一个分布式计算开源框架(http://hadoop.apache.org/),用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计...
  • hadoop入门教程

    2020-07-30 23:30:19
    hadoop入门教程,ubuntu 下 安装配置 hadoop,Eclipse 连接hadoop开发程序入门
  • Hadoop学习从零到一系列课程(1)

    万人学习 2019-06-24 13:28:39
    Hadoop入门教程,通过本节课程带您一步步熟悉和掌握Hadoop基础,内容包括分布式系统介绍、Hadoop的起源、Borg、MapReduce、架构、搭建。
  • HDFS精讲

    万人学习 2019-06-26 11:57:31
    讲解HDFS的Java、shell操作,HDFS集群搭建
  • Hadoop入门和大数据应用

    万人学习 2019-07-01 10:39:42
    Hadoop入门和大数据应用视频教程,该课程主要分享Hadoop基础及大数据方面的基础知识。 讲师介绍:翟周伟,就职于百度,Hadoop技术讲师,专注于Hadoop&大数据、数据挖掘、自然语言处理等领域。2009年便开始利用...
  • Hadoop大数据从入门到精通

    万人学习 2018-10-22 21:38:05
    Hadoop分布式文件系统(HDFS)和MapReduce的工作原理 如何优化Hadoop机群所需要的硬件配置 搭建Hadoop机群所需要考虑的网络因素 如何利用Hadoop配置选项进行系统性能调优 如何利用FairScheduler为多用户提供服务级别...
  • Hadoop零基础教程,该课程主要为大家详细讲解YARN和MapReduce的构造,以及YARN和MapReduce的入门使用。通过本节课程带您一步步熟悉和掌握Hadoop基础。
  • 详解Hadoop作业平台宙斯Zeus

    万人学习 2015-04-16 17:23:36
    宙斯是一个完整的Hadoop的作业平台,从Hadoop任务的调试运行到生产任务的周期调度 宙斯支持任务的整个生命周期,从功能上来说,支持: Hadoop MapReduce任务的调试运行 Hive任务的调试运行 Shell任务的运行 Hive元...
  • hbase入门精讲

    万人学习 2019-06-21 09:53:18
    通过学习hbase,掌握hbase的体系结构,集群安装,使用hbase shell访问hbase中的数据,使用hbase Java访问hbase,使用mapreduce把数据从HDFS中导入到hbase中,掌握过滤器等工具。
  • Hbase教程(一) Hbase入门教程

    万次阅读 2016-06-01 13:49:53
    就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非...
  • 通过本节课程为您详细讲解HDFS和YARN。
  • Hadoop视频教程汇总

    万次阅读 多人点赞 2017-12-14 09:37:57
    1.Hadoop大数据平台架构与实践--基础篇(已学习) 链接:https://www.imooc.com/learn/391 2.Hadoop进阶(已学习) 链接:https://www.imooc.com/learn/890 二 极客学院 1.Hadoop 概述(已学习) ...
  • Hadoop大数据实战开发

    万人学习 2019-05-27 10:51:32
    介绍大数据技术生态圈主流技术框架的应用与发展,介绍如何搭建Hadoop大数据分布式系统集群平台、大数据分布式文件系统HDFS 、大数据分布式并行计算框架MapReduce。 本课程介绍大数据的学习基础。 本课程介绍...
  • Hadoop从入门到精通

    千人学习 2019-04-17 10:59:10
    本门课程总体分为初始HadoopHadoop深入及Hadoop高级三大阶段。由浅入深地讲解了Hadoop三大模块:HDFS、YARN及     MapReduce。 课程内容:    &...
1 2 3 4 5 ... 20
收藏数 1,084
精华内容 433
热门标签
关键字:

hadoop菜鸟教程