1spark执行流程

2020-03-21  本文已影响0人  barriers

spark安装教程http://dblab.xmu.edu.cn/blog/install-hadoop/,问题解决https://www.cnblogs.com/woofwoof/p/10024104.html
Hadoop 2.7分布式集群环境搭建:http://dblab.xmu.edu.cn/blog/1177-2/
spark集群环境搭建:https://www.cnblogs.com/ZJdiem/p/11664634.html

1spark执行流程

执行应用,主节点中的driver节点向集群资源管理器申请资源,申请到资源后启动executeor进程,并且向executor进程发送代码和文件,然后应用程序在executor进程上派发出线程执行任务,最后执行结束后把执行结果返回给driver主控节点提交给用户,或者把他写入hdfs或者写入数据库。

1.1RDD特点

RDD是一个只读的高度受限的共享内存模型,只能在转换的过程当中才能修改,
RDD有两种操作类型,Action动作类型操作,Transformation转换类型操作,都是粗粒度的操作(一次针对rdd全集进行进行转换),不适合对数据库单条记录进行修改。

1.2RDD典型的执行过程

1.RDD读入外部数据源进行创建;
2.RDD经过一系列的转换(Transformation)操作,每一次都会产生不同的RDD供给下一个转换操作使用;
3.最后一个RDD经过动作操作进行转换并输出到外部数据源;
RDD是惰性调用机制,转换类型操作,只记录转换的轨迹,不进行计算;遇到动作操作类型才会进行计算
阶段划分依据:窄依赖(不包含shuffle操作),不划分阶段,一个父RDD分区对应一个子RDD分区或者多个父RDD分区对应一个子RDD分区;可以进行流水线优化
宽依赖(包含shuffle操作),划分成多个阶段,一个父RDD分区对应多个子RDD分区,不能进行流水线优化,宽依赖涉及shuffle操作,有数据的交换操作

1.3RDD运行过程

RDD-SparkContext-DAG图-由DAGScheduler划分生成阶段-任务集合-由TaskScheduler调用任务到WorkNode-Excutor进程-线程-执行任务
若需要使用HDFS中的文件,则在使用spark前需要启动hadoop

1.4pyspark常用参数及其命令

spark的运行模式取决于传递给SparkContext的Master url的值,Master url可以是以下任意一种形式
pyspark --master <master-url>
1.local使用一个Worker线程本地化运行spark(完全不并行)
2.local[]使用逻辑cpu个数数量的线程来本地化运行spark
3.local[K]使用k个Worker线程本地化运行spark(理想情况下,k应该根据运行机器的cpu核数设定)
4.spark://HOST:PORT连接到指定的spark standalone master,默认端口是7077
5.yarn-client 以客户端模式连接YARN集群,集群的位置可以在HADOOP_CONF_DIR环境变量中找到(用于开发环境及调试环境,如果只写yarn默认就是yarn-client)
6.yarn-cluster以集群模式连接YARN集群,集群的位置可以在HADOOP_CONF_DIR环境变量中找到(用于生产环境)
7.mesos://HOST:PORT连接到指定的Mesos集群,默认端口是5050
运行方式:pyspark --master local[
],pyspark --master spark://localhost:7077

1.5启动spark集群

# 启动hadoop集群
cd /usr/local/hadoop/
sbin/start-all.sh
# 启动spark集群
cd /usr/local/spark/
sbin/start-master.sh
sbin/start-slaves.sh

# 在集群中运行jar包
#--master spark://master:7077,master是主机名,如root或者其他,使用sudo vim /etc/hostname查看
cd /usr/local/spark/
bin/spark-submit \
--master spark://master:7077 \
/usr/local/spark/examples/src/main/python/pi.py 2>&1 | grep "Pi is roughly"

# 向hadoop yarn集群管理器提交应用
/home/glzt/software/spark/bin/spark-submit --master yarn-client /home/glzt/software/spark/examples/src/main/python/pi.py
上一篇下一篇

猜你喜欢

热点阅读