SparkCore-核心概念和集群架构(第一天)
一、核心概念
spark是基于内存的计算框架,是大规模数据处理的统一分析引擎。
WebUI管理端口:8080 RPC通信接口:7077
二、四大特性
- 速度快-中间的计算结果保存在内存,减少了磁盘IO。task以线程的形式运行在进程中。
- 易用性-可以使用scala、java、python和go多语言开发
- 通用性-spark生态圈包括sparksql、sparkstreaming、MLlib、graphx等模块
- 兼容性-spark程序是一个计算逻辑,任务的运行需要计算资源,哪儿有资源,任务就提交到哪里。(standAlone、yarn、mesos三种集群模式)
三、集群架构
四、任务提交模式
- 指定alive活着的master地址
bin/spark-submit \
--class 包名+类名 \
--master spark://ip:port \
--executor-memory N g \
--total-executor-cores N \
jar路径 \
参数1 参数2 ...
- 高可用模式提交任务
bin/spark-submit \
--class 包名+类名 \
--master spark://ip:port1,ip2:port2 \
--executor-memory N g \
--total-executor-cores N \
jar路径 \
参数1 参数2 ...
五、spark-shell使用
- 本地指定master运行,N表示线程数
spark-shell --master local[N]
- 集群模式运行
spark-shell --master spark://ip:port1,ip2:port2 --executor-memory N g --total-executor-cores N
- 读取本地文件
sc.textFile("file://文件路径")
- 读取HDFS上的文件
修改spark-env.sh文件
export HADOOP_CONF_DIR=/hadoop安装路径/etc/hadoop
六、程序开发
添加依赖
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.3</version>