美文网首页
1spark执行流程

1spark执行流程

作者: barriers | 来源:发表于2020-03-21 18:12 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:1spark执行流程

          本文链接:https://www.haomeiwen.com/subject/knvgdhtx.html