一、大数据的定义
大数据,指的是无法在一定时间范围内常规软件工具进行捕捉、管理和处理数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量,高增长率和多样化的信息资产。
二、能处理大数据的技术
1)Hadoop离线计算
2)spark实时计算
3)storm流式计算
三、Hadoop背景介绍
Apache是一个可靠的,扩展的分布式计算开发软件
Apache Hadoop可以理解为一个框架,它允许使用简单的编程模型来计算分布式的大型数据集合(海量数据)
https://hadoop.apache.org官方网址
四、Hadoop包括模块
1)Hadoop Common:Hadoop的一些模块工具
2)Hadoop分布式系统(HDFS):一种分布式文件系统,它可以提供应用程序数据的高吞吐量的访问
3)Hadoop YARN:作业调度和集群资源管理框架4)Hadoop MapReduce:一种用于能处理大型数据集的基于YARN的系统(分布式计算框架)
上述的每个模块都有自己独立的功能,而模块和模块之间又有一定联系。
五、Hadoop的生产背景
1)雏形开始于2002年的Apache的Nutch,Nutch是有java开发的一个搜索引擎,它包含了所有搜索引擎所需要的全部工具。
2)包括:全文搜索,Web爬虫.Nutch的目的是设计一个发型的全网络的搜索引擎,包括:抓取,索引,查询等功能
3)随着网络的发展碰到了一个瓶颈 -->“如何解决十亿网页的存储和索引问题”
2003年Google发表了一遍技术学术论文谷歌文件系统(GFS),google公司为了存储海量搜索数据设计的专用文件系
统
4)2004年Nutch的创始人, Doug Cutting基于GFS的论文实现了分布式文件存储系统HDFS
ps: 2003-2004年 Google公开了部分GFS和MapReduce的思想细节,以此为基础Doug Cutting等人用了2年的(业余)
5)时间,实现了 DFS和MapReduce机制的一个,微缩版的Nutch
2004年Google又发表了一个计算学术论文MapReduce,MapReduce是一种编程模型用于大规模数据集(大于1TB)的处理和并行计算
6)2005年Doug Cutting又基于MapReduce在Nutch搜索引擎开发了该功能
六、Hadoop在大数据运计算中位置和关系
1.云计算是分布式计算,并行技术,网络计算,多核计算,网络存储,虚拟化,负载均衡等传统的计算技术和互联网融合的一个产物。
2.现阶段云计算的底层量大技术支撑“虚拟化”和“大数据技术”
而Hadoop则是云计算平台服务的解决方案
ps: LaaS(基础设施即服务)PaaS(平台即服务)SaaS(软件即服务)
七、Hadoop案例
1.大型网站web服务器的日志分析:一个大型网站的Web服务器,每5分钟就 收录的点击量就高达800GB左右,峰值点击可以达到900万次,每个隔5分钟将数据装载内存中,高速计算网站的热点url,并将这IE信息反馈前端缓存服务器,以提高缓存命中率。
2.运营商流量分析:每天的 流量数据在2TB-5TB之间拷贝到HDFS上,通过交互式分析引擎模板,能够运行几百个复杂的数据清洗和报表业务,总时间类似的硬件配置的小集群(DB2)要快2-3倍
3.程序交通卡口视频监控信息实时分析:基于流式进行全省范围的交通卡口的视频监控的细腻进行实时分析,警告好统计,可以对全省范围之内未年检和套牌车辆进行 300毫秒左右就可以的结论并实时进行警告。
八、Hadoop生态圈
重要组件:
1.HDFS:分布式文件系统
**2.MapReduce:**分布式计算框架
3.HIVE:基于大数据技术的SQL数据仓库工具(文件系统+运算框架)
4.HBASE:基于Hadoop的分布式海量数据库(NoSQL非关系型数据库,列式存储)
5.Zookeeper:分布式协调服务基础组件
6.Oozie:工作流程调度框架
7.Sqoop:数据导入导出工具
8.Flume:日志数据采集框架
9.Mahout:基于MapReduce/spark/filnk等分布式计算框的机器学习
九、什么是分布式系统?
1.分布式软件系统
分布式软件系统是由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点所组成的系统
分布式系统的出现为了廉价,普通的机器完成单个计算机无法完成计算,存储等任务,其目的就是充分利用计算机来处理更多的任务。
常用的分布式软件系统的案例:
web服务器集群,单台服务器的性能和资源有限,支持的连接并发数也是有上限的,因此必须采用多态服务器集群的方式才能提供并发数据和及三级计算速度
每台web服务器分配一个域名,肯定是同一个域名进入的是同一个入口
十、离线数据的分析流程
web日志数据挖掘
案例分析:
网站点击流量日志数据挖掘系统
需求:
web点击流日志,包含着网站运行的重要信息,通过日志的分析,我们可以知道网站的访问量,哪个网页最有价值,广告转换率,访客的来源信息,访客的终端信息。
数据来源:
获取方式,在页面预处理一段js程序,为了页面想要监听的标签绑定时间,只要用户点击或触发,就可以达到永不的信息,并产生日志文件
数据处理流程:
采集数据–>数据与预处理–>导入HIVE仓库–>ETL–>报表统计–>结果导出到MySql–>数据可视化
1.数据采集:定制开发程序或使用Flume
2.数据预处理:定制开发MapReduce程序运行在Hadoop计算
3.数据仓库计算;基于Hadoop之上使用hive技术完成数仓,数仓中会完成数据清洗ETL
4.数据导出:需要使用sqoop将数据导出
5.数据可视化:由web人员完成
ps:可以使用Oozie工具来辅助开发