1 Hadoop
1.1 a story about Google
- 从搜索引擎爬虫获取海量数据的存储和处理开始 -- Google最先研发出对海量数据的存储和处理技术;
- 谷歌之后把如何实现大数据的方法写成了文章
- 一名Java工程师Doug Cutting参考谷歌的思路, 做了一个开源项目Hadoop;
1.2 分布式的优缺点
- 分布式
- MapReduce: 分布式运算
- HDFS: 分布式存储
- 分布式的好处:
- 可以部署在低廉的普通硬件上;
- 编程方面的简单: Hadoop隐藏了细节, 只要掌握java, 然后学学Hadoop的套路就可以了;
- 分布式的缺点: 只能做分布式运算, 如果数据无法切分同步运算, 比如一个程序必须一步一步完成, 那么性能瓶颈就在那里, 无法通过分布式运算来提高;
1.3 Hadoop形成了生态环境
- nutch爬虫取文本数据; 数据是半结构化数据;
- flume准备日志数据
- Scribe是Facebook开源的日志收集系统. 它能够从各种日志源上收集日志,存储到一个中央存储系统上,以便于进行集中统计分析处理。
- 结构化数据由RDBMS(关系数据库管理系统)管理和存放在数据库,
- sqoop可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中;
- Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.
- Mapreduce是主要操作逻辑和引擎, map是分配, reduce是合并;
- HDFS是分布式文件存储系统
- HBase快速存储, 快速响应查询
- Jaql 是一个 JSON 的查询语言,用于简化 JSON 数据的建模和操作,主要用于分析大规模的半结构化数据。
- Hue是一个可快速开发和调试Hadoop生态系统各种应用的一个基于浏览器的图形化用户接口。
- mahout对数据进行分析; 我们要学习好如何使用好来分析; 提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。
- 大数据分析师的工作: 使用命令语句调用生态资源来分析;
2. 数据分析
2.1 什么是数据分析
- 数据分析是基于某种行业目的, 有目的地进行收集, 整理, 加工和分析数据, 提炼有价值信息的一个过程.
- 有时候上来并不清楚全脉, 做着做着就知道什么有价值了;
- 企业依仗的三份报告: 会计报告, 市场报告, 数据报告;
- 互联网数据分析师工作内容
- 监控: 今天的交易量;
- 定位: 哪部分人喜欢买我们的东西
- 分析: 为什么昨天的销量下降了;
- 报告:为老板或者部门经理出文字和图形报告;
2.2 数据分析的理论基础
- 概率论
-Checked 研究不确定性上的规律性, 是一切的基础; - 数理统计 half-checked
- 从概率论上加上了微积分; 正态分布曲线(高斯). 正态分布曲线就是不确定性上的规律性.
- 不同的模型, 最后就是曲线上的区别;
- 理论来源于概率论和微积分;
- 不用拘泥于公式推导, 只要学1/10, 弄明白原理;
- 数据挖掘 unchecked
- 来源于人工智能领域, 试图模拟人的思维;
- 最常见的方式是分类; 数据的分类很基础很核心;
- 其实数学上的繁杂度没有那么复杂;
2.3 数据分析常用工具
- SQL语言
- 不用弄懂整套, 学1/10, 学select;
- Office Excel 电子计算表 长处是进行运算. 其实大部分中国企业用的是SQL+Excel
- SPSS也是常用的数据分析工具;
- 只需要点点鼠标, 数据分析结果就出来了;
- 比Excel更高级, 但是更简单; 所有公式模型都写好了, 用户只要知道怎么使用这个模型就行了;
- SSAS也是类似SPSS的
- 和SPSS比, 更严谨;
- 同样是8/3, SPSS三位小数, SSAS是八位小数, 多次迭代运算的时候结果会有差别
- R需要编程
- 在数据分析行业也很常用;
2.4 数据分析的6个步骤
- 明确的目标: 要做什么, 为什么
- 数据收集: 根据目标收集, 使用爬虫, 数据库都可以;
- 数据处理: 数据清洗, 转化, 提取, 计算;
- 数据清洗: 按照业务逻辑来清洗; 用一些工具去清洗;
- 看一下抽烟的数量, 筛选; 发现有人一天抽了30包, 很可能是异常的, 检查问卷是否录入错误, 或者删除;
- 用统计工具: 象限图进行清洗; 其实就是画散点图;
- 大数据分析 经常要把日志数据转化成结构化数据, 这时候就要用MapReduce程序来来进行处理;
- 数据转化: 模型需要的数据有时候需要转化;
- 这里很重要, 是技术活, 要熟练和掌握;
- 数据清洗: 按照业务逻辑来清洗; 用一些工具去清洗;
- 数据分析
- 统计分析
- 数据挖掘
- 各种各样的模型;
- 数据展示
- 图表, 表格, 文字等;
- 报告撰写
2.5 数据分析的工作量分布
- 如果有100天的话: 70前三步, 20天做分析, 10天做展现和报告;
- 往往要经历反复; 无论一般数据分析还是大数据都得这6个步骤;
- 大数据的区别: 与统计分析的思想一致, 工具不同;
3. 数据分析与大数据分析的结构
- (1) 描述性分析
- 用8个数描述一万个数;
- excel可以handle
- (2) 数理统计分析
- 基于那么几条曲线;
- 用曲线做估计, 基于概率论和微积分;
- 微积分在这里就是高中的微积分, 就是算面积;
- SPSS就可以做; 生物统计用的多;
- (3) 数据挖掘 (懵逼)
- 关键是四个分类分析的方法:
- 决策树: 在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系;
- 神经网络: 人工神经网络的最大优势是他们能够被用作一个任意函数逼近的机制,那是从观测到的数据“学习;
- 支持向量机: 一个有监督的学习模型,通常用来进行模式识别、分类、以及回归分析。
- 随机森林: 随机森林是一个包含多个决策树的分类器
- 关键是四个分类分析的方法:
- 这四个方法解决的问题: 由历史数据得到一个规则;
- (4) 大数据分析
- mahout
- 聚类, 分类, 协同过滤
- mahout
- 数据分析最重要的是把握其思想;
- 大数据分析用一句话描述: 还是数据分析, 面对的数据比较大, 必须使用新的数据工具Hadoop, 使用的思想仍然是描述性统计,数理统计分析,数据挖掘的思想;
- 记得最终是为了得出一个价值;
- Note: Spark是mahout的发展, 快得多; 但是二者各有千秋. 一小时以内的工作用Spark, 一小时以上的用mahout;
4. 大数据学习思路
大数据分析师的五维度
- 业务知识. 比如在京东工作, 要对京东的电商业务很清楚; 工作中熟悉就好了;
- SQL查询; select, 只是1/10 of SQL知识
- 熟练掌握大数据分析和建模的方法
- 这是思想, 必须必须必须必须掌握;
- 精通一种大数据分析工具; from spark & mahout; 可以处理巨量的数据 (这是真正的真正的大数据)
- 例子: 团队碰到了电力行业, 做用户用电的行为分析, 有55亿行record的多表; 架了服务器, 一分钟就做完了; 用spark查询;
5.* 情商
- 例子: 团队碰到了电力行业, 做用户用电的行为分析, 有55亿行record的多表; 架了服务器, 一分钟就做完了; 用spark查询;
第一阶段: 系统架构
- 大数据概述
- Linux操作系统
- unbuntu系统
- why: hadoop把一万台组成一个硬盘, 必须借助linux系统;
- hadoop单机, 伪分布, 集群搭建;
- note: 我们的重点分析;
第二阶段: Hadoop实战(偏编程)
- HDFS深入剖析
- 掌握数据怎么存储, 读取, 上传, 下载文件;
- java编程基础
- MapReduce基础理论和高级编程实战
- Hbase理论, 基础;
- Hive, impara(两个都是数据库查询提取工具)理论和实战;
第三阶段: 大数据分析案例(偏分析)
- Hadoop和Mahout的大数据分析实战, 做聚类分析;
- Spark基础原理, 集群安装并运行Spark
- SparkSQL原理和数据整合运用
- Hadoop+spark案例分析;
Note: 如果偏工程, 第一阶段, 第二阶段要多花时间; 如果偏分析, 要在第三个阶段多花时间;
- 掌握算法的思想: 这个算法啥时候用, 用了会得到什么样的结果;