zoukankan      html  css  js  c++  java
  • Spark on Yarn 集群运行要点

    实验版本:spark-1.6.0-bin-hadoop2.6

    本次实验主要是想在已有的Hadoop集群上使用Spark,无需过多配置

    1、下载&解压到一台使用spark的机器上即可

    2、修改配置文件 vi ./conf/spark-env.sh

    export HADOOP_HOME=/share/apps/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

    3、测试验证spark正常运行

    ./bin/spark-submit --master yarn --name spark-test --class org.apache.spark.examples.SparkPi lib/spark-examples*.jar 10

    部署文章可以参考:

    Spark On YARN 集群安装部署 | Jark's Blog http://www.wuchong.me/blog/2015/04/04/spark-on-yarn-cluster-deploy/

    Spark1.0.x入门指南(spark on yarn, standalone) —核心网络 http://demo.netfoucs.com/can007/article/details/37885555


    Spark 官方提供了三种集群部署方案: Standalone, Mesos, YARN,区别就在于资源管理调度平台不同。

    其中Spark on YARN 支持两种运行模式,分别为yarn-clusteryarn-client。

    yarn-cluster适用于生产环境,yarn-cluster模式下,driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行。

    而yarn-client适用于交互和调试,快速地看到application的输出,yarn-client模式下,Application Master仅仅向YARN请求executor,client会和请求的container通信来调度他们工作,也就是说Client不能离开。

    # --deploy-mode 默认值为client
    ./bin/spark-submit --class path.to.your.Class --master yarn --deploy-mode cluster [options] <app jar> [app options]
    
    
    # debug
    yarn logs -applicationId <app ID>


    # yarn logs -applicationId application_1452166952348_14773
    # spark-submit --master yarn --deploy-mode cluster user_event_withFlow_distributed.py

     推荐阅读系列文章: http://www.iteblog.com/archives/1223


    Q:scala是否必要?

    A:我没有安装,spark可以正常运行。【具体作用求解答】


    Q:分布式环境下使用shell

    A:

    ./bin/spark-shell --master yarn --deploy-mode client

    Q:每次提交运行任务时,都会要上传$SPARK_HOME/lib/spark-examples-1.6.0-hadoop2.6.0.jar到HDFS上,好慢

    A:在HDFS上面建立一个公共的lib库存放目录,每次运行Spark时,如果程序依赖的Jar包存在HDFS中的lib库中,那么不上传该Jar包。

    上传jar包

    hadoop fs -mkdir spark_lib
    hadoop fs -put  /home/manhua/app/spark-1.6.0-bin-hadoop2.6/lib/spark-assembly-1.6.0-hadoop2.6.0.jar spark_lib/spark-assembly-1.6.0-hadoop2.6.0.jar

    修改配置文件

    cd spark/conf
    cp spark-defaults.conf.template spark-defaults.conf
    vi spark-defaults.conf
    
    #add
    spark.yarn.jar=hdfs:///user/jiangmanhua/spark_lib/spark-assembly-1.6.0-hadoop2.6.0.jar

    再次运行,已经不用上传了。

    ./bin/spark-submit --master yarn --name spark-test --class org.apache.spark.examples.SparkPi lib/spark-examples*.jar 10

    该方法理论上同样适用其他的依赖包


    Q:如何自定义格式化输出?

    A:转换使得RDD的数据结构为[(k,v), (k,v)......],然后使用saveAsNewAPIHadoopFile函数保存到文件系统,输出则为k v

    u_acts.saveAsNewAPIHadoopFile('tmp/out20160121-1', "org.apache.hadoop.mapreduce.lib.output.TextOutputFormat",
                                  "org.apache.hadoop.io.Text", "org.apache.hadoop.io.Text")
  • 相关阅读:
    [VBS]遍历XML文档
    [VBS]带参数删除扩展名不是*.h、*.c、*.cpp的全部文件
    [VBS]脚本中的字典、动态数组、队列和堆栈
    [VBS]检测计算机各硬件信息
    [cmd]如何设置 Windows 默认命令行窗口大小和缓冲区大小
    VB.NET and C# 差异
    host-only局域网络
    高并发、死锁、幂等性问题
    elasticsearch简单实现
    记一次504 Gateway Time-out
  • 原文地址:https://www.cnblogs.com/manhua/p/5145225.html
Copyright © 2011-2022 走看看