《大数据技术原理与技术》复习知识点

 

参考书目:《大数据技术原理与应用》 第二版

出版社:中国工信出版集团丨人民邮电出版社

编著:林子雨(北京大学 博士)

教材官网:dblab.xmu.edu.cn/post/bigdatapractice

---------------

很认真写的期末考试总结,供大家参考!

 

· 大数据的4个“V”数据量大(Volume)数据类型繁多(Variety)处理速度快(Velocity)价值密度低(Value)

· 数据存储单位之间的换算关系bit、Byte、KB、MB、GB、TB、PB、EB、ZB(他陪儿子)。

· 大数据对思维方式的影响全样而非抽样效率而非精确相关而非因果

· 大数据的基本处理流程数据采集存储分析结果呈现

技术层面

功能

数据采集与预处理

利用ETL工具将分布的、异构数据源中的数据,如关系数据、平面数据文件等,抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础;也可以利用日志采集工具(如Flume、Kafka等)把实时采集的数据作为流计算系统的输入,进行实时处理分析。

数据存储和管理

利用分布式文件系统、数据仓库、关系数据库、NoSQL数据库、云数据库等,实现对结构化、半结构化和非结构化海量数据的存储和管理。

数据处理与分析

利用分布式并行编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析;对分析的结果进行可视化呈现,帮助人们更好地理解数据、分析数据。

数据安全和隐私保护

在从大数据中挖掘潜在的巨大商业价值和学术价值的同时,构建隐私数据保护体系和数据安全体系,有效保护个人隐私和数据安全。

 

· 大数据计算模式及其代表产品

大数据计算模式

解决问题

代表产品

批处理计算

针对大规模数据的批量处理

MapReduce、Spark等

流计算

针对流数据的实时计算

Storm、S4、Flume、Streams、Puma、DStream、Super、Mario、银河流数据处理平台等

图计算

针对大规模图结构数据的处理

Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等

查询分析计算

大规模数据的存储管理和查询分析

Dremel、Hive、Cassandra、Impala等

 

· 云计算3种典型的服务模式IaaS(基础设施即服务)PaaS(平台即服务)SaaS(软件即服务)补充:DaaS(数据即服务)

· 云计算的3种类型公有云私有云混合云

· 云计算的关键技术虚拟化分布式存储分布式计算多租户等。

· 云计算的概念:云计算实现了通过网络提供可伸缩的、廉价的分布式计算能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源。云计算代表了以虚拟化技术为核心、以低成本为目标的、动态可扩展的网络应用基础设施,是近年来最有代表性的网络计算技术与模式。

· 物联网的概念:物联网是物物相连的互联网,是互联网的延伸,它利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式连在一起,形成人与物、物与物相连,实现信息化和远程管理控制。

· 物联网的4层架构感知层网络层处理层应用层

· 大数据与云计算、物联网的联系云计算为大数据提供了技术基础,大数据为云计算提供用武之地物联网是大数据的重要来源,大数据技术为物联网数据分析提供支撑云计算为物联网提供海量数据存储能力,物联网为云计算技术提供了广阔的应用空间

· 大数据与云计算、物联网的区别大数据侧重于对海量数据的存储、处理与分析,从海量数据中发现价值,服务于生产和生活云计算本质上旨在整合和优化各种IT资源,并通过网络以服务的方式廉价地提供给用户物联网的发展目标是实现物物相连,应用创新是物联网发展的核心

· Hadoop简介:Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,基于Java语言开发,Hadoop的核心是分布式文件系统(HDFS,Hadoop distributed file system)和MapReduce。HDFS是针对谷歌文件系统(GFS,Google file system)的开源实现,MapReduce是针对谷歌MapReduce的开源实现。

· Hadoop的特性高可靠性高效性高可扩展性高容错性成本低运行在Linux平台上支持多种编程语言

· Hadoop生态系统

Zookeeper

(分布式协作服务)

HBASE

(分布式数据库)

Ambari

(安装、部署、配置和管理工具)

 

Hive

(数据仓库)

Pig

(数据流处理)

Mahout

(数据挖掘库)

Flume

(日志收集)

MapReduce

(分布式计算框架)

YARN

(资源调度和管理框架)

Sqoop

(数据库ETL)

 

HDFS

(分布式文件系统)

 

HDFS分布式文件系统(Hadoop distributed file system)是Hadoop项目的两大核心之一。HDFS具有处理超大数据、流式处理、可以运行在廉价商用服务器上等优点。在设计上就把硬件故障作为一种常态来考虑,可以在部分硬件发生故障的情况下保证文件系统的整体可用性和可靠性。

HBase是一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,MapReduce的核心思想是“分而治之”。

Hive是一个基于Hadoop的数据仓库工具,用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。

Pig是一种数据流语言和运行环境,适用于使用Hadoop和MapReduce平台来查询大型半结构化数据集。

Mahout是Apache软件基金会旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现。

Zookeeper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务(如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等),用于构建分布式应用,减轻分布式应用程序所承担的协调任务,Zookeeper使用Java语言编写,很容易编程接入。

Flume是Cloudera提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统。

Sqoop是SQL-to-Hadoop的缩写,主要用来在Hadoop和关系数据库之间交换数据,可以改进数据的互操作性。

Apache Ambari是一种基于Web的工具,实现数据可视化。

 

· Hadoop的安装步骤:(1)创建Hadoop用户;(2)安装Java;(3)设置SSH登录权限;(4)单机安装配置;(5)伪分布式安装配置。

· 查看Hadoop的版本信息命令:$ ./bin/hadoop version。

· Hadoop伪分布式配置需要修改的文件core-site.xmlhdfs-site.xml

 

<configuration>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>file:/usr/local/hadoop/tmp</value>

        <description>

            Abase for other temporary directories.

        </description>

    </property>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://localhost:9000</value>

    </property>

</configuration>

 

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

    <property>

        <name>dfs.namenode.name.dir</name>

        <value>

            file:/usr/local/hadoop/tmp/dfs/name

        </value>

    </property>

    <property>

        <name>dfs.datanode.data.dir</name>

        <value>

            file:/usr/local/hadoop/tmp/dfs/data

        </value>

    </property>

</configuration>

core-site.xml

hdfs-site.xml

 

 

· 启动Hadoop命令:$ ./bin/start-all.sh。

· Hadoop启动成功的进程:$ jps -->(1)NodeManager;(2)NameNode;(3)SecondaryNameNode;(4)DataNode;(5)ResourceManager。

· 分布式文件系统HDFS的节点分为:主节点(Master Node)/名称节点(NameNode)、从节点(Slave Node)/数据节点(DataNode)。名称节点负责文件和目录的创建、删除和重命名等,同时管理着数据节点和文件块的映射关系,因此客户端只有访问名称节点才能找到请求的文件块所在的位置,进而到相应位置读取所需文件块;数据节点负责数据的存储和读取,并且向名称节点定期发送自己所存储的块的列表,在存储时,由名称节点分配存储位置,然后由客户端把数据直接写入相应数据节点;在读取时,客户端从名称节点获得数据节点和文件块的映射关系,然后就可以到相应位置访问文件块。

· 块:在传统的文件系统中,为了提高磁盘读写效率,一般以数据块为单位。HDFS也同样采用了块的概念,Hadoop 1.0默认的一个块大小是64MB,Hadoop 2.0默认的一个块大小是128MB

· 元数据:元数据就是关于数据的数据。

· 名称节点:在HDFS中,名称节点(NameNode)负责管理分布式文件系统的命名空间(NameSpace),保存了两个核心的数据结构FsImageEditLog。FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据;操作日志文件EditLog中记录了所有针对文件的创建、删除、重命名等操作。

· 第二名称节点:不断变大的EditLog文件虽然不会对系统性能产生显著影响,但是当名称节点重启时,会导致启动过程非常缓慢,为了有效解决EditLog逐渐变大带来的问题,HDFS在设计中采用了第二名称节点(SecondaryNameNode)。第二名称节点具有两个方面的功能:首先,可以完成EditLog与FsImage的合并操作,减小EditLog文件大小,缩短名称节点重启时间;其次,可以作为名称节点的“检查点”,保存名称节点中的元数据信息

· HDFS体系结构:HDFS使用Java语言开发,采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点若干个数据节点,名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。HDFS采用了“一次写入,多次读取”的文件模型。

· HDFS的命名空间:包含目录、文件和块。命名空间管理是指命名空间支持对HDFS中的目录、文件和块做类似文件系统的创建、修改、删除等基本操作,整个HDFS集群中只有一个命名空间。

· HDFS常用命令:hadoop fs [genericOptions] [commandOptions]。

· HDFS的Web地址:http://[NameNodeIP]:50070

· HBase简介:HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。

· HBase与传统关系数据库的对比分析

 

数据类型

数据操作

存储模式

数据索引

数据维护

可伸缩性

Hbase

数据模型

不支持多表连接

基于列模式

一个索引(行键)

保留两种数据

灵活的水平扩展

关系数据库

关系模型

支持多表连接

基于行模式

多个索引

新数据覆盖旧数据

有限

 

· HBase数据模型:HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳

· 大数据经典论文:《GFS》、《MapReduce》、《BigTable》。

· HBase的实现包括3个主要的功能组件:库函数(链接到每个客户端)、1个Master主服务器、多个Region服务器。主服务器Master负责管理和维护HBase表的分区信息,Master会实时监测集群中的Region服务器,把特定的Region分配到可用的Region服务器上。客户端并不是直接从Master主服务器上读取数据,而是在获得Region的存储位置信息后,直接从Region服务器上读取数据。

· HBase的三层结构中各层次的名称和作用

层次

名称

作用

第一层

Zookeeper文件

记录了-ROOT-表的位置信息

第二层

-ROOT-表

记录了.META.表的Region位置信息,-ROOT-表只能有一个Region。通过-ROOT-表就可以访问.META.表中的数据

第三层

.META.表

记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有用户数据表的Region位置信息

 

· NoSQL数据库的类型键值数据库列族数据库文档数据库图数据库

· MapReduce模型简介:MapReduce是谷歌公司的核心计算模型,MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到两个函数:Map和Reduce。在MapReduce中,一个存储在分布式文件系统中的大规模数据集会被切分成许多独立的小数据块(“分而治之”策略),MapReduce设计的一个理念就是“计算向数据靠拢”,Hadoop框架是用Java实现的,但MapReduce应用程序不一定要用Java来写。

· Map和Reduce的模型

函数

输入

输出

说明

Map

<k1, v1>

List(<k2, v2>)

每一个输入的<key, value>会输出一批<key, value>,

<key, value-list>是计算的中间结果

Reduce

<k2, List(v2)>

<k3, v3>

以一系列<key, value-list>中间结果作为输入,执行用户定义的逻辑。输入的中间结果<k2, List(v2)>中的List(v2)表示是一批属于同一个k2的value

 

 

· MapReduce的各个执行阶段:(1)使用InputFormat模块做Map前的预处理;(2)通过InputSplit进行逻辑切分;(3)通过Map函数,输出一系列的<key, value>;(4)通过Shuffle(洗牌)过程,得到<key, value-list>形式的中间结果;(5)Reduce将<key, value-list>形式的中间结果作为输入,执行用户定义的逻辑,输出结果给OutputFormat模块;(6)OutputFormat可视化输出。

· Apache软件基金会3大分布式计算系统HadoopSparkStorm

· Spark简介:Spark是基于内存计算的大数据并行计算框架(MapReduce基于磁盘),用于构建大型的、低延迟的数据分析应用程序,在2014年打破了Hadoop保持的基准排序(SortBenchmark)记录。

· Spark的特点:运行速度快、容易使用、通用性、运行模式多样。

· 数据的2种类型:大数据包括静态数据动态数据(流数据),相应地,大数据计算包括批量计算实时计算

· Pregel:Pregel是一种基于BSP模型实现的并行图处理系统。

· 可视化工具

入门级工具

Excel

信息图表工具

Google Chart API、D3、Visual.ly、Raphaël、Flot、Tableau、大数据魔镜

地图工具

Modest Maps、Leaflet、PolyMaps、OpenLayers、Kartograph

时间线工具

Timetoast、Xtimeline、Timeslide、Dipity

高级分析工具

Processing、NodeBox、R、Weka、Gephi

 

· 三次信息化浪潮

信息化浪潮

发生时间

标志

解决的问题

代表企业

第一次浪潮

1980年前后

个人计算机

信息处理

Intel、AMD、苹果

第二次浪潮

1995年前后

互联网

信息传输

腾讯、雅虎、百度

第三次浪潮

2010年前后

物联网、云计算、大数据

信息爆炸

亚马逊、谷歌、IBM

 

· 数据产生方式的变革:运营式系统阶段、用户原创内容阶段、感知式系统阶段。

· 人类科学研究经历的4种范式:实验、理论、计算、数据。

· 信息科技需要解决的3个核心问题:信息存储、信息传输、信息处理。

 

END.

  • 12
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值