小白自学Hadoop入门 | 技术

Posted TC研修实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白自学Hadoop入门 | 技术相关的知识,希望对你有一定的参考价值。

话说,今天心情有点低落,心想着,不如搞点儿烧脑的吧,提升一下专注力,有助于纾解精神压力。


由于我司属于大数据行业,刚巧同事昨天在研发内部分享会上谈到大数据核心技术发展历史,既然“在其位,谋其政”,干脆学点儿技术干货,不求技术细节面面俱到,但求跟研发同事聊天不至于显得过于外行;同时,也可以尝试写作一些技术科普类小文,争取由浅入深。


废话少说,今天就来聊聊Hadoop。


小白自学Hadoop入门 | 技术


Hadoop,是一个由Apache基金会所开发的分布式系统基础架构。


分布式系统基础架构——听起来倒是有点高大上的赶脚,就是不太友好,完全没办法被正常人类秒懂。没事儿,咱主要还是看它到底解决了什么问题。

应用场景


从前,在数据量还没有很大的时候,我们只需要一台PC电脑,就可以轻松搞定数据的存储和计算;后来,随着数据量的增长,一台PC电脑已经无法满足数据存储和计算的需求,于是我们搭建起专门用于数据存储的服务器,并通过客户端/服务器模式,在本地电脑上,有选择地从远程服务器获取数据;现在,数据量正在以超乎想象的速度增长——也就是所谓的“大数据”——在这种情况下,我们又该如何实现数据的存储和计算,并保障用户高效访问呢?


小白自学Hadoop入门 | 技术


Hadoop就是针对这个问题的解决方案。

框架结构


在Hadoop的框架中,最核心的设计是:HDFS和MapReduce。其中,

  • HDFS:为海量的数据提供了存储;

  • MapReduce:为海量的数据提供了计算。


你看是不是,归根结底还是在解决数据存储和计算的问题。关于HDFS和MapReduce,在此就不再展开介绍了,以后可以另起章节专门聊。


除了HDFS和MapReduce,Hadoop还包含很多功能组件,用来解决类似于资源管理、性能调优这样的问题,铺开来看也是挺大的一片……


小白自学Hadoop入门 | 技术


然而这并不是全部。

Hadoop家族


根据Cloudera的统计,截止到2013年,Hadoop家族产品已经达到20个。


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

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

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

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

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

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

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

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

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

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

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

  • Apache Hama是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。

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

  • Apache Giraph是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。

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

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

  • Apache Whirr是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务。

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

  • Apache HCatalog是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。

  • Cloudera Hue:是一个基于WEB的监控和管理系统,实现对HDFS、apReduce/YARN、HBase、Hive、Pig的Web化操作和管理。


有没有点儿一入Hadoop深似海的赶脚?


对于Hadoop家族成员的学习暂时还没有开始,来日方长,也留在以后慢慢学习介绍吧。


最后强行插入八卦一则:

名字来源


Hadoop不是一个缩写,而是一个虚构的名字。该项目的创建者Doug Cutting解释Hadoop的得名 :


这个名字是我孩子给一个棕黄色的大象玩具命名的。对此,我提出的要求是:简短、容易发音和拼写、没有太多的意义,并且不会被用于别处。——小孩子恰恰是这方面的高手。



小白自学Hadoop入门 | 技术

参考资料:

https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin#reference-[4]-908354-wrap

http://www.shujugo.cn/thread-9340-1-1.html


长按二维码,关注TechComm

以上是关于小白自学Hadoop入门 | 技术的主要内容,如果未能解决你的问题,请参考以下文章

小白入门hadoop,必不可少的hadoop基础知识

Hadoop入门学习路线

大数据Hadoop学习之快速入门方法

大数据技术之 Hive (小白入门)

一个小白的进击之路——Hadoop开篇

大数据技术——Hadoop3.X入门搭建+安装调优(1.入门)