Spark之命令

Spark之命令

1.spark运行模式有4种:

a.local 多有用测试,

b. standalone:spark 集群模式,使用spark自己的调度方式。

c. Yarn: 对MapreduceV1升级的经典版本,支持spark。

d.Mesos:类似Yarn的资源调度框架,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行hadoop、spark等框架

 

2.spark local 模式(shell )

Spark local模式(shell运行)
    windows:
       执行spark-shell.cmd

    Linux:
       执行spark-shell

    
     参数指定:

    • MASTER=local[4]  ADD_JARS=code.jar ./spark-shell

    • MASTER=spark://host:port

    • 指定executor内存:export SPARK_MEM=25g
3. spark standalone 模式
图片2
Spark standalone加载数据(shell运行spark-shell)

     读取本地文件:
     var file = sc.textFile("/root/test.txt").collect

     加载远程hdfs文件:
     var files = sc.textFile("hdfs://192.168.2.2:8020/user/superman").collect
     (读取hdfs数据时使用的还是inputFormat)

       standalone WordCount
  sc.textFile("/root/test.txt").flatMap(_.split("\t")).map(x=>(x,1)).reduceByKey(_+_).collect
 
     Spark standalone保存结果集数据

     保存数据到本地:
     result.saveAsTextFile("/root/tmp")   (tmp文件夹必须不存在)

     保存数据到远程hdfs文件:
     result.saveAsTextFile("hdfs://192.168.122.212:8020/user/superman/tmp")
     (tmp文件夹必须不存在)

      设置输出结果集文件数量:
       result.repartition(1).saveAsTextFile

      任务提交
       spark-submit   (推荐)
       其它也可⾏,如sbt run, java -jar  等等
提交:
spark on standalone

spark-submit --class SsdTest /zzy/original-spark2-1.0-SNAPSHOT.jar  hdfs://hadoop13:9000/hello    hdfs://hadoop13:9000/out1
 

Spark on YARN

需要配置hadoop_conf_dir,hadoop_home

任务提交:

(standalone)spark-submit --class SsdTest /zzy/original-spark2-1.0-SNAPSHOT.jar  hdfs://hadoop13:9000/hello    hdfs://hadoop13:9000/out1

命令格式:

spark –submit –class path.your.class  --master yarn-cluster [options] <app jar> [app options]


spark-submit --class you.jar  /
--master yarn-cluster
--driver-memory 4g
--executor-memory 2g
--executor -cores 1
libspark-examples*.jar 
10
 
提交:
 on yarn 
 spark-submit --class  classname    inputyour.jar   input your.text  outpath
 
 spark-submit --class  SaprkOnYarn   original-spark2-1.0-SNAPSHOT.jar   /hello  out2(hadop默认是/usr/root文件夹)
 
 

4.RDD,可恢复分布式数据集,弹性分布式数据集

5.spark 对比mapreduce优势的总结

spark具有所有优点,并不是依靠一个人或者是一个团队的力量,而是站在巨人的肩膀上

1.依靠scala强有力的函数式变成

2.actor通信模式,akka做底层架构

3.MR架构思想

4.数据共享快,省去了mapreduce的shuffle过程中至少三次存入磁盘所带来的额外开销

5.spark的DAG(执行过程首先省城一张有向无环图)做的好,越靠近编译器,就性能越好,优化也更好。

6.任务使用线程启动并执行,比mapreduce使用进程执行任务要有很大优势

7.delay scheduling ---延迟执行

6.Spark Streaming

流失系统的特点:

1.低延迟。

2.高性能

3.分布式

4.可扩展。伴随着业务的发展,我们的数据量、计算量可能会越来越大,所以系统是可扩展的。

5.容错。这是分布式系统中通用问题。一个节点挂了不能影响应用。

对比storm

1.同一套系统,安装spark之后就一切都有了

2.spark 较强的容错能力,storm 使用较广,更稳定

3.storm是用Clojure语言去写的,它的很多扩展都是用java去写的

4.任务执行方面和storm 的区别是:

i.spark streaming 数据进来是一小段时间的RDD,数据进来之后切成一小块一小块进行处理

ii.storms是基于record形式来的,进来的是一个tuple,一条进来就处理一下

5.中间过程实质上就是spark引擎,只不过sparkstreaming 在spark之后引擎之上动了一点手脚:对进入spark引擎之前的数据进行了一个封装,方便进行基于时间片的小批量作业,交给spark 进行计算。

原文地址:https://www.cnblogs.com/chaoren399/p/4761746.html