spark的内置模块:
一 spark集群部署(yarn)
spark是一种计算框架,spark集群部署有很多种.
- 如果资源是当前单节点提供的,那么就称之为单机模式.
- 如果资源是当前多节点提供的,那么就称为分布式模式.
- 如果资源是由yarn提供的,那么久成为yarn部署环境.
- 如果资源是由spark提供的,那么就称为spark部署环境.(standalone)
在生产环境中,一般是yarn部署环境.(spark on yarn)
如上图所示,将业务代码提交到spark到提交,然后用资源去计算.
bin /spark-submit --class spark.pi --master yarn ./examples/jars/spark-examples.jar 10
上边代码表示使用bin/spark-submit脚本,执行spark.pi类,jar包在./examples/jars/spark-examples.jar路径下,迭代10次.
问题:spark是怎么知道yarn在哪里并且连接到他的?
答:在配置spark的时候,/opt/module/spark/conf/spark-env.sh脚本中配置了:YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop,该目录下的yarn-site.xml中配置了yarn的resource manager在那台机器.
配置历史服务:想查看spark的执行的记录,需要配一个历史服务.
修改spark-default.conf文件:在该文件中添加
spark.eventLog.enabled true
spark.enventLog.dir hdfs://hadoop102:8020/directory日志会保存到hdfs的directory 文件下,所以要先创建这个目录.
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080修改spark-env.sh ,添加如下配置:
重启spark历史服务
- 重新提交任务到yarn上:
- web页面查看日志:http://hadoop103:8088/cluster
1.2spark的两种执行方法:
client和cluster.
二 SparkCore
第一章可以运行成功自带的代码,那我们需要自己写好代码,就可以运行了,那这一章来学习怎么写.
2.1 RDD
RDD概述:RDD叫做弹性分布式数据集,是Spark中最基本的数据抽象.
代码中是一个抽象的类,它代表一个弹性的,不可变的,可分区的,里边元素可并行计算的集合.
2.2.1 数据结构和数据模型
数据结构:采用特殊的结构组织和管理数据.(链表,数组)
数据模型:某些东西特征的浓缩.(车子模型和,房子模型)
RDD是分布式计算模型,它不容纳数据,只是操作数据.
总结:
- RDD一定是一个对象
- RDD一定封装了大量的方法和属性.(用于计算)(注意,这里封装的方法和属性是不太复杂的,类似于公开的包,里边的方法是大家普遍用到的)
- 一定适合分布式数据处理(减小数据规模,并行计算)
2.2.2 RDD数据处理流程
RDD功能类似于字符串的功能,需要把大量的RDD对象组合在一起实现复杂的功能,那是如何组合在一起的?
2.3RDD编程
2.3.1 RDD的创建
在spark中创建RDD的方式有三种:从集合中创建,从外部存储创建,从其他RDD创建.