Hadoop教程(一) Hadoop入门教程「建议收藏」

Hadoop教程(一) Hadoop入门教程「建议收藏」Hadoop是Apache开源组织的一个分布式计算开源框架(http://hadoop.apache.org/),用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。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家族

        Hadoop教程(一) Hadoop入门教程「建议收藏」

        Hadoop教程(一) 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块文件。

 

Hadoop教程(一) Hadoop入门教程「建议收藏」

HDFS架构图

 

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

Hadoop教程(一) Hadoop入门教程「建议收藏」

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流程图

        Hadoop教程(一) Hadoop入门教程「建议收藏」

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)


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130561.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • spark报错OutOfMemory「建议收藏」

    最近在使用spark进行分析的时候几千万的数据量感觉不多但是跑起来非常慢内存溢出OutOfMemory1.然后在有使用map的地方在map之前进行分区repartition2.join会有shuffle产生shuffle也会产生数据溢出3.map也可以换成 mapPartitions并且适当调整分区数200400 其他的还有很多我用的就这些然后任务可以跑出来。…

  • 关于platform_device一些讲解「建议收藏」

    关于platform_device一些讲解「建议收藏」从2.6版本开始引入了platform这个概念,在开发底层驱动程序时,首先要确认的就是设备的资源信息,例如设备的地址,在2.6内核中将每个设备的资源用结构platform_device来描述,该结构体定义在kernel\include\linux\platform_device.h中:structplatform_device{constchar*name;u32id;structdevicedev;u32num_resources;structresou

  • ETL是什么_ETL平台

    ETL是什么_ETL平台一、ETL发展的背景信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。据统计,数据量每经过2-3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占总数据量的2%~4

  • 动态规划:完全背包、多重背包[通俗易懂]

    动态规划:完全背包、多重背包[通俗易懂]一、问题描述:  完全背包:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。      多重背包:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值…

  • 用 Windows Media Center 免费看大片 (二)

    用 Windows Media Center 免费看大片 (二)接本系列上篇文章用WindowsMediaCenter免费看大片(一)点击“确定”,然后选择WindowsMediaCenter中的“电视”功能:此时,可以看到在“电视”功能中,多了一个名为“指南”的功能项,选择并点击“指南”:这时,就能看到有很多网络资源供用户免费观看,任选其一,进行单击选择。此时,会弹出“免费观看互联网视频”…

  • 数据结构 Hash表(哈希表)

    数据结构 Hash表(哈希表)参考链接:数据结构(严蔚敏)什么是Hash表要想知道什么是哈希表,那得先了解哈希函数哈希函数对比之前博客讨论的二叉排序树二叉平衡树红黑树BB+树,它们的查找都是先从根节点进行查找,从节点取出数据或索引与查找值进行比较。那么,有没有一种函数H,根据这个函数和查找关键字key,可以直接确定查找值所在位置,而不需要一个个比较。这样就**“预先知道”**key所在的位置,直…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号