赞
踩
1V 大量化,体现为数据量大
2V 多样化,主要是结构化和非结构化的数据
3V 处理速度快 数据采集和数据处理速度效率快
4V 价值密度低 主要是有效数据和无用数据的占比
分布式存储 hdfs
分布式计算 spark
跟hadoop框架对比,hadoop存在两个明显缺点,一个是磁盘IO(磁盘读写)开销大,一个延迟性高
Spark优点(相比较于hadoop):
常见的大数据运算框架中,随着迭代次数增加,效率最高的Flink,其次spark,hadoop(Mapreduce)效率最低。
Hadoop适合离线计算(数据仓库批处理,静态数据处理),比如某个电子商城去年营收情况统计
Spark适合实时计算(内存计算,流计算),微博热搜,某个电子商城今年营收情况。
Flink采用的是一行一行的形式对文件进行读取,支持毫秒级别的运算,对sql的支持范围比spark小。
Spark采用数据分片的方式对文件进行读取,支持秒级别的运算,对sql的支持范围比flink大
Spark可以满足以下三种场景的计算:
支持流文件批处理、交互式查询和流数据处理
Spark五个重要的组成
1 Spark Core(主要是RDD编程)
2 Spark SQL
3 Spark Streaming
4 MLLib
5 GraphX
每个组成对应的具体的处理场景
名词解析:
1 RDD:是Resillient Distributed Dataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型
2 DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系
3 Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task
4 应用(Application):用户编写的Spark应用程序
5 任务( Task ):运行在Executor上的工作单元
6 作业( Job ):一个作业包含多个RDD及作用于相应RDD上的各种操作
7阶段( Stage ):是作业的基本调度单位,一个作业(job)会分为多组任务(task),每组任务被称为阶段,或者也被称为任务集合,代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集
一个cluster manager(集群资源管理器)----》多个工作节点(worker node)
一个工作节点(worker node)------》一个执行进程(Executor)
一个执行进程(Executor)------>多个task(任务)
sparkContext作用:
1 资源申请,任务分配以及监控
2 根据RDD依赖关系构建DAG,并交给DAGscheduler解析
3 将taskSet提交给底层taskscheduler
RDD
一个RDD就是一个弹性分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算
RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,不能直接修改,只能基于稳定的物理存储中的数据集创建RDD,或者通过在其他RDD上执行确定的转换操作(如map、join和group by)而创建得到新的RDD
RDD提供了一组丰富的操作以支持常见的数据运算,分为“动作”(Action)和“转换”(Transformation)两种类型
转换是在内存中进行操作的
动作是最后的一个步骤,将内存中保存的结果写入到磁盘(比如hbase中)
RDD
优点:惰性调用、管道化、避免同步等待、不需要保存中间结果、每次操作变得简单
Spark采用RDD以后能够实现高效计算的原因主要在于:
(1)高效的容错性
现有容错机制:数据复制或者记录日志
RDD:血缘关系、重新计算丢失分区、无需回滚系统、重算过程在不同节点之间并行、只记录粗粒度的操作
(2)中间结果持久化到内存,数据在内存中的多个RDD操作之间进行传递,避免了不必要的读写磁盘开销
(3)存放的数据可以是面向对象语言中的对象,避免了不必要的对象序列化和反序列化
宽依赖和窄依赖主要由是否有shuffle决定
宽依赖:一个父RDD对应多个子RDD依赖
窄依赖:一个父RDD对应一个子RDD或者多个父RDD对应一个子RDD的依赖
窄依赖可以进行优化操作,而宽依赖无法进行优化
将窄依赖尽量划分在同一个Stage中,可以实现流水线计算
RDD运行流程主要分成三个阶段
[A]创建RDD对象
[B] SparkContetx对象负责计算RDD之间的依赖关系,构建DAG
[C] DAGScheduler负责将DAG图解析成多个阶段(连续的窄依赖会合并成一个阶段),每个阶段包含了多个task任务,每个task任务会被taskScheduler分发给WorkNode的Executor进程去执行。
cd + 相对路径|绝对路径
以 / 开头的路径,指的是从系统根路径开始
相对路径 以文件夹名字开头,表示相对于当前路径的开始的路径
路径补全快捷键是tab
查看当前文件夹下的子文件或者子文件夹的命令是ll
2 创建一个文件夹
mkdir 文件夹名称
3 重命名文件夹或者文件
mv 文件夹或者文件名字 重命名后的文件夹或者文件名字 (同级情况下是重命名,不同级情况下是移动)
4 删除文件
rm 文件或者文件夹路径 删除对应的文件或者文件夹
5 编辑文件 vi 或者vm 或者 gedit
gedit 文件路径/文件名称 ------->必须要对应要编辑的文件要有相应的权限
启动hadoop命令
start-all.sh
查看hdfs中的文件或者文件夹
hadoop fs -ls /xxx/xxxZ(对应的路径)
上传文件到hdfs中
hadoop fs -put 要上传的本地文件地址 上传后的路径
在hdfs中创建文件夹
hadoop fs -mkdir 要创建的文件夹
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。