目录
大数据概述
Hadoop大数据开发平台
资源管理YARN
分布式文件系统HDFS
非关系型数据库NOSQL
分布式数据库HBASE
批处理和MapReduce
数据仓库查询分析和Hive
基于内存计算的Spark
流计算和Flink
图计算和PREGEL
Hadoop常用命令总结
大数据的4V:大量化、快速化、多样化、价值密度低。
大数据对思维方式的影响:颠覆了传统的思维方式——全样而非抽样、效率而非精确、相关而非因果
大数据对科学研究的影响:实验、理论、计算、数据
三次信息化浪潮
第一次——1980——个人计算机为标志——解决信息处理——Intel、AMD、IBM
第二次——1995——互联网——信息传输——雅虎、谷歌
第三次——2010——物联网、云计算和大数据——信息爆炸——亚马逊、美团
信息科技为大数据提供的技术
数据变革阶段
运营式系统阶段、用户原创内容阶段、感知式系统阶段。
大数据发展三个阶段
萌芽期(第一):20世纪90年代至21世纪初——随着数据挖掘理论和数据库技术的逐步成熟,一批商业智能工具和知识管理技术开始被应用。如数据仓库、专家系统、知识管理系统等。
成熟期(第二):21世纪第一个十年——Web2.0应用迅速发展,非结构化数据大量产生,传统处理方法难以应对,带动了大数据技术的快速突破,大数据解决方案逐渐走向成熟,GFS和MapReduce等大数据技术受到追捧,Hadoop平台开始崭露头角。
大规模应用期(第三):2010年以后——大数据应用渗透各行各业,数据驱动决策,信息社会智能化程度大幅提高。
谷歌2004年“三驾马车”处理海量数据问题:GFS分布式文件系统、MapReduce大数据分布式计算框架、NoSQL数据库系统BigTable
大数据两个核心技术:分布式存储、分布式处理
分布式存储
分布式处理
Hadoop:是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,
Hadoop****特性:高扩展、高效性、高可靠、高容错、成本低。
Hadoop****生态:
Hadoop****三种安装模式
单机模式:一台机器上运行。(真正单机)
伪分布式模式:一台机器上模拟一个小集群,依赖SSH,需要初始化文件系统,本地的input文件夹和HDFS的input文件夹都在同一台机器上,并不需要通过网络传输数据。(单机装多机)
完全分布式模式:存储采用分布式文件系统HDFS,而且HDFS的名称结点和数据结点位于不同机器上。(真正多机)
伪分布式安装
伪分布式安装是在一个单机上模拟一个分布式的环境,启动Hadoop时,HDFS和yarn都将启动。其中HDFS包括Namenode、Datanode、SecondaryNamenode。Yarn包括Resourcemanager、Nodemanager。伪分布式具备Hadoop的主要功能。
伪分布式用途:常用于调试程序
Hadoop****的版本
Hadoop2.0****三大主要部分:HDFS、MapReduce、yarn。其中HDFS包括NN Federation和HA;MapReduce运行于Yean之上。
1.0****到2.0版本差异:
yarn——2.0的资源调度框架
MapReduce1.0既是一个计算框架,也是一个资源管理调度框架。到了Hadoop2.0后,其资源调度功能被分离形成Yarn,而被剥离了资源调度功能的MapReduce1.0变为2.0,只拥有计算功能。
总结:Yarn是纯粹的资源调度框架,MR2.0是纯粹的计算框架。
yarn的调度策略
yarn的目标就是实现一个集群多个框架。即在一个集群上部署一个统一的资源调度框架yean,在yean之上可以部署其他各种计算框架。
yarn好处
分布式文件系统
分布式文件系统指通过网络实现文件在多台主机上进行分布式存储的文件系统,一般采用“客户机/服务器”(CS)模式,客户端以特定的通信协议通过网络与服务器建立连接,提出文件访问请求,如GFS和HDFS。
注:分布式文件系统是大集合,HDFS是子集。
HDFS目标
HDFS局限性
HDFS存储的好处
HDFS构造
块(HDFS的核心概念):HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位。
名称结点(NameNode):负责管理分布式文件系统的命名空间,用两个文件保存了两个核心的数据结构(FSImage和EditLog)。
数据结点(DataNode):负责数据的存储和读取,会根据客户端或者是名称结点的调度来进行数据的存储和检索,并且向名称结点定期发送自己所存储的块的列表
第二名称结点(****SecondaryNamenode):用来保存名称结点对HDFS元数据信息的备份,并减少名称结点重启的时间。
注:一个机架上可以放一个名称节点、多个数据节点。
拓展:
块的默认大小是64MB,但是也可以128MB。HDFS中的块比一般普通文件系统的块大很多。之所以设计成一块一块是因为HDFS是面向大规模数据存储,且降低分布式节点的寻址开销。但是块不是越大越好,如果块过大会导致MapReduce才执行一两个任务,这样牺牲了其并行度,发挥不了分布式并行处理的效果。
名称节点也叫主节点。它是整个HDFS集群的管家,可以理解为是数据库中的数据目录。而数据节点才是存储真实数据即元数据。
FSImage用于保存系统文件树(如文件的复制等级、修改和访问时间、访问权限、块大小以及组成文件的块等)。EditLog用于记录对数据进行的操作。
名称节点若出错则根据第二名称结点备份。
名称节点管家会定期检查数据节点是否坏掉,如坏掉则标志位宕机,然后将坏掉的数据节点中的数据迁移到另外一个数据节点上。这种做法有时也可以解决负载均衡问题。
总结:HDFS用块存文件内容,名称结点做管家只有通知功能不具备亲自上手功能,数据节点相当于工人真正在干活,管家中的FSImage用于存储信息在块的位置,EditLog记录操作,EditLog做记录肯定不断变大,第二名称结点则作为备份工人和垃圾回收工人,定期处理不断变大的EditLog。