分享

Hadoop项目案例-用户行为分析之应用概述(二)

yuwenge 发表于 2015-6-16 16:08:12 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 4 28817


1.概述
  本节给大家分享的主题如下图所示:
1.png



2.内容
  从本节开始,我们将进入到Hadoop项目的整体概述一节学习,本节课程为大家介绍的主要知识点有一下内容,如下图所示:
2.png
  下面,我们首先来看看项目的整体流程,其流程如下图所示:
3.png

  项目流程可以分为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协议,对外提供数据接口。


  在项目流程中,我讲过数据收集模块,下面为大家详细讲解这些数据源的获取方式。 如下图所示:


4.png


  数据源的产生包含:
  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文件系统上。



3.结束语
  这就是本节的主要内容,主要就对Hadoop项目的整体流程进行概述,对后续学习Hadoop项目实战做一个准备工作。
  如果本教程能帮助到您,希望您能点击进去观看一下,谢谢您的支持!


来源:哥不是小萝莉

已有(4)人评论

跳转到指定楼层
tang 发表于 2015-6-17 13:53:26
不错呀!!!看起来不错呦

回复

使用道具 举报

xwghfs 发表于 2016-6-25 19:05:57
好东东,值得收藏借鉴呐。。。
回复

使用道具 举报

liuchangzhou20 发表于 2016-7-25 14:28:15
好文章,受益
回复

使用道具 举报

ggggying12 发表于 2017-2-23 15:53:13
非常感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条