本课程的视频教程地址:《 项目整体概述 》
如果本教程能帮助到您,希望您能点击进去观看一下,而且现在注册成为极客学院的会员,验证手机号码和邮箱号码会赠送三天的会员时间,手机端首次也可以领取五天的会员时间哦(即使是购买年会员目前也仅仅是年费260),成为极客学院学习会员可以无限制的下载和观看所有的学院网站的视频,谢谢您的支持!
本节给大家分享的主题如下图所示:
下面我开始为大家分享第二节的内容—— 《 项目整体概述 》, 下面开始今天的分享内容。
从本节开始,我们将进入到Hadoop项目的整体概述一节学习,本节课程为大家介绍的主要知识点有一下内容,如下图所示:
下面,我们首先来看看项目的整体流程,其流程如下图所示:
项目流程可以分为4个模块,他们分别是数据收集,集群存储,分析计算和结果处理。
下面我分别为大家讲解这4个模块的作用。 我们知道,在做统计时,数据源是前提,有了数据源我们才能在此基础上做相应的计算和分析。 收集数据一般都有专门的集群去负责收集这方面的工作。
在完成收集工作后,我们需要将这些文件集中起来,这里存储采用的是分布式文件系统(HDFS)。我们将收集的数据 按一定的规则分类,并存储在指定的HDFS文件系统中。从收集到存储,数据源的准备阶段就算完成了。接着,我们可以对数据源进行相关指标的分析与计算,在Hadoop 2.x 版本后编程模型有了良好的拓展,除了支持MapReduce,还支持其以外的模型,如:Spark。另外,还有Hive,Pig,Tez 等相关技术,来辅助我们完成分析计算这块,所以在分析,计算这块技术选择很多,本课程选用MapReduce和Hive组合来 完成相关工作,其它相关技术大家可以在课下对其做相应的补充学习。
完成分析计算后,我们会得到统计后的结果,这些结果是存放在HDFS文件系统上的,如何去处理这些结果,让这些结果变得 可视化。这就涉及到最后一个模块--结果处理。由于这些结果是存储在HDFS文件系统中的,为了及时响应外界请求,我们需要将HDFS的数据导出到关系型数据库(如:Mysql) 或非关系型数据库(如:HBase)。在导入到关系型数据库时,我们需要借助一个Hadoop组件--Sqoop,这是一款开源的工具, 主要用于在Hadoop与传统的数据库(如:Mysql)间进行数据的传递,可将一个关系型数据库(如:Mysql)中的数据导入到 Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库。在HDFS与HBase之间进行数据传递时,我们可以直接使用 HBase提供的导入与导出工具,这些工具包含在HBase的JAR包中。他们使用MapReduce进行导入导出操作,可以将数据由 HBase导出到HDFS,或者是将HDFS上的数据导出到HBase。最后,我们将数据库中的结果通过Thrift这样的RPC协议,对外提供数据接口。
在项目流程中,我讲过数据收集模块,下面为大家详细讲解这些数据源的获取方式。 如下图所示:
数据源的产生包含:
1.Web日志(如Nginx,JBoss,WebLogic等一些Web容器记录产生的日志信息)
2.SystemLog(系统日志),这部分日志包含服务端应用记录的日志。
3.DB(存于数据库中的数据)
在实际业务中,我们一般采用Flume NG集群来收集分发日志,它是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统, Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理, 并写到各种数据接受方(可定制)的能力,如收集Web日志和SystemLog日志,我们可以分别在Web日志节点和SystemLog节点部署Flume的Agent即可,而DB(如:存在于Mysql数据库中的数据),我们可以使用ETL工程抽取清洗后,在由Agent代理发送到Flume,最后Flume将数据存储到HDFS文件系统上。
关于Flume的集群的收集演示过程,大家可以参考视频进行演示——《 项目整体概述 》
这就是本节的主要内容,主要就对Hadoop项目的整体流程进行概述,对后续学习Hadoop项目实战做一个准备工作。
本课程的视频教程地址:《 项目整体概述 》
如果本教程能帮助到您,希望您能点击进去观看一下,而且现在注册成为极客学院的会员,验证手机号码和邮箱号码会赠送三天的会员时间,手机端首次也可以领取五天的会员时间哦(即使是购买年会员目前也仅仅是年费260),成为极客学院学习会员可以无限制的下载和观看所有的学院网站的视频,谢谢您的支持!