快速认识Hadoop生态系统

就目前来说Hadoop已经成为处理大数据的问题的必备的组件,许多的大厂都已经在使用Hadoop软件栈处理自己的问题,那为什么Hadoop技术栈这么流行?

其实不外乎几个原因:首先Hadoop是完全开源的,虽然Oracle也可以搭建集群但是毕竟Oracle不是开源的,其次是当数据量大的时候Oracle的计算也会变得很慢。其次是Hadoop的社区比较活跃,这样解决问题的成本就会很低,因为很可能一些问题早已经被别人解决了。最后是Hadoop已经被很多企业投入使用,有了实战的经验,同时Hadoop有很广泛的大数据解决面。

Hadoop1.0和Hadoop2.0

要学习hadoop首先就要认识Hadoop的版本问题,因为网上很多资料都是很混淆的,有的介绍的其实是Hadoop1.0的问题,有的资料都搞混Hadoop1.0与Hadoop2.0,这对学习很不利。


360截图173705179310989.png
首先我们应该知道Hadoop1.0最大的问题是单点故障问题

Hadoop2.0就是针对Hadoop1.0的问题进行解决与优化。根据上图我们知道,Hadoop1.0只支持单一的计算模型MapReduce,Hadoop2.0加入Yarn资源调度器,可以支持多种类型的计算模型,Yarn同时可以给不同的计算任务进行计算资源的分配。

Hadoop2.0

  • HDFS 主要提供了分布式存储系统,供了高可靠性、高扩展性和高吞吐率的数据存储服务,同时基于对数据的操作基本属于顺序读取的流式读取,并且Hadoop可以承载草大文件的存储。
  • Yarn 主要负责集群的资源的管理,同时也可以进行资源的分配。
  • Mapreduce分布式计算框架,具有易于编程、高容错性和高扩展性等优点.

HDFS

360截图17290506114124152.png

HDFS的基本原理,就是将大文件切分为同样大小的数据块(128MB),进行冗余(3份)存储在不同的机器上。同时调控集群的负载均衡。

如上图所示,在Hadoop2.0中Namenode节点有两个为了解决但节点故障问题,不过现在的备份节点是属于静态绑定,如果两个节点都故障,就不得使用冷启动方式启动。

Yarn

360截图17571120377276.png

了解Hadoop1.0的一定知道其是通过JobTracker和TaskTracker进行任务与资源的分配,但是也存在单节点故障的问题。Yarn目前很复杂,但目前也符合主/从的模式,由上图知,ResourceManager管理着NodeManage从节点。具有良好的扩展性和高可用性。

MapReduce

20170730014216035.png

上图是MapReduce计算的过程,主要分为input,splitting,Mapping,shuffing,Reducing,output五个过程。但是其他复杂过程都被封装了,我们只需要进行编写Mapping和Reducing的过程。

Hadoop生态系统

360截图17900104136343.png

Hive

最初用于解决海量结构化的日志数据统计问题,其是构建在HDFS数据仓库上的,其底层就是MapReduce计算实现。Hive定义了一种HiveQL语言,可以使Hive通过简单的类SQL语句实现MapReduce程序。

SELECT word, COUNT(*) FROM doc  LATERAL VIEW explode(split(text, ' ')) lTable 
as word  GROUP BY word; 

pig

pig与hive类似,但是pig不管数据是不是关系型的,有无元数据,是否嵌套都可以进行操作,而且pig也可以在其他平台上进行使用。
定义了一种数据流语言——Pig Latin

 ① 加载数据 input = load ‘/input/data’ as (line:chararray); 
 ② 将字符串分割成单词 words = foreach input generate                      flatten(TOKENIZE(line)) as word; 
 ③ 对单词进行分组 grpd = group words by word; 
 ④ 统计每组中单词数量 cntd = foreach grpd generate group,               COUNT(words); 
 ⑤ 打印结果 dump cntd; 

Mahout

基于Hadoop的机器学习和数据挖掘的分布 式计算框架
mahout主要包含以下5部分

频繁挖掘模式:挖掘数据中频繁出现的项集。

聚类:将诸如文本、文档之类的数据分成局部相关的组。

分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。

推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物。

频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。

Hbase

4951489-8dee031e87bde745.jpg

Table:表:类似于传统传统数据库中的表

Column Family:列簇:Table在水平方向有一个或者多个

Column Family 组成
一个Column Family中可以由任意多个Column组 成

Row Key: 行键 Table的主键 Table中的记录按照Row Key排序 Timestamp: 时间戳

每行数据均对应一个时间戳 版本号
Client:

包含访问HBase的接口,并维护cache来加快对HBase的访问。说白了,就是用来访问HBase的客户端。

HMaster:

这个东西是HBase的主节点,用来协调Client端应用程序和HRegionServer的关系,管理分配HRegion给HRegionserver服务器。

HRegionServer:

Hbase的从节点,管理当前自己这台服务器上面的HRegion,HRegion是Hbase表的基础单元组建,存储了分布式的表。HRegionserver负责切分在运行过程中变得过大的HRegion。

HRegion:

一个Table可以有多个HRegion,HBase使用rowKey将表水平切割成多个HRegion,每个HRegion都纪录了它的StartKey和EndKey(第一个HRegion的StartKey为空,最后一个HRegion的EndKey为空),由于RowKey是排序的,因而Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。HRegion由HMaster分配到相应的HRegionServer中,然后由HRegionServer负责HRegion的启动和管理,和Client的通信,负责数据的读(使用HDFS)。每个HRegionServer可以同时管理1000个左右的HRegion,出处请参看论文:BigTable(5 Implementation节):Each tablet server manages a set of tablets(typically we have somewhere between ten to a thousand tablets per tablet server))。

MemStore:

它是一个写缓存,数据先WAL[write ahead log](也就是HLog它是一个二进制文件,所有写操作都会先保证将数据写入这个Log文件后,才会真正更新MemStore,最后写入HFile中),在写入MemStore后,由MemStore根据一定的算法将数据Flush到底层HDFS文件中(HFile),一般而言,对于每个HRegion中的每个Column Family来说,有一个自己的MemStore。

StoreFile:

1个HStore,由一个MemStore和0~N个StoreFile组成。

HFile:

用于存储HBase的数据(Cell/KeyValue),在HFile中的数据是按RowKey、Column Family、Column排序,对于相同的数据单元,排序则按照时间戳(Timestamp)倒叙排列。

Zookeeper:

HBase内置有zookeeper,但一般我们会有其他的Zookeeper集群来监管master和regionserver,Zookeeper通过选举,保证任何时候,集群中只有一个活跃的HMaster,HMaster与HRegionServer 启动时会向ZooKeeper注册,存储所有HRegion的寻址入口,实时监控HRegionserver的上线和下线信息。并实时通知给HMaster,存储HBase的schema和table元数据,默认情况下,HBase 管理ZooKeeper 实例,Zookeeper的引入使得HMaster不再是单点故障。一般情况下会启动两个HMaster,非Active的HMaster会定期的和Active HMaster通信以获取其最新状态,从而保证它是实时更新的,因而如果启动了多个HMaster反而增加了Active HMaster的负担。

Zookeeper

Zookeeper本质上是一个MapReduce程序。


20141108213346_932.png

连接Hadoop与传统数据库之间的桥梁 支持多种数据库,包括MySQL、DB2等 插拔式,用户可根据需要支持新的数据库 本质上是一个MapReduce程序 充分利用了MR分布式并行的特点,充分利用MR容错性

Oozie

如何对这些框架和作业进行统一管理和调度?
不同作业之间存在依赖关系(DAG);

周期性作业

定时执行的作业

作业执行状态监控与报警(发邮件、短信等)

360截图17290513287528.png

开源版本

Apache Hadoop

CDH

HDP

建议选择公司发行版,比如CDH或HDP

不用考虑不同软件间的版本匹配

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 简介 HBase是高可靠性,高性能,面向列,可伸缩的分布式存储系统,利用HBase技术可在廉价PC Serve...
    九世的猫阅读 2,179评论 1 6
  • 本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理...
    达微阅读 2,730评论 1 13
  • HBase工作原理学习 1 HBase简介 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用...
    miss幸运阅读 764评论 0 11
  • Hadoop 2.x产生背景 Hadoop 1.0种的HDFS和MR在高可用、扩展性等方面存在问题; HDFS存在...
    陈半仙儿阅读 613评论 0 4
  • I pretended not to notice him in the street while I saw N...
    化真阅读 115评论 0 1