Big Data Analysis: Week 1

本文介绍了大数据的4V特性,对比了Scale-up和Scale-out的区别,并重点探讨了分布式计算中的Apache Hadoop和Apache Spark。Spark以其速度和内存计算能力与Hadoop的MapReduce相比具有优势。此外,文章还概述了Hadoop的组件和存储基础架构,如HDFS,以及列存储在大数据处理中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Week 1 大数据分析介绍

大数据的四个维度:4V

Volume(数据量):生成和存储的大量数据(通常按TB或PB的顺序)
Variety(数据形式):所使用的数据类型和数据源的范围,包括非结构化数据
Velocity(数据速度):收集,共享和分析数据的速率-通常是实时流式数据(例如,来自社交媒体)
Veracity(数据的可靠性):数据质量的不确定性(准确性,出处,相关性和一致性)

Scale-up VS Scale-out

Scale-up 纵向扩展:仅在一定程度上增加计算机(即磁盘,内存,处理器)的功能。

Scale-out 横向扩展:使用许多标准计算机,并在其上分发数据和计算。

分布式计算

高性能计算(HPC,放大)

– CPU / GPU密集型问题(AI,3D图形)

Seti@Home

-在你的电脑上下载分析无线电望远镜数据

P2P

去中心化(例如bittorrent)

Hadoop -> 并行处理大型数据集
Spark ->更快,在内存里

Apache Hadoop

1.开源
2.基于HDFS (分布式文件系统)
3.Map/Reduce

Apache Spark vs Hadoop

1.快100倍
2.基于HDFS
3.数据保留在内存
4.不仅仅是Map/Reduce(Volume,velocity,图形形状数据等的集成系统。)

Week 2 :大数据量的存储基础架构

1.什么是Hadoop

(1) 特点

  • 开源框架,用于可靠,可扩展的分布式计算
  • 由Apache Software Foundation开发
    -去中心化的开源开发者社区
    -支持协作的、基于共识的开发过程 **

(2)Hadoop的核心模块**

  • Hadoop Common:支持其他Hadoop模块的通用实用程序。
  • Hadoop Distributed File System (HDFS™):分布式文件系统,提供对应用程序数据的高吞吐量访问
  • Hadoop YARN:作业调度和群集资源管理的框架
  • Hadoop MapReduce:一个基于YARN的系统,用于大数据集的并行处理系统

(3)Hadoop其他相关程序

  • HBase:可扩展的分布式数据库,支持大型表的结构化数据存储。
  • Hive:提供数据汇总和即席查询的数据仓库基础架构
  • Pig:用于并行计算的高级数据流语言和执行框架。
  • Spark:一个快速和通用的Hadoop数据计算引擎。Spark提供了一个简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL、机器学习、流处理和图形计算。
  • ZooKeeper:面向分布式应用程序的高性能协调服务。
2. 分布式系统

**(1)定义:**分布式系统是一个模型,其中位于网络的计算机上的组件通过传递消息来通信和协调其动作。这些组件相互交互以实现一个共同的目标。
(2)特征:

  • 大数据量
  • 将它们存储在分布式系统上
    (3)CAP 理论

Consistency:一致性意味着每个客户端总是拥有相同的数据视图。
Availability可用性意味着所有客户端始终可以读写。
Partition tolerance分区容错性意味着系统可以很好地跨物理网络分区工作。

三者之间只可以实现两者

Google File System(GFS)

GFS 假设

  • 硬件故障很常见(商用硬件)
  • 文件很大(GB / TB)并且数量有限(数百万,而不是数十亿)
  • 两种主要读取类型:大型流读取和小型随机读取
  • 具有将数据追加到文件的顺序写入的工作负载
  • 写入后,很少再修改文件(!= append)
  • 可以随机修改文件,但在GFS中效率不高

GFS不适用于:

  • 低延迟的数据访问(以毫秒为单位)
  • 许多小文件
  • 不断变化的数据

GFS的文件
•单个文件可以包含许多对象
•文件被分为固定大小的块(64MB)–在Hadoop中为128MB
•块服务器将块作为“普通”文件存储在本地磁盘上
•文件在所有块服务器上被复制(默认3次)
•主维护所有文件系统元数据
•要读取/写入数据:客户端与主设备通信(元数据)

HDFS

•受GFS的启发
•用Java编写的可扩展,分布式,可移植文件系统,用于Hadoop框架
•Hadoop应用程序使用的主分布式存储
•HFDS可以是Hadoop集群的一部分,也可以是独立的通用分布式文件系统
• 通过跨多个主机复制数据来确保可靠性和容错能力

一些需要记住的事实

•设计用于在低成本商品硬件上运行的分布式文件系统
•设计用于批处理而不是供用户交互式使用
•文件一次写入多次读取访问模型
•在HDFS上运行的应用程序需要对其数据集进行流访问
•支持 巨大的数据量,数据分为64MB(默认)块,行业惯例为128MB
•高度容错,每个块被复制3次

Apache Spark

•Apache Spark是用于大型数据处理的快速通用集群计算系统
•适用于批处理和实时处理
•Java,Scala,Python和R中的高级API

•Spark SQL–Allows to query structured data
•Spark Streaming –Intended for real-time processing.
•MLlib–Suitable for machine learning tasks
•GraphX–Graph processing56

Spark vs. Hadoop MapReduce
•性能:正常情况下Spark的速度更快,但有一些警告,Spark可以在内存中处理数据; Hadoop MapReduce在执行映射或减少操作后仍会保留回到磁盘上
-Spark通常优于MapReduce,但要做好工作,它通常需要大量内存。 如果还有其他资源需求服务 或无法容纳在内存中,Spark会降级
-MapReduce可以轻松与其他服务一起运行,但性能差异不大,并且可以与原本设计用于1遍作业一起使用
•易于使用:Spark是 易于编程
•数据处理:Spark更通用
•成熟度:Spark成熟,Hadoop MapReduce成熟

Spark抽象概念
RDD:弹性分布式数据集–分布式数据的管理和处理
DAG:直接无环图通过构造由节点和边组成的图来构造执行流
SparkContext –管理Spark集群内的编排
Transformations-“创建新的RDD”,例如,通过过滤数据
Actions—返回RDD以外的内容的操作
Resilient Distributed Dataset (RDD)是Spark的关键架构
•RDD表示数据或数据上的转换
•RDD可以从Hadoop InputFormats(例如HDFS文件),“ parallelize()”数据集创建,也可以通过转换其他RDD(可以堆叠RDD)来创建。
•可以将操作应用于RDD; 操作强制计算并返回值
•Lazy 计算:无需执行任何操作即可计算
•RDD最适合对数据集的所有元素应用相同操作的应用程序-不太适合对共享状态进行异步细粒度更新的应用程序

Column Stores

Relational Database to Scale可伸缩的关系型数据库

ACID准则:

  • Atomicity原子性:交易全有或全无
  • Consistency一致性:仅保存有效数据
  • Isolation独立性:事务不会互相影响
  • Durability耐用性:书面数据不会丢失

大规模系统的需求往往与RDBMS所设计的应用程序不同

–响应时间短且可预测–可伸缩性和弹性(低成本)
–高可用性
–灵活的模式/半结构化数据–地理分布(多个数据中心)–(通常)不需要事务,完整性,复杂的查询

新技术的需求

•BigTable:启动NoSQL行业的内部Google数据库
•动机:建立在搜索引擎后面的Web索引花费的时间太长•需要实时访问PB级数据
•2006年描述BigTable的研究论文-应用于HBase,Cassandra和其他NoSQL数据库 –荣获SIGOPS名人堂奖
•BigTablepowers Gmail,谷歌地图和其他服务•2015年,谷歌使BigTable作为服务可用

Approach: Column Stores

非关系数据库:noSql– [Wikipedia] NoSQL是用于指定在某些方面与经典关系数据库管理系统(RDBMS)不同的数据库管理系统的术语。 这些数据存储区可能不需要固定的表模式,通常避免联接操作,不尝试提供ACID属性,并且通常水平扩展

•行存储:–行连续存储–最佳用于逐行访问(例如SELECT *)

•列存储:–列连续存储–最佳用于属性访问(例如SUM,GROUP BY)

一些现在的系统

CA:RDBMS(MySQL,Postgres,Oracle)
Aster Data,Greenplum, Vertica

AP:Amazon,Dynamo,LinkedIn,Voldemort,Facebook,Cassandra, Simple DB, Couch。

CP: Google Big Table, HBase, Berkelery DB,Memcach DB, Mongo DB

Apache HBase

•“Hadoop数据库是一个分布式的、可扩展的大数据存储。”
•在HDFS上
•数十亿行*数百万列
•非关系型DB / NoSQL
•列存储:列而不是表
•键-值单元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值