大数据背景
- 大数据特征:海量数据规模、多样数据类型、快速数据流转(实时性)-> 数据价值
- 大数据流程:数据采集->数据存储->数据处理/分析/挖掘->可视化
大数据的技术架构挑战
- 对现有的数据库管理技术的挑战
- 经典数据库技术并没有考虑数据的多类别
- 实时性的技术挑战
- 网络架构与数据中心、运维的挑战
大数据系统瓶颈(谷歌对此发表论文提出解决方案)
- 存储容量 : GFS(谷歌文件系统)
- 读写速度:BigTable(在普通PC上进行处理时,普通PC机容易出故障,因此要尽量减少容错)
- 计算效率:MapReduce (减小生产成本、部署在普通PC机进行处理)
Hadoop
- Hadoop是什么:分布式存储+分布式、可拓展计算平台
- Hadoop能做什么:搭建大型数据仓库、PB级数据存储、处理、分析
- Hadoop优势:高可靠性、低成本、搞拓展、成熟的生态圈、囊括了大数据处理的方方面面
- 狭义的Hadoop:是一个适合大数据分布式存储(HDFS)、分布式计算(MapReduce)和资源调度(YARN)的平台
- 广义的Hadoop:指的是hadoop的整个生态系统,Hadoop生态系统是一个很庞大的概念,hadoop是其中一个重要的基础部分,生态系统中的每一个子系统只解决某一个特定的问题域
-
Hadoop包括哪些模块
- hadoop common
- hadoop distributed file system(hdfs)负责数据存储
- hadoop yarn 负责作业调度与集群资源管理
- hadoop MapReduce 基于yarn系统之上可以并行处理大数据计算
核心组成
HDFS分布式文件系统
- 特点:扩展性、容错性、海量数据存储
- 将文件切分成指定大小的数据块以及多副本的存储在多个机器上,默认128M
- 数据切分、多分布、容错等操作对用户是透明的
资源管理系统 Yarn
- 特点:扩展性、容错性、多框架资源统一调度(让多种作业可以跑在 Yarn 上、减少运维成本、由 Yarn 完成整个集群资源管理的调度)
- 负责整个集群资源的管理和调度(一个大作业要占用多少cpu、内存)
MapReduce
- 特点:扩展性、容错性、海量数据的离线处理
Hadoop生态系统
- HDFS:Hadoop 文件系统
- Yarn:资源调度平台、可以让其它框架跑在 Hadoop 上
- MapReduce:分布式计算
- Hive:定义了一种类似于 SQL 语言,通过 Hive 的 SQL 语句借助 Hive 执行引擎可以对 HDFS 上的数据进行计算
- R Conectors:做一些统计学计算
- Mahout:封装了一些机器学习的库
- Pig:通过编写脚本把脚本转化为 MapReduce
- Oozie:工作流调度引擎,让任务A、B、C可以按顺序执行,把所有具有依赖关系的作业配置好,让其可以按顺序执行
- Zookeeper:管理其它框架
- Flume:日志收集框架、收集 nginx、tomcat 等这些日志文件
- Sqoop:运用于关系型数据库与 Hadoop 之间的数据传输
- Hbase:链式存储,针对于结构化数据的、可伸缩可拓展的数据库,大型数据库,可以达到秒级别上亿查询
Hadoop发行版选择
- Apache Hadoop (里面的框架只是解决了单个Hadoop框架的,整个集群配置比较麻烦,容易产生jar包冲突,适合学习)
- CDH:Cloudera Distributed Hadoop (安装简单,升级简单,资源管理设置直接通过页面就可以完成,跟Spark合作开发较好,但非开源的)
- HDP:Hortonworks Data Platform(安装和升级添加节点相对CDH比较费劲、但比原生的好)