|
Size: 3179
Comment:
|
Size: 3277
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 55: | Line 55: |
= 今天开始不小心把轮子碰到马路牙子上去,刮伤了提车刚好满一个月 = |
Spark VS Mapreduce
Spark
- 基于内存的计算
- 高性能要求
应用场景
- 高迭达类型的计算
增加了Driver新组件
- Client收到应用请求,首先会拉起Driver,主要是用于Spark的工作流程规划和TASK下发。
RDD算子
- 执行类的算子
- 逻辑操作类的算子
整体流程
- 用户向Client提交应用,Client接收
- Client向RM提交请求,申请应用,RM中的APPMANAGER会返回一个JOB-ID
- CLIENT下发应用,通过对应用到进行解析,我们可以提取并且加载DRIVER,DRIVER一般是运行在CONTAINER中的,和MR中的APPMASTER一样,当然用户亦可指定DRIVER的执行位置
DRIVER启动之后,会联系APPMANAGER,下发APPMASTER程序,APPMANAGER收到请求之后,会向ResourceManager查询当前集群中节点的负载情况,选择其中负载最小值的VM,然后要求其拉起Container,并且将APPMASTER下发到其中运行。
- APPMASTER启动之后,无需注册,直接计划当前的应用需要消耗的资源,DRIVER会根据应用的执行情况,将应用切分为Aplication(个数为1)
DataSet
- 以行为单位的数据
DataSet 特点
- 快,大多数场景下性能优于RDD,Encoders优于Kryo或者Java序列化;避免不必要的格式转化。
- 类型安全:类似于RDD.
DataFrame
- 以列为单位的数据
SparkStreaming with SparkStructuredSreaming with Storm的关于
SparkStructuredSreaming仅供SparkSQL上层使用,它可以将原行细碎化的SQL操作转换为流式操作,使数据安全
HBase
HBase是一个分布式的数据库,其义底层的数据文件是以HDFS文件维护在DataNode上。HBase自身其实不带数据存储功能的。所以必须要依托于HDFS。
- HBase是一个非关系型数据库,所谓非关系型,是指它既可以存储结构化数据和半结构化数据。
- HBase是一个面向于列的数据库,一般的数据库,我们在写入数据之前首先需要设计表的结构,表的结构指的就是列属性。
HBase与RDB对比
HBase读流程
- 用户发送请求到达Client.
- Client向Zookeeper发送元数据请求。ZOOKEEPER收到之后直接反馈。 1.CLIENT根据元数据中存储的REGION路由信息,找到维护相关的数据REGION
HBase写流程
- 用户发送请求到达Client.
- Client向Zookeeper联系,如果是新写,那么大就要求ZOOKEEPER创建元数据分配写空间,如果是改写,那么就读元数据。
ZOOKEEPER反馈之后,下一步用户名会联系REGIONSERVER,如果写新数据之时,未创建新的Region, 则CONTACT元数据所记录的RegionServer, 假如新写入数据量过大,则Hmaster就需要创建新的Region,并且指派某个RegionServer进行管理,那么大Client就需要联系这个新的RegionServer.
CLIENT将数据下发给RegionServer,由RegionServer联系对应的Region写入数据, 先将数据写入内存中,之后在写日志。
