讲师:董长春
企鹅:1097895173
交流群:942277506,问题答案:董长春
手机:15011003101
大数据
什么是大数据?
简单来说大数据就是海量数据及其处理。
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产(资源)。
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》 [2] 中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。——摘自百度百科
为什么要学习大数据?
拓宽发展面
大数据已经成为基础技术,现在最火的人工智能,物联网等就建立在大数据的基础上。
面向面试,提高认知深度,拓宽知识广度,增加面试筹码,提高薪资。
大数据相关技术
海量数据获取
爬虫(分析别人家的事):Python,java…
日志(分析自己的事):log4j、flume(数据的收集聚集加载)
历史数据(分析以前的事):mysql、oracle、ETL(数据的提取转化加载)
海量数据存储
HDFS(Hive、Hbase、Spark依赖存储都是HDFS)Hadoop distributed file system
S3(亚马逊)
NFS(sun公司)
海量数据清洗
数据清洗没有我们想的那么复杂,方式有很多:
过程中可以用代码直接清洗,flume可以清洗,Hive可以清洗,flink可以清洗。整个流程中几乎每个步骤都可以做到数据的清洗。
海量数据处理
离线数据处理:MapReduce(hadoop的一部分)、Hive(底层是MR,业界主流)、SparkSQL、FlinkDataSet
流式数据处理:Flink(全面高效)、Storm(速度快,亚秒级)、SparkStreaming(速度没有Storm快,但是吞吐量高)
网站日志分析系统
数据收集:JS埋点
传统埋点方式的缺点:
直接嵌入业务系统,代码不好维护,影响业务系统性能。
JS埋点优点:
日志收集系统与业务系统相互独立,互不影响,不占用业务系统性能,能收集到更多更详细的用户信息。
日志数据的提交方式
Get请求:https://www.jd.com/?cu=true&utm_source=baidu-pinzhuan&utm_medium=cpc&utm_campaign=t_288551095_baidupinzhuan&utm_term=0f3d30c8dba7459bb52f2eb5eba8ac7d_0_bd79f916377147b6aef8164d97d9abac
在哪里发起Get请求?
跨域请求
img标签中src实现跨域访问,将该图片插入到真个页面最后,像素1,边框0,用户看不到。
系统架构设计
离线分析:js埋点——日志收集系统(log4j)——flume——HDFS——Hive
实时分析:js埋点——日志收集系统(log4j)——flume——Kafka——Flink
项目搭建
将项目导入指定的eclipse中
部署方式视频连接:
链接:https://pan.baidu.com/s/1jVIrDQGULPEGP0EjBktPKg
提取码:8y5q