2019独角兽企业重金招聘Python工程师标准>>>

HA方式启动spark

#HA方式启动spark,当Leader,挂掉的时候,standy变为alive
./bin/spark-shell --master spark://xupan001:7070,xupan002:7070

指定分区

#指定两个分区,会生成两个作业task,hdfs上会有两个文件
 val rdd1 = sc.parallelize(Array(1, 2, 3, 4, 5, 6, 7, 8, 9), 2)
rdd1.partitions.length //2
#saveAsTextFile
 rdd1.saveAsTextFile("hdfs://xupan001:8020/user/root/spark/output/partition")

Permission Owner Group Size Replication Block Size Name
-rw-r--r-- root supergroup 0 B 1 128 MB _SUCCESS
-rw-r--r-- root supergroup 8 B 1 128 MB part-00000
-rw-r--r-- root supergroup 10 B 1 128 MB part-00001

cores相关

如果没有指定分区数:文件个数和cores有关,也就是可用核数有关(总核数)
val  rdd1 = sc.parallelize(Array(1, 2, 3, 4, 5, 6, 7, 8, 9))
rdd1.partitions.length //6
rdd1.saveAsTextFile("hdfs://xupan001:8020/user/root/spark/output/partition2")

Permission Owner Group Size Replication Block Size Name
-rw-r--r-- root supergroup 0 B 1 128 MB _SUCCESS
-rw-r--r-- root supergroup 2 B 1 128 MB part-00000
-rw-r--r-- root supergroup 4 B 1 128 MB part-00001
-rw-r--r-- root supergroup 2 B 1 128 MB part-00002
-rw-r--r-- root supergroup 4 B 1 128 MB part-00003
-rw-r--r-- root supergroup 2 B 1 128 MB part-00004
-rw-r--r-- root supergroup 4 B 1 128 MB part-00005

对照基本配置:

  • URL: spark://xupan001:7070
  • REST URL: spark://xupan001:6066 (cluster mode)
  • Alive Workers: 3
  • Cores in use: 6 Total, 6 Used
  • Memory in use: 6.0 GB Total, 3.0 GB Used
  • Applications: 1 Running, 5 Completed
  • Drivers: 0 Running, 0 Completed
  • Status: ALIVE

Workers

Worker Id Address State Cores Memory
worker-20171211031717-192.168.0.118-7071 192.168.0.118:7071 ALIVE 2 (2 Used) 2.0 GB (1024.0 MB Used)
worker-20171211031718-192.168.0.119-7071 192.168.0.119:7071 ALIVE 2 (2 Used) 2.0 GB (1024.0 MB Used)
worker-20171211031718-192.168.0.120-7071 192.168.0.120:7071 ALIVE 2 (2 Used) 2.0 GB (1024.0 MB Used)

======================================================

hdfs文件大小相关

从hdfs上读取文件如果没有指定分区,默认为2个分区
scala> val rdd = sc.textFile("hdfs://xupan001:8020/user/root/spark/input/zookeeper.out")
scala> rdd.partitions.length
res3: Int = 2

/*** Default min number of partitions for Hadoop RDDs when not given by user* Notice that we use math.min so the "defaultMinPartitions" cannot be higher than 2.* The reasons for this are discussed in https://github.com/mesos/spark/pull/718*/
def defaultMinPartitions: Int = math.min(defaultParallelism, 2)

如果hdfs文件很大,则会根据 文件Size/128个partition,如果余数不足128则Size/128 + 1个partition

总结:以上是我在spark2.2.0上做的测试:
1.如果是Driver端的Scala集合并行化创建RDD,并且没有指定RDD的分区,RDD的分区数就是Application分配的总cores数
2:如果是hdfs文件系统的方式读取数据

2.1一个文件文件的大小小于128M
scala> val rdd = sc.textFile("hdfs://xupan001:8020/user/root/spark/input/zookeeper.out",1)
scala> rdd.partitions.length
res0: Int = 1

2.2多个文件,其中一个文件大大小为:

Permission Owner Group Size Replication Block Size Name
-rw-r--r-- root supergroup 4.9 KB 1 128 MB userLog.txt
-rw-r--r-- root supergroup 284.35 MB 1 128 MB userLogBig.txt
-rw-r--r-- root supergroup 51.83 KB 1 128 MB zookeeper.out

scala> val rdd = sc.textFile("hdfs://xupan001:8020/user/root/spark/input")
rdd: org.apache.spark.rdd.RDD[String] = hdfs://xupan001:8020/user/root/spark/input MapPartitionsRDD[3] at textFile at <console>:24

scala> rdd.partitions.length
res1: Int = 5

userLogBig.txt会有3个block

转载于:https://my.oschina.net/u/2253438/blog/1590655

spark partition相关推荐

  1. 日志服务(SLS)集成 Spark 流计算实战

    前言 日志服务作为一站式的日志的采集与分析平台,提供了各种用户场景的日志采集能力,通过日志服务提供的各种与·与SDK,采集客户端(Logtail),Producer,用户可以非常容易的把各种数据源中的 ...

  2. spark 为什么总是起200个task

    1.美图 默认参数, 如果你输入的数据大于200个partition或者在数据数据的时候加入partition参数就可以改变了 park中有partition的概念,每个partition都会对应一个 ...

  3. Spark RDD Action 简单用例(一)

    collectAsMap(): Map[K, V] 返回key-value对,key是唯一的,如果rdd元素中同一个key对应多个value,则只会保留一个./** * Return the key- ...

  4. springsecurity原理执行流程_3. Spark原理-执行流程解析

    概念 Job 当在RDD上执行Action操作时就会提交一个Job.这个Job会将RDD分为多分,并将每份RDD提交到集群执行. Stage 当一个Job提交后将分解为多个Stage. Task 一个 ...

  5. Spark Streaming 实时计算在甜橙金融监控系统中的应用、性能优化、任务监控

    1 写在前面 目前公司对实时性计算的需要及应用越来越多,本文选取了其中之一的 Spark Streaming 来介绍如何实现高吞吐量并具备容错机制的实时流应用.在甜橙金融监控系统项目中,需要对每天亿万 ...

  6. Spark GraphX图计算框架原理概述

    言之易而为之难,学习大数据之图计算,就是从"浊"中找出"静"的规律,达到"清"的境界:从"安"中找出"生&qu ...

  7. Greenplum-Spark Connector 介绍

    了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站 1. 前序 Greenplum 是一款优秀的 mpp 数据库产品,官方推荐了几种将外部数据写入 Greenplum 方式,包 ...

  8. 比pgload更快更方便写入大数据量至Greenplum的Greenplum-Spark Connector

    前序 Greenplum是目前比较优秀的mpp数据库,其官方推荐了几种将外部数据写入Greenplum方式,包含:通用的Jdbc,pgcopy和pgload以及Pivotal Greenplum-Sp ...

  9. kafka小白教程从入门到精通

    kafka小白教程 kafka介绍 kafka的概念 Kafka(底层源码使用scala语言实现):kafka分布式集群的搭建kafka分布式集群的实操:1)命令行客户端(测试) 主题的CRUD操作 ...

最新文章

  1. 如何通俗的理解面向对象编程
  2. PyODPS DataFrame 处理笛卡尔积的几种方式
  3. java猜拳论文_Java人机猜拳实现的思路及方法实例
  4. 正则的文字替换和字符串的替换哪个快_JavaScript正则表达式怎么用?
  5. SSO的几种跨域方案
  6. 光线暗看不清键盘怎么办
  7. [javax.validation]验证
  8. Aiseesoft Data Recovery for mac(专业数据恢复软件)
  9. 史上最全 SQL 基础知识语法
  10. 《悲剧性选择》卡拉布雷西 epub+mobi+azw3
  11. 数字安全证书(CA证书)介绍
  12. 如何强制关闭进程linux,4种强制关闭Ubuntu中无响应应用程序的方法
  13. 超硬核万字!web前端学霸笔记,学完就去找工作吧
  14. 郭靖大侠的IT为学之路
  15. python_numpy_计算对数收益率和还原问题
  16. qcqa是什么职位_qa是什么意思工作职责(qa和qc哪个工资更高)
  17. 基于动画图解常用的机器学习算法
  18. Mysql使用on update current_timestamp
  19. centos8设置静态IP
  20. 微型计算机原理及其接口技术,微机原理及接口技术

热门文章

  1. Android 4 学习(20):ActionBar
  2. 批处理通过字符串截取得到文件名
  3. mysql安装及一些注意点
  4. mysql数据类型支持比较运_Mysql支持的数据类型(总结)
  5. ios nstimer实现延时_iOS中定时器NSTimer的使用
  6. httpsurlconnection 写不进去authorization值_23. 假设检验的时候为什么常写p lt; 0.05,而不写具体的p值?...
  7. 继电器rc吸收电路取值_继电器的工作原理以及驱动电路解析
  8. linux 多个select,Linux select()和多个套接字的FIFO排序?
  9. db2 删除索引_MYSQL进阶——索引
  10. Zabbix 3.0 部署监控 [二]