大数据学习笔记
大数据概念
大数据:指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
主要解决,海量数据的存储和海量数据的分析计算问题。
4V:大量、高速(实时性要求高)、多样(数据类型多样)、低价值密度
数据类型:
- 结构化数据:以数据库/文本为主的结构化数据
- 非结构化数据:音频、图片、视频、地理位置信息
- 半结构化数据:html、json
大数据应用:物流仓库、零售、旅游、商品广告推荐、保险、金融、人工智能
大数据部门业务流程分析:
产品人员提需求 --> 数据部门搭建数据平台、分析数据指标 --> 数据可视化
大数据部门组织结构:
Hadoop概念
Hadoop:
- hadoop是一个有Apache基金会所开发的分布式系统基础框架。
- 主要解决,海量数据的存储和海量数据的分析计算问题
- 广义上来说,hadoop通常是指一个更广泛的概念——hadoop生态圈
Hadoop三大发行版本:Apache、Cloudera、Hortonworks
Hadoop的优势(4高):
- 高可靠性:hadoop底层维护多个数据副本,所以即使hadoop某个计算元素或存储出现故障,也不会导致数据丢失。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
- 高容错性:能够自动将失败的任务重新分配。
Hadoop组成(面试重点):
hadoop1.x和hadoop2.x区别:
- 组成不一样
在hadoop1.x时代,hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大,在hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算。
HDFS架构概述
hdfs(hadoop分布式系统架构):
- NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。(管理数据存放在哪里,相当于目录)
- DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。(真正存数据的)
- Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
Yarn架构概述
主要作用是做资源调度。
- ResourceManger(RM)
1)处理客户端请求
2)监控NodeMangaer
3)启动或监控ApplicationMaster
4)资源分配与调度 - NodeManager(NM)
1)管理单个节点上的资源
2)处理来自ResourceManager的命令
3)处理来自ApplicationMaster的命令 - ApplicationMaster(AM)
1)负责数据的切分
2)为应用程序申请资源并分配给内部的任务
3)任务的监控与容错 - Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
- Map阶段并行处理输入数据
- Reduce阶段对Map结果进行汇总
大数据技术生态体系
数据来源层 --> 数据传输层 --> 数据存储层 --> 资源管理层 --> 数据计算层 --> 任务调度层 --> 业务模型层
(数据平台配置和调度Zookeeper)
推荐系统项目框架图
用户请求–>Nginx做负载均衡 --> 发送到Tomcat 收集访问日志 --> 通过flume进行日志收集 --> 存储到HDFS或者HBase --> Storm 实时计算 /Flink 计算/Spark --> 分析结果存储到数据库/文件 --> Tomcat 推荐业务
hadoop运行模式
- 本地运行模式
- 伪分布式模式
- 完全分布式运行模式