数据
1、数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。
2、数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 在计算机系统中,数据以二进制信息单元 0,1 的形式表示。
大数据
1、指的是传统数据处理应用软件不足以处理(存储和计算)它们的大而复杂的数据集。 最基本的衡量:大小 数据量最小的基本单位是 bit,按顺序给出所有单位:bit、Byte、KB、MB、GB、TB、PB、EB、 ZB、YB、BB、NB、DB
2、据国际数据公司(IDC)统计,全球数据总量预计 2020 年达到 44ZB,中国数据量将达到 8060EB,
占全球数据总量的 18%。
大数据特点
1、容量大: 容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息 新浪微博,3 亿用户,每天上亿条微博 朋友圈,8
亿用户,每天亿级别朋友圈
2、种类多:种类(Variety):数据类型的多样性,包括文本,图片,视频,音频。
结构化数据:可以用二维数据库表来抽象,抽取数据规律。
半结构化数据:介于结构化和非结构化之间,主要指 XML,HTML 等,也可称非结构化。
非结构化数据:不可用二维表抽象,比如图片,图像,音频,视频等。
3、速度快:速度(Velocity):指获得数据的速度以及处理数据的速度
数据的产生呈指数式爆炸式增长
处理数据要求的延时越来越低
4、价值密度高:价值(Value):合理运用大数据,以低成本创造高价值
综合价值大,隐含价值大
单条数据记录无价值,无用数据多
总结:
数据量大,处理难度大,但是蕴含价值也大
数据种类多样,更加个性化,针对不同数据源进行多样化的方式处理,结果更精确
要求对数据进行及时处理,追求更极致更完善的用户体验
数据成为新的资源,掌握数据就掌握了巨大的财富
大数据崛起的根本原因:
1、数据生成的速度呈指数式爆炸增长
2、数据的存储成本指数下降
3、流动数据增加,云端数据增加
4、企业可用数据资源增大
大数据价值
在总数据量相同的情况下,与个别分析独立的小型数据集(Data set)相比,将各个小型数据集合并后进行分析可得出许多额外的信息和数据关系性,可用来政治经济国庆调控、察觉商业趋势、判定研究质量、避免疾病扩散、打击犯罪或测定即时交通路况等,这样的用途正是大型数据集盛行的原因。
Hadoop 的产生背景
1、Hadoop 最早起源于 Nutch。Nutch 的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题 ——如何解决数十亿网页的存储和索引问题。
2、2003 年、2004 年谷歌发表的两篇论文为该问题提供了可行的解决方案
1)分布式文件系统 GFS,可用于处理海量网页的存储
2)分布式计算框架 MapReduce,可用于处理海量网页的索引计算问题
3)分布式数据库 BigTabl,每一张表可以存储上 billions 行和 millions 列
3、Nutch 的开发人员完成了相应的开源实现 HDFS 和 MapReduce,并从 Nutch 中剥离成为独立项目 Hadoop,到 2008 年 1 月,Hadoop 成为 Apache 顶级项目,迎来了它的快速发展期。
什么是 Hadoop?
1、Hadoop 是 Apache 旗下的一套开源软件平台。
2、Hadoop 提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。
3、Hadoop 的核心组件有:
A.Common(基础功能组件)(工具包,RPC 框架)JNDI 和 RPC
B.HDFS(Hadoop Distributed File System 分布式文件系统)
C.YARN(Yet Another Resources Negotiator 运算资源调度系统)
D.MapReduce(Map 和 Reduce 分布式运算编程框架)
4、广义上来说,Hadoop 通常是指一个更广泛的概念–Hadoop 生态圈
官网介绍:http://hadoop.apache.org/
Apache™ Hadoop®的项目开发开源软件可靠,可扩展,分布式计算。 Apache Hadoop软件库是一个允许跨集群用简单的模型对于大数据的分布式处理的框架。它
的目的是扩大从单一服务器到成千上万的机器,提供每个本地计算和存储。而不是依靠硬件来实现高可用性,库本身的是检测和处理在应用程序层的故障,所以提供高可用性服务除了 计算机集群,每一种都可能导致故障。 该项目包括这些模块:
Hadoop Common:基础功能类库支持其他 Hadoop 模块 Hadoop Distributed File
System:一个分布式文件系统,它提供了高通量访问应用程序 数据 Hadoop YARN:一个集群作业调度和资源管理的框架
Hadoop MapReduce:YARN-based 系统并行处理大型数据集。(版本升级以 YARN 做资 源管理器的 Hadoop)其他在 Apache Hadoop 相关项目包括: Ambari™:一个基于 web 的工具配置,和监视 Apache Hadoop集群,包括支持 Hadoop 的 Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper, Oozie, Pig and Sqoop。Ambari 还提供了一个仪表板查看集群健康,如热图和能够有 效看到 MapReduce,Pig 和 Hive 应用的特性来诊断性能特征以用户友好的方式。
Avro™: 数据序列化系统。 Cassandra™:一个没有单点故障可伸缩的多主机数据库。 Chukwa™:一个管理大型分布式系统的数据采集系统。
HBase™:一个可扩展的分布式数据库,支持大型表的结构化数据存储。
Hive™:一个数据仓库基础设施,提供了数据总结和特别查询。
Mahout™:一个可扩展的机器学习和数据挖掘库。
Pig™:一个高级数据流语言和并行计算的执行框架。
Spark™:Hadoop 数据的快速、通用的计算引擎。Spark提供了一个简单的和丰富的编 程模型,支持广泛的应用程序,包括 ETL、机器学习、流处理和图计算。
Tez™:一个广义数据流编程框架,基于Hadoop 的 YARN,它提供了一个功能强大且灵 活的引擎来执行任意 DAG(有向无环图)的任务来处理批处理和交互用例的数据。Tez正在被 Hive™, Pig™ 和其他框架 Hadoop 生态系统,以及其他商业软件(例如 ETL 工 具),以取代 HadoopMapReduce™作为底层执行引擎。
ZooKeeper™:一个高性能的分布式应用程序的协调服务。
Hadoop 在大数据和云计算当中的位置和关系
1、云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。借助 IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。
2、现阶段,云计算的两大底层支撑技术为“虚拟化”和“大数据技术”。
3、而 Hadoop 则是云计算的 PaaS 层的解决方案之一,并不等同于 PaaS,更不等同于云计算本身。
6、Hadoop 技术应用架构
1、Hadoop 应用于数据服务基础平台建设
2、Hadoop 用于用户画像
3、hadoop 用于网站点击流数据挖掘
总结:hadoop 并不会跟某个具体的行业或者某个具体的业务挂钩,它只是一种
用来做海量数据分析处理的工具。
Hadoop 生态圈以及各组成部分的简介
重点组件:
HDFS:Hadoop 的分布式文件存储系统
MapReduce:Hadoop 的分布式程序运算框架,也可以叫做一种编程模型
Hive:基于 Hadoop 的类 SQL 数据仓库工具
HBase:基于 Hadoop 的列式分布式 NoSQL 数据库
ZooKeeper:分布式协调服务组件
Mahout:基于 MapReduce/Flink/Spark 等分布式运算框架的机器学习算法库
Oozie/Azkaban:工作流调度引擎
Sqoop:数据迁入迁出工具
Flume:日志采集工具
分布式系统概述
概念讲解:
1.集群 + 负载均衡
2.分布式
1、 该软件系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或 模块之间通过网络通信进行协作,实现最终的整体功能。
2、 比如分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件
系统和分布式数据库系统等。
总结:利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统。
离线分析系统结构概述
一个应用广泛的数据分析系统: web日志数据挖掘。
需求分析:
1、 案例名称:XX 网/XX app 点击流日志数据挖掘系统
2、 案例需求描述:“Web 点击流日志”包含着网站运营很重要的信息,通过日志分析,我
们可以知道网站的访问量,哪个网页访问人数最多,哪个网页最有价值,广告转化率、
访客的来源信息,访客的终端信息等。
3、 数据来源:本案例的数据主要由用户的点击行为记录
4、 获取方式:在页面预埋一段 js 程序,为页面上想要监听的标签绑定事件,只要用户点击或移动到标签,即可触发 ajax 请求到后台 servlet 程序,用 log4j 记录下事件信息,从而在 web 服务器(nginx、tomcat 等)上形成不断增长的日志文件。
数据处理流程
A、数据采集:定制开发采集程序,或使用开源框架 Flume 或者 LogStash
B、数据预处理:定制开发 MapReduce 程序运行于 Hadoop 集群,或者专门数据收集工具也能进行数据预处理
C、数据仓库技术:基于 Hadoop 之上的 Hive
D、数据导出:基于 Hadoop 的 Sqoop 数据导入导出工具
E、数据可视化:定制开发 web 程序或使用 Kettle 等产品
F、数据统计分析:Hadoop 中的 MapReduce 或者基于 Hadoop 的 Hive,或者 Spark,Flink
G、整个过程的流程调度:Hadoop 生态圈中的 Oozie/Azkaban 工具或其他类似开源产品
项目整体技术架构图