Hadoop1.x中,jobtracker 是一个进程,主要负责资源调度和任务分发,只有一个进程负责,负载很高,和从节点进行大量的通信,主要有资源申请,任务分发,执行情况回收以及心跳。
Yarn:资源管理框架,applicationmaster来负责,想跑在yarn上必须实现applicationmaster接口。
Hdfs block备份的策略:三份的存储
Hive 2.0 封装的是spark,hive依赖hdfs和derby,derby不支持多用户链接,所以迁移到mysql
Hive一般使用外表和分区表,因为内表的话,A是B的子表,需要在存储一份,没必要,所以用外表。
大数据处理的三种场景:批处理 实时处理 交互式查询
Spark要一站搞定所有。
Mapreduce,一个split由一个task去处理,数据本地化,task进行分发的时候有本地化,如果不是一个block,一个split包含两个block的话,task分发给谁都不好,另一个都需要数据传输给task,split默认128M,和block大小一样,可以调,
Block 严格按照大小切分, split 不是严格的按照大小切片,一行为单位有可能一部分给 block1, 一部分给 block2,split1 中包含了剩余部分, split2 中就不包含这部分数据Buffer 大小是100M,阈值80%,超过80%才会溢写,溢写之前进行分区、排序,才会溢写,排序是对内存中的排序,这时候这80M会被锁住,这时写入20M,溢写完了之后回合并成大文件,大文件也是分好区的,
Reduce阶段,合并大文件时有分组,每一组调用一次reduce函数,一个reduce函数对应一个输出文件
Scala也是基于jvm的,于java没有区别,只有语法区别,没有性能区别。
Standalone是spark自带的一个资源调度框架,它支持完全分布式
Local:功能在本地的ide idea测试
Yarn hadoop生态圈里面一个资源调度,spark也是可以基于yarn来计算
Mesos:资源调度
Spark想要在yarn上计算,必须实现里面的applicationmaster接口
MR
资源调度任务调度
Spark:
只负责任务的分发维护就可以了 yarn来资源调度。