1.Hadoop介绍

1. Hadoop介绍

1.1 什么是Hadoop

  1. 开源的,可靠的,分布式的,可伸缩的
  2. 提供的功能: 利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理

1.2 处理方式

  1. 大众角度
    1. 数据量大,海量
  2. 技术人员角度
    1. 如何存储
    2. 如何计算
  3. 公司决策层

1.3 分布式

  1. 由分布在不同主机上的进程协同在一起,构成整个应用。
  2. 分布式软件系统
    1. 该软件系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或者模块之间通过网络通信进行写协作,实现最终整体功能

1.4 Hadoop产生背景

  1. HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
  2. 2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。
    ——分布式文件系统(GFS),可用于处理海量网页的存储
    ——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
    Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展

1.5 Hadoop现状


1.6 国内外应用案例

  1. HADOOP应用于数据服务基础平台建设

  2. 用于用户画像

  3. 用于网站点击日志数据挖掘

1.7 Hadoop生态圈及组成部分

  1. HDFS:分布式文件系统
  2. MAPREDUCE:分布式运算程序开发框架
  3. HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具
  4. HBASE:基于HADOOP的分布式海量数据库
  5. ZOOKEEPER:分布式协调服务基础组件
  6. Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
  7. Oozie:工作流调度框架
  8. Sqoop:数据导入导出工具
  9. Flume:日志数据采集框架

2. 大数据分析流程

Web日志数据挖掘

2.1 案例名称

一般中型的网站(10W的PV以上),每天会产生1G以上Web日志文件。大型或超大型的网站,可能每小时就会产生10G的数据量。
具体来说,比如某电子商务网站,在线团购业务。每日PV数100w,独立IP数5w。用户通常在工作日上午10:00-12:00和下午15:00-18:00访问量最大。日间主要是通过PC端浏览器访问,休息日及夜间通过移动设备访问较多。网站搜索浏量占整个网站的80%,PC用户不足1%的用户会消费,移动用户有5%会消费。

2.2 需求描述

“Web点击流日志”包含着网站运营很重要的信息,通过日志分析,我们可以知道网站的访问量,哪个网页访问人数最多,哪个网页最有价值,广告转化率、访客的来源信息,访客的终端信息等。

2.3 数据来源

可以采用浏览器潜入指定js程序 监听用户点击事件 通过ajax方式将相关信息吐到后端服务器上写入到服务器日志

2.4 数据处理流程图

  1. 数据采集:定制开发采集程序,或使用开源框架FLUME
  2. 数据预处理:定制开发mapreduce程序运行于hadoop集群
  3. 数据仓库技术:基于hadoop之上的Hive
  4. 数据导出:基于hadoop的sqoop数据导入导出工具
  5. 数据可视化:定制开发web程序或使用kettle等产品
  6. 整个过程的流程调度:hadoop生态圈中的oozie工具或其他类似开源产品

2.5 项目技术架构图

2.6 可视化

2.7 整体架构图

posted @ 2017-06-21 22:34  刘耀  阅读(550)  评论(0编辑  收藏  举报