孤独海岸线 发表于 2017-12-17 08:38:37

1.Hadoop介绍

1. Hadoop介绍

1.1 什么是Hadoop

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

[*]大众角度
[*]数据量大,海量
[*]技术人员角度
[*]如何存储
[*]如何计算
[*]公司决策层
1.3 分布式

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

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


1.6 国内外应用案例

[*]  HADOOP应用于数据服务基础平台建设

[*]  用于用户画像

[*]  用于网站点击日志数据挖掘

1.7 Hadoop生态圈及组成部分


[*]HDFS:分布式文件系统
[*]MAPREDUCE:分布式运算程序开发框架
[*]HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具
[*]HBASE:基于HADOOP的分布式海量数据库
[*]ZOOKEEPER:分布式协调服务基础组件
[*]Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
[*]Oozie:工作流调度框架
[*]Sqoop:数据导入导出工具
[*]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 数据处理流程图


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

2.6 可视化

2.7 整体架构图
页: [1]
查看完整版本: 1.Hadoop介绍