大数据运营技术与工具:Hadoop生态系统

Posted 李福东频道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据运营技术与工具:Hadoop生态系统相关的知识,希望对你有一定的参考价值。

本文属于李福东《大数据运营》第8章内容的 重构升级 ,了解更多请关注微信公众号:李福东频道

摘要:Hadoop基于分布式文件系统HDFS构建,主要包括离线计算引擎MapReduce、实时计算引擎Storm、内存计算引擎Spark,它们 与Sqoop、Flume、HBase、Hive、Kafka、Kylin、Zepplin、Zookeeper等构成Hadoop生态系统。

Hadoop生态系统

移动互联网让每一个人都有机会成为信息生产者和消费者,因此催生了以海量、实时、多样化为特征的大数据。

毋庸置疑,大数据已经成为新能源和待开垦的新宝藏,应用发展的需要,要求能够以一种动态可扩展的方式存储数据。

为了解决这一问题,以谷歌为代表的互联网公司,发明了分布式系统,从数据的采集、交换、装载、存储、分析、可视化等环节进行了创新。

诸多创新之中,谷歌公司的GFS、MapReduce、BigTable成为大数据技术的先驱代表,随后雅虎、微软、亚马逊、脸书、Twitter等公司,不断将自研产品贡献到开源社区,为大数据技术和产业的发展推波助澜。

GFS(Google FileSystem,谷歌文件系统)是一种可扩展的分布式文件系统,其主要特点是存储文件容量大、便于扩展并且具有良好的容错性。BigTable是构建在GFS之上,是一个压缩的、高性能的、私有的数据存储系统。

MapReduce则相当于GFS的引擎,将海量的、不同媒介形式的数据进行切分(Map),以大数据块等形式存入数据库集群之中,并根据统计需要对不同节点上的数据进行聚合(Reduce)处理。

在谷歌3大经典发明之后,大数据相关的工具产品推陈出新,并陆续加入开源组织Apache(阿帕奇)的大家庭。

目前流行的工具包括:HDFS、YARN、Sqoop、Flume、HBase、Hive、Storm、Kafka、Spark、Kylin、Zepplin等。

HDFS即Hadoop File System,HDFS的实现原理与GFS类似,Hadoop MapReduce与谷歌的MapReduce类似。

HBase是NoSQL数据库,采用了列式数据存取模式,与GFS的BigTable类似,Storm和Spark则解决了海量数据流式计算的问题。

为了解决大数据的管理问题,出现了多种技术框架,为了促进软件技术的发展,出现了许多开源的技术框架,最为典型的就是阿帕奇的Hadoop开源项目。

阿帕奇Hadoop开源项目非常多,一个简单的开源项目框架体系如图8-1-1所示:

大数据运营技术与工具:Hadoop生态系统
图8-1-1 Hadoop开源生态系统

从图8-1-1可以看出,Hadoop生态系统内的工具产品,都有着独特的定位,自下而上相互支持,自左而右相互配合。

(一)分布式文件系统HDFS

HDFS,即Hadoop FileSystem,是一款典型的开源文件系统,HDFS位于非实时离线计算的底层,是分布式数据库的基础。

HDFS与Windows操作系统中的FAT32、NTFS,Linux操作系统的EXT3、EXT4等文件系统相比,它是一种面向大文件的文件系统。

FAT32、NTFS等文件系统数据存取单位为字节,而HDFS的数据存取单位通常是一个数据块(典型大小为64MB)。HDFS采用以数据块为存取单位的方式,可以大大提高数据的存储容量和存取效率,特别适合对大规模数据的离线处理。

在文件的存取方法方面,HDFS采用NameNode存放文件位置信息,NameNode类似于操作系统上的目录和文件名,操作系统通过目录和文件名就可以定位文件所在的位置。

HDFS采用DataNode存放文件数据。当客户端访问文件时,首先通过NameNode来获取文件所在位置,然后根据文件所在位置定位到文件所在的数据节点(DataNode)。

NameNode方式与Linux的文件管理方式类似,Linux借助虚拟文件系统(VFS,VirtualFile System)屏蔽了文件操作细节,用户在文件操作时,无需了解被操作文件是一台打印机还是一个数据文件,也无需了解文件实际的部署位置。

当然,为了保证数据的可靠性,Hadoop会在集群中设置多个副本,这样当主节点或者数据节点出现故障后,就可以重启任务,并将数据访问路径切换到备用节点,保证数据不会丢失。

当HDFS中存入大量的数据后,需要借助MapReduce完成分析工作。Map就是按照统计分析要求,提取数据文件中的统计维度列和统计值列数据,由于原始数据中统计维度列和统计值列是映射的关系,因此称之为Map,Map就是“映射”的意思。

执行Map操作后,需要从统计维度列角度对统计值列数据进行排序(Sort),最后再通过Reduce(聚合)完成统计维度数据项的计算工作,计算动作可以是次数(count)、均值(average)、求和(sum)等。

(二)数据交换工具Sqoop

Sqoop是一款 位于Hadoop和传统关系型数据库之间的数据交换工具,通过Sqoop,可以实现Hadoop与Oracle、mysql等关系型数据库之间数据的导入和导出。负责数据获取的开源框架和工具包括Pig、Hive等。

(三)分布式列式数据库HBase

HBase架构在Hadoop之上,负责大数据的存储。不同于传统关系型数据库,HBase采用(行:键)的方式存取数据,数据定义和操作语言采用NoSQL(Not only SQL),因此又称为NoSQL数据库。NoSQL数据库还包括BigTable、MongoDB等。

(四)大数据操作工具Pig

Pig是一种针对Hadoop数据库进行操作的工具,其实现语言为Pig Latin,如果没有Pig,用户需要编写大量的Java代码,有了Pig工具,用户可以像使用SQL那样存取数据。Pig主要面向大数据应用开发者。

(五)大数据操作工具Hive

Hive是一种比Pig更方便的大数据操作工具,由于其实现方式与SQL非常接近,因此Hive的实现语言称为HiveSQL。

(六)大数据实时计算工具Storm

Hadoop主要适用于大批量离线数据的存取,数据处理的实时性差,而像商品实时推荐、实时风险控制、实时统计等应用对于系统的实时性要求非常高,Storm框架的出现解决了这一问题。

如果说MapReduce模型是“计算”找“数据”,那么Storm的Spout/Bolt模型则正好相反,它采用“数据”找“计算”的方式提高了数据处理的实时性。

Spout就像一个水龙头,将数据喷射到不同的数据处理节点(Bolt),来一批数据就处理一次,大大提高了数据统计的效率。

(七)大数据实时计算工具Spark

Spark由加州大学伯克利分校开发并开源,解决了海量数据流式分析、基于内存的快速迭代运算、机器学习、数据仓库分析等诸多问题。

Spark则是首先将数据导入Spark集群,然后再通过基于内存的管理方式对数据进行快速扫描, 通过迭代算法实现全局I/O操作的最小化,达到提升整体处理性能的目的。

Spark Streaming与Storm的实现思路基本一致。

Spark Streaming首先对“小数据块”进行批量汇聚,然后再分发给“计算”节点,Storm是将“小数据块”实时地分发(Spout)给“计算”节点,是“数据”找“计算”的思路。

Spark框架支持的编程语言包括Scala、Java和Python。

(八)大数据集群管理工具ZooKeeper

ZooKeeper负责分布式计算环境的管理,功能包括配置维护、名字服务、分布式同步、组服务等。

从以上分布式数据库相关开源技术可以看出,开源工具的命名都非常有意思,比如Pig是猪,Hive是蜜蜂,ZooKeeper是动物管理员。

其它工具的名称则是非常形象的动作,比如Sqoop意为猛扑,Storm为风暴,意味着快速,Spark为火,意味着朝气和力量。

(九)其他相关工具

除了开源框架Hadoop家族,要完成一个大数据项目,还需要项目管理软件、代码管理软件等作为支持。

微软的Project是一款商业版的项目管理软件,OpenProj是一款开源的项目管理软件,可以跨不同的操作系统平台,适用于小型工程项目。

代码管理工具包括Git、SourceSafe、SVN等。

Git是一款开源、免费的分布式版本控制系统,可以敏捷高效地处理任何规模的项目,可以在开发者角色中定义主要开发者和非主要开发者,非主要开发者将软件补丁发送给主开发者。

SourceSafe是微软公司的代码管理工具,主要面向微软公司的开发工具,如VisualBasic、Visual C++等。

SVN是Subversion的简称,是一款开源的代码管理与版本控制系统。



本文相关文章






数智萤火虫


愿景目标:致力于为学员提供以大数据、人工智能、数字化转型为核心,从技术到产品,从战略到运营的系统化、高品质知识服务,培养专家型、应用型、实战型人才。


 

服务内容:会按需延伸至企业架构、产品经理、区块链、5G、AR、VR等领域,帮助您掌握最新的理念、思维、方法、技术与工具,与时俱进,创新发展。

 

交付理念:起步于技术、聚焦于产品、深耕于运营、决胜于战略,帮助学员实现从点到线,再从面到体的蜕变式修炼与进阶。

 

交付形式:文章、PPT、音频、视频、微信群、直播、沙龙、答疑、考评等多种形式,多媒体、多触点、线上线下相融合,切实解决工作与学习中遇到困难和问题,提升实战能力。

 

加入知识星球,您将至少获得:

 

1、高薪职位推荐。星球帮助学员存放简历,免费对接优选岗位。

 

2、职业规划指导。帮助学员少走弯路,快速平滑晋级、晋升。

 

3、精品内容尝鲜。每周至少分享1篇原创精编长文。

 

4、PPT干货下载。定期推送最新培训、项目、公开课资料。

 

5、精美礼物赠送。小礼品、红包、作者签名书等。

 

6、在线问题答疑。72小时内答复个性化问题。

 

本星球属于你我共同成长的家园,希望我们有缘相聚,共同拥抱数字化时代的新浪潮、新机遇,不负韶华、共创共赢!


选择精品,高效学习

以上是关于大数据运营技术与工具:Hadoop生态系统的主要内容,如果未能解决你的问题,请参考以下文章

一步一步学习大数据:Hadoop 生态系统与场景

大数据hadoop生态体系之YARN配置和使用(13)

如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是啥关系?

大数据需要掌握哪些技能

大数据之就业岗位

大数据技术#1 大数据技术生态体系