赞
踩
全文PDF版下载链接:
Volume(规模大)、Variety(类型多)、Velocity(速度快)以及Value(价值密度低)
全样而非抽样:不再是依靠分析少量的数据样本,开始关注整体数据中价值。
效率而非绝对精确:不必追求绝对的精确,大数据具备时效性特征,要求大数据处理必须具备高效率,否则就会丧失数据分析的价值。
注重相关关系而非因果关系 : 建立在相关关系分析法基础上的预测是大数据的核心。“因果关系”往往没有那么重要了,更多研究的是“相关关系”。
Iaas:基础设施即服务(买成品回家做披萨):将硬件外包到别的地方
Paas:平台即服务(点外卖披萨):虚拟服务器、操作系统节省在硬件上的费用
Saas:软件即服务(去餐厅吃披萨):通过网页浏览器接入
云计算关键技术:
虚拟化(核心):服务的硬件、软件、平台是根据用户的需求虚拟出来的
分布式存储:单一的服务器进行虚拟化,虚拟化之后以进程为级的结构是分布式的
分布式计算
多租户:同时被多个用户使用
大数据的发展的三大支撑核心技术:物联网技术、云计算技术和人工智能
大数据、云计算、物联网和人工智能之间的关系
是指IT基础设施的交付和使用模式,通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件等)。
是指服务的交付和使用模式,通过网络以按需、易扩展的方式获得所需的服务。
按照部署方式和服务对象将云计算划分为公有云、私有云和混合云三大主要类型。
结构化数据
半结构化数据
非结构化数据(占网络中数据的大多数)
在物理层面:多台物理上独立分布的服务器在网络环境下构成服务器集群,通过该集群上的软件系统为用户提供服务。
在逻辑层面:用户与构建在多台计算机上的软件系统交互。集群的使用以及文件的在集群中各个机器的存储是透明的,用户无需关心分布式环境下各硬件使用的细节。对用户而言,用户感觉服务器集群在(逻辑上)是一台统一的服务器为其服务。
分布式系统体系结构:基础设施层、数据层(核心)、应用层和用户层。
特点:
名称节点负责管理分布式文件系统的命名空间;数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取
两个核心数据结构:Fslmange、Editlog
namenode在修改信息上不适合,secondaryNameNode与namenode并行进行操作,写操作的时候互相切换。
名称节点记录了每个文件中各个块所在的数据节点的位置信息。
FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据
操作日志文件EditLog中记录了所有针对文件的创建、删除、重命名等操作。
数据节点(DataNode)是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中
HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)(如图3-4所示)。名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。每个数据节点的数据实际上是保存在本地Linux文件系统中的
优点:
缺点:
多副本保存优点:
数据存放位置:
为了提高数据可靠性与系统可用性,以及充分利用网络带宽,HDFS采用了以机架(Rack)为基础的数据存放策略
HDFS默认每个数据节点都是在不同的机架上,
缺点:
优点:
数据读取:
数据复制方法:
名称节点出错
数据节点出错!!!
数据出错
读数据:
写数据:
和spark相比,MapReduce执行特点(慢的原因):
设计理念:计算向数据靠拢
分布式并行编程
MAP端shuffle过程:
内存缓冲区是有大小限制的,默认是100MB。当map task的输出结果很多时,就可能会撑爆内存,所以需要在一定条件下将缓冲区中的数据临时写入磁盘,然后重新利用这块缓冲区。这个从内存往磁盘写数据的过程被称为Spill,中文可译为溢写。比例默认是0.8,也就是当缓冲区的数据已经达到阈值(buffer size * spill percent = 100MB * 0.8 = 80MB),溢写线程启动,锁定这80MB的内存,执行溢写过程。Map task的输出结果还可以往剩下的20MB内存中写,互不影响。
reduce端shuffle:
spark core(核心)、spark SQL、spark steaming(专门处理流数据)等组件
提供的运算类型:
RDD特性:容错、减少开销、使用java、类似于string
依赖关系(宽依赖、窄依赖)
加载本地数据:
加载HDFS系统数据
filter():筛选满足func的元素,返回新的数据集
map(func):每个元素传到func中,将结果返回为一个新的数据集
flatMap(func)
动作操作(action)才真正进行转换
统计词频:
DataFrame和RDD的区别
HDFS:数据的分布式存储和读取,提供层次目录的文件组织结构
MapReduce:大规模数据集的并行计算框架
Yarn:客户端向Yarn提交一个应用程序,Yarn负责协调该应用程序在哪里运行、使用多少系统资源(例如CPU、内存、网络带宽和存储)
Zookerper: 提高分布式环境下的可靠性、高可用性
Oozie:调度器
HBase
是一个高可靠、高性能、面向列、可伸缩的分布式数据库
用于存储非结构化和半结构化的数据
建立在HDFS之上
Sqoop
用于在Hive与传统的数据库之间进行数据传递
例如:关系型DB <–> HDFS
Pig
基于HDFS的数据分析框架
基于Pig Latin语言
适用于半结构化数据,海量日志采集、聚合等处理
将上述数据分析请求转换为MapReduce运算
HIVE
存储、查询和分析HDFS数据等操作
通过HQL语言,可以将以上操作转换为MapReduce
适合于网络日志分析,适用于结构化数据
Avro:
Avro是一个数据序列化系统
Mahout
包含一些机器学习的经典算法
包含聚类、分类、关联分析等数据挖掘的方法
Kafka
用于实时数据分析
Flume
提供海量日志采集、聚合和传输
Spark:大规模数据的计算引擎
Scala 语言
支持内存计算,速度比MapReduce快
Tez:一个计算框架
采用了DAG(有向无环图)来组织任务
减少HDFS写入过程,速度比MapReduce快
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。