大资料之Hadoop初识篇附赠马士兵大资料自学教程

大资料之Hadoop初识篇(附赠马士兵大资料自学教程)

Hadoop介绍 (直奔主题)

开源的资料分析平台,解决了大资料(大到一台计算机无法进行储存,一台计算机无法在要求的时间内进行处理)的可靠储存和处理。适合处理非结构化资料,包括HDFS,MapReduce基本元件与扩充套件元件Pig、Hive、Hbase、Sqoop、Flume、ZooKeeper和Spark等。

Hadoop基本元件

HDFS元件:提供了一种跨服务器的弹性资料储存系统,在由普通PC组成的丛集上提供高可靠的档案储存,通过将块储存多个副本的办法解决服务器或硬盘坏掉的问题。

储存结构如下图:

MapReduce元件:通过简单的Mapper和Reducer的抽象提供一个程式设计模型,可以在一个由几十台上百台的PC组成的不可靠丛集上并发地,分散式地处理大量的资料集,而把并发、分散式(如机器间通讯)和故障恢复等计算细节隐藏起来。而Mapper和Reducer的抽象,又是各种各样的复杂资料处理都可以分解为的基本元素。这样,复杂的资料处理可以分解为由多个Job(包含一个Mapper和一个Reducer)组成的有向无环图(DAG),然后每个Mapper和Reducer放到Hadoop丛集上执行,就可以得出结果。

MapReduce工作原理图如下:

Hadoop 扩充套件元件

这些技术主要包括了Sqoop、Flume、Hive、Pig、ZooKeeper、Spark等。

Pig元件:Apache Pig也是Hadoop框架中的一部分,Pig提供类SQL语言(Pig Latin)通过MapReduce来处理大规模半结构化资料。而Pig Latin是更高阶的过程语言,通过将MapReduce中的设计模式抽象为操作,如Filter,GroupBy,Join,OrderBy。

Hive元件:是一个基于 hadoop 的开源资料仓库工具,用于储存和处理海量结构化资料。它把海量资料储存于 hadoop 档案系统,而不是数据库,但提供了一套类数据库的资料储存和处理机制,并采用 HQL (类 SQL )语言对这些资料进行自动化管理和处理。我们可以把 Hive 中海量结构化资料看成一个个的表,而实际上这些资料是分散式储存在 HDFS 中的。 Hive 经过对语句进行解析和转换,最终生成一系列基于 hadoop 的 map/reduce 任务,通过执行这些任务完成资料处理。

Hbase元件:

HBase是一个构建在HDFS上的分散式列储存系统

HBase是基于Google BigTable模型开发的,典型的key/value系统;

HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化资料储存;

从逻辑上讲,HBase将资料按照表、行和列进行储存。

与hadoop一样,Hbase目标主要依靠横向扩充套件,通过不断增加廉价的商用服务器,来增加计算和储存能力。

与HDFS关系图如下:

Sqoop元件:Sqoop 工具是hadoop环境下连线关系数据库(如 :MySQL ,Oracle) ,和hadoop储存系统的桥梁,支援多种关系资料来源和hive,hdfs,hbase的相互汇入。一般情况下,关系资料表存在于线上环境的备份环境,需要每天进行资料汇入,根据每天的资料量而言,sqoop可以全表汇入,对于每天产生的资料量不是很大的情形可以全表汇入,但是sqoop也提供了增量资料汇入的机制。

Flume元件:Flume是Cloudera提供的日志收集系统,Flume支援在日志系统中定制各类资料传送方,用于从网站服务器上收集资料。同时Flume提供对资料进行简单处理,并写到HDFS,HBase等集中储存器中。Flume是一个分散式、可靠、和高可用的海量日志采集、聚合和传输的系统。

应用场景比如我们在做一个电子商务网站,然后我们想从消费使用者中访问点特定的节点区域来分析消费者的行为或者购买意图. 这样我们就可以更加快速的将他想要的推送到界面上,实现这一点,我们需要将获取到的她访问的页面以及点选的产品资料等日志资料资讯收集并移交给Hadoop平台上去分析.而Flume正是帮我们做到这一点。现在流行的内容推送,比如广告定点投放以及新闻私人定制也是基于次,不过不一定是使用FLume,毕竟优秀的产品很多,比如facebook的Scribe,还有Apache新出的另一个明星专案chukwa,还有淘宝Time Tunnel。

结构如下图所示:

ZooKeeper元件:一种集中服务,其用于维护配置资讯,命名,提供分散式同步,以及提供分组服务。

ZooKeeper是一个典型的分散式资料一致性的解决方案,分散式程式可以基于它实现诸如资料释出/订阅、负载均衡、命名服务、分散式协调通知、丛集管理、master选举、分散式锁、分散式伫列等功能。ZooKeeper可以保证如下分散式一致性特性。

顺序一致性:从同一个客户端发起的事务请求,最终将严格按照其发起顺序被应用到ZooKeeper中。

原子性:更新操作要么成功要么失败,没有中间状态

单一检视:不管客户端连线哪一个服务器,客户端看到服务端的资料模型都是一致的(the same view of service)。

可靠性:一旦一个更新成功,那么那就会被持久化,直到客户端用新的更新覆盖这个更新。

实时性:Zookeeper仅保证在一定时间内,客户端最终一定能够从服务端读到最新的资料状态。

Spark元件:Spark是一个Apache专案,它被标榜为“快如闪电的丛集计算”。它拥有一个繁荣的开源社群,并且是目前最活跃的Apache专案之一。

Spark提供了一个更快、更通用的资料处理平台。和Hadoop的MapReduce相比,Spark可以让你的程式在内存中执行时速度提升100倍,或者在磁盘上执行时速度提升10倍。去年,在100 TB Daytona GraySort比赛中,Spark战胜了Hadoop,它只使用了十分之一的机器,但执行速度提升了3倍。Spark也已经成为 针对 PB 级别资料排序的最快的开源引擎。注:MapReduce适合历史资料分析计算,Spark适合实时资料分析计算。

Cloudera:100%开源的商业化Apache Hadoop发行版本(CDH, Cloudera’s Distribution including Apache Hadoop)和相关的元件,其中包括了各类安全高效的企业级资料管理工具,如Hive, HBase,Oozie, Zookeeper等。

Hortonworks:Hortonworks是一家基于Hadoop提供大资料服务的公司,致力于开发Hadoop框架内软件,提升大资料的处理能力。开发了很多增强特性并提交至核心主干,这使得Hadoop能够在包括Windows Server和Azure在内平台上本地执行。

MapR:获取更好的效能和易用性而支援本地Unix档案系统而不是HDFS。提供诸如快照、映象或有状态的故障恢复等高可用性特性。领导著Apache Drill专案,是Google的Dremel的开源实现,目的是在Hadoop资料上执行类似SQL的查询以提供实时处理。

结合上面介绍来一张各元件整体结构图如下:

Hadoop初学者的福利来了!马士兵老师帮你快速入门!

马士兵老师曾在某平台直播大资料课程之Hadoop入门。这是马士兵老师第一次在平台直播授课,很多学员表示:太可惜了,我竟然错过大神的授课!!!

截图2

截图3

第二波福利来袭!为了让没有看到直播的小伙伴共享福利,这次直播授课被录成视讯啦~

最后,柠檬为大家准备了马士兵老师录制的大资料自学教程,希望对大家有所帮助!

最后,如果大家需要这套视讯自学教程的话,只需后台私信柠檬关键词:“资料”就可以免费领取到这套资料啦!

猜你喜欢