Hadoop简介

1.Hadoop背景介绍
1.1什么是Hadoop
1.Hadoop是apache旗下的一套开源软件平台
2.Hadoop提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
3.Hadoop的核心组件
- HDFS(分布式文件系统)
- YARN(运算资源调度系统)
- MAPREDUCE(分布式运算编辑框架)
1.2Hadoop产生背景
1. HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等 功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
2. 2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。
——分布式文件系统(GFS),可用于处理海量网页的存储
——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
3. Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到 2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。
1.3Hadoop在大数据,云计算中的位置和关系
1. 云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联 网技术融合发展的产物。借助IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。
2. 现阶段,云计算的两大底层支撑技术为“虚拟化”和“大数据技术”
3. 而HADOOP则是云计算的PaaS层的解决方案之一,并不等同于PaaS,更不等同于云计算本身。
1.4Hadop生态圈以及各组成部分的简介
在这里插入图片描述
重点组件:
- HDFS:分布式文件系统
- MAPREDUCE:分布式运算程序开发框架
- HIVE:基于大数据计数(文件系统+运算框架)的SQL数据仓库工具
- HBASE:基于Hadoop的分布式海量数据库
- ZOOKEEPER:分布式协调服务基础组件
- MAHOUT:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
- OOZIE:工作流调度框架
- SQOOP:数据导入导出工具
- FLUME:日志数据采集框架
2.分布式系统概述
2.1分布式软件系统
1.该软件系统会划分成多个子系统后模块,各自运行在不同机器上,子系统或模块之间通过网络通信进行协作,实现最终的整体功能.
2.比如分布式操作系统,分布式程序设计语言及其编译(解释)系统,分布式文件系统和分布式数据库系统等.
总结:利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统.
2.2分布式应用系统模拟开发
需求:可以实现由主节点将运算任务发往从节点,并将各从节点上的任务启动.
程序清单:APPMaster APPSlave task
程序运行逻辑流程:
在这里插入图片描述

3.离线数据分析流程介绍
在这里插入图片描述
3.1案例分析
网站或APP点击流日志数据挖掘系统:
一般中型的网站(10W的PV以上),每天会产生1G以上Web日志文件。大型或超大型的网站,可能每小时就会产生 10G的数据量。具体来说,比如某电子商务网站,在线团购业务。每日PV数100w,独立IP数5w。用户通常在工作日上午10:00-12:00和下午15:00-18:00访问量最大。日间主要是通过PC端浏览器访问,休息日及夜间通过移动设备访问较多。网站搜索浏量占整个网站的80%,PC用户不足1%的用户会消费,移动用户有5%会消费。
对于日志的这种规模的数据,用HADOOP进行日志分析,是最适合不过的了。
3.2案例需求描述
"Web点击流日志"包含着网站运营很重要的信息,通过日志分析,我们可以指定网站的访问量,哪个网页访问人数最多,哪个网页最有价值,广告转化率,访客的来源信息,访客的终端信息等.
3.3数据来源
本案例的数据主要由用户的点击行为记录
获取方式:在页面预埋一段js程序,为页面上想要监听的标签绑定事件,只要用户点击或移动到标签,即可触发ajax请求到后台servlet程序,用log4j记录下时间信息,从而在web服务器(nginx,tomcat等)上形成不断增长的日志文件.
3.4数据处理流程
3.4.1流程图解析
在这里插入图片描述
- 数据采集:定制开发采集程序,或使用开源框架FLUME
- 数据预处理:定制开大mapreduce程序运行与hadioop集群
- 数据仓库技术:基于hadoop之上的HIVE
- 数据导出:基于hadoop的Sqoop数据导入导出工具
- 数据可视化:定制开发Web程序或使用kettle等产品
- 整个过程的流程调度:hadoop生态圈中的oozie工具或其他类似开源产品
3.4.2项目技术架构图
在这里插入图片描述
3.5项目最终效果
经过完整的数据处理流程后,会周期性输出各类统计指标的报表,在生产实践中,最终需要将这些报表数据以可视化的数据展现出来,本案例采用Web程序来实现数据可视化.比如如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值