Python Spark 机器学习与Hadoop 大数据(2) 学习笔记一

1.7大数据定义

大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的特性可归纳为5V:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
特征:
容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息;
种类(Variety):数据类型的多样性;
速度(Velocity):指获得数据的速度;
可变性(Variability):妨碍了处理和有效地管理数据的过程。
真实性(Veracity):数据的质量
复杂性(Complexity):数据量巨大,来源多渠道
价值(value):合理运用大数据,以低成本创造高价值
大数据未来与发展
大数据未来除了将更好的解决社会问题,商业营销问题,科学技术问题,还有一个可预见的趋势是以人为本的大数据方针。人是地球的主宰,大部分的数据都与人有关,所以能很好的使用大数据解决人的问题。比如宛如科幻小说里面描写的一样,建立个人数据中心,将每个人的日常生活习惯,身体特征,社会网络,知识能力,爱好性情。疾病嗜好,情绪波动…换而言之就是记录下人从出生的每一刻每一秒,将思维以外的一切都存储下来,这些数据可以被充分的利用,医疗机构将实时的监测用户的身体健康情况,教育机构更有针对的制定用户喜欢的教育计划,服务行业为用户提供及时健康的符合用户生活习惯的食物和其他服务,社交网络能为你提供合适的交友对象,并为志同道合的人群组织各种聚会活动,政府能在用户的心理健康出现问题进行有效的干预,防范自杀,刑事案件的发生,金融机构能帮助用户进行有效的理财管理,为用户的资金提供更有效的适用建议和规划,道路交通,汽车租赁及运输业可以为用户提供更合适的出行线路和路途的服务安排…

1.8 Hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop的名称来源于原作者孩子的黄色小象玩具,因此黄色小象成为了Hadoop的标志。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
HDFS:Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。可以由单台服务器扩充到数千台服务器
Python Spark 机器学习与Hadoop 大数据(2) 学习笔记一_第1张图片
NameNode服务器负责管理与维护HDFS目录系统并控制文件的读写操作。多台DataNode服务器负责存储数据。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
硬件故障
硬件故障是常态,而不是异常。整个HDFS系统将由数百或数千个存储着文件数据片段的服务器组成。实际上它里面有非常巨大的组成部分,每一个组成部分都很可能出现故障,这就意味着HDFS里的总是有一些部件是失效的,因此,故障的检测和自动快速恢复是HDFS一个很核心的设计目标。
数据访问
运行在HDFS之上的应用程序必须流式地访问它们的数据集,它不是运行在普通文件系统之上的普通程序。HDFS被设计成适合批量处理的,而不是用户交互式的。重点是在数据吞吐量,而不是数据访问的反应时间,POSIX的很多硬性需求对于HDFS应用都是非必须的,去掉POSIX一小部分关键语义可以获得更好的数据吞吐率。
大数据集
运行在HDFS之上的程序有很大量的数据集。典型的HDFS文件大小是GB到TB的级别。所以,HDFS被调整成支持大文件。它应该提供很高的聚合数据带宽,一个集群中支持数百个节点,一个集群中还应该支持千万级别的文件。
简单一致性模型
大部分的HDFS程序对文件操作需要的是一次写多次读取的操作模式。一个文件一旦创建、写入、关闭之后就不需要修改了。这个假定简单化了数据一致的问题,并使高吞吐量的数据访问变得可能。一个Map-Reduce程序或者网络爬虫程序都可以完美地适合这个模型。
跨硬件与软件平台
这种特性有利于Hadoop推广
HDFS文件存储架构图:
Python Spark 机器学习与Hadoop 大数据(2) 学习笔记一_第2张图片
文件分割
当用户以HDFS命令要求存储文件时,系统会将文件切割为多区块(Block),每个区块是64MB。在图中文件被分割A、B、C共3个区块。
区块副本
一个文件区块默认会复制成3分,我们可以在hadoop配置中设置几个副本。
当文件区块损坏时,NameNode会自动寻找位于其他位子DataNode上副本来恢复数据,维持3分的副本策略。
机架感知
在图中,共有Rack1、Rack2、Rack3共3个机架,每个机架共有4台DataNode服务器。
HDFS中具备机架感知功能,以BlockC(区块C)为例,第一份放在Rack1机架节点上,第二份放在同机架的不同节点上,第三份放在不同机架Rack3不同节点DataNode9上。
这样设计的好处是防止数据遗失,任何机架出现故障都仍可以保证恢复数据。

1.9 Hadoop MapReduce介绍

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)“和"Reduce(归约)”,和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
Python Spark 机器学习与Hadoop 大数据(2) 学习笔记一_第3张图片
Map:将任务分割成更小的小任务,由每一台服务器分别运行。
Reduce:将所有服务器的运算结果汇总整理,返回结果。
通过MapReduce方式,可以在上千台机器上并行处理大量数据,减少数据处理时间。
MapReduce版本2.0 YARN
Hadoop的MapReduce架构成为YARN(Yet Another Resource Negotiatior,另一种资源协调者),是效率更高的资源管理核心。
YARN架构图:
Python Spark 机器学习与Hadoop 大数据(2) 学习笔记一_第4张图片
在Client客户端,用户会向Resource Manager请求执行任务
在NameNode会有Resource Manager统筹管理运算请求。
在其他DataNode会有Node Manager负责运行,以及监督每一个任务(task),并向 Resource Manager汇报状态。

1.10结论

我们介绍了机器学习、Spark基本概念、Python开发Spark机器学习与大数据应用、Spark ML Pipeline机器学习流程、大数据定义、Hadoop基本概念、HDFS、MapReduce等基本原理。

你可能感兴趣的:(Python,Spark,Hadoop,机器学习,大数据,大数据,Hadoop,yarn,MapRedue,HDFS)