Spark笔记(一)

hadoop解决什么问题?
海量数据的存储和计算。 hadoop能传输数据吗?不能。

Spark能解决什么问题?
为了解决hadoop计算慢的问题。
只能解决海量数据的计算,没有存储功能。 一部分基于内存的计算,计算效率比Hadoop快。

hadoop什么时候产生?
04 - 05 年。

Hadoop也支持迭代式计算,只不过效率低 (中间结果落盘)

Spark计算比Hadoop快的原因?
1 Spark能更好的支持迭代式计算, (中间结果不落盘)
2 懒加载,等一会在干活,等的这个时间没闲着,根据DAG做整体的优化,优化完在执行

DAG有向无环图 :给所有数据处理的流程串联起来

Spark运行模式 :
单机模式
local
集群模式
Standalone (Spark自带的调度器) 重要 (大公司)
Yarn 非常重要 (小公司)
Mesos
K8s

Standalone 默认会使用整个集群内所有资源

stdout :标准输出 (System.out.println)
stderr :错误输出 (日志 debug、info、warn、error)

Standalone模式如可控制executor的数量?
–total-executor-cores 8
–executor-cores 2 \

组件冲突改谁?
修改影响最小的。 1 被依赖的少 2 服务级别(客户端 服务端)

Standalone HA 有几个master?
master需要手动启动了。 启动几个就有几个,然后各自向zk注册,由zk帮我们故障转移。

client 和 cluster模式的区别?
driver启动的位置不同。
client :提交命令的这台机器启动
cluster :由Master指定一台机器启动

client 模式 Driver的 stdout 和 stderr打印在控制台
cluster 模式 Driver的 stdout 和 stderr打印在集群日志上了

cluster:命令提交完了,提交命令的客户端就没用了,可以断开连接了

生产环境用 client 还是 cluster? cluster
提交命令的机器在上海, master在北京,如果用 client,那driver启动在上海,上海的 driver 和 北京的 master 要频繁通信

yarn模式要比standalone模式慢,但不是慢在计算上了,是慢在提交到yarn上整个环节。
因为,yarn模式需要从spark提交到yarn上,而standalone用的是自己的调度器自己就可以执行了,不要提交到外部。

class ExecutorLauncher {
public static class main(String[] args) {
ApplicationMaster.main();
}
}

总结 ;
公司用哪种部署模式?
大公司一般用 Standalone
小公司一般用 yarn
测试的时候可以用local模式

Yarn模式为什么只需要部署一台Spark?
因为提交到Yarn上执行,Spark相当于提交命令的客户端

如果一个服务器有多个Spark任务,Web UI端口会滚动 4040 4041…

你可能感兴趣的:(spark,笔记,java)