spark partition
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相关推荐
- 日志服务(SLS)集成 Spark 流计算实战
前言 日志服务作为一站式的日志的采集与分析平台,提供了各种用户场景的日志采集能力,通过日志服务提供的各种与·与SDK,采集客户端(Logtail),Producer,用户可以非常容易的把各种数据源中的 ...
- spark 为什么总是起200个task
1.美图 默认参数, 如果你输入的数据大于200个partition或者在数据数据的时候加入partition参数就可以改变了 park中有partition的概念,每个partition都会对应一个 ...
- Spark RDD Action 简单用例(一)
collectAsMap(): Map[K, V] 返回key-value对,key是唯一的,如果rdd元素中同一个key对应多个value,则只会保留一个./** * Return the key- ...
- springsecurity原理执行流程_3. Spark原理-执行流程解析
概念 Job 当在RDD上执行Action操作时就会提交一个Job.这个Job会将RDD分为多分,并将每份RDD提交到集群执行. Stage 当一个Job提交后将分解为多个Stage. Task 一个 ...
- Spark Streaming 实时计算在甜橙金融监控系统中的应用、性能优化、任务监控
1 写在前面 目前公司对实时性计算的需要及应用越来越多,本文选取了其中之一的 Spark Streaming 来介绍如何实现高吞吐量并具备容错机制的实时流应用.在甜橙金融监控系统项目中,需要对每天亿万 ...
- Spark GraphX图计算框架原理概述
言之易而为之难,学习大数据之图计算,就是从"浊"中找出"静"的规律,达到"清"的境界:从"安"中找出"生&qu ...
- Greenplum-Spark Connector 介绍
了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站 1. 前序 Greenplum 是一款优秀的 mpp 数据库产品,官方推荐了几种将外部数据写入 Greenplum 方式,包 ...
- 比pgload更快更方便写入大数据量至Greenplum的Greenplum-Spark Connector
前序 Greenplum是目前比较优秀的mpp数据库,其官方推荐了几种将外部数据写入Greenplum方式,包含:通用的Jdbc,pgcopy和pgload以及Pivotal Greenplum-Sp ...
- kafka小白教程从入门到精通
kafka小白教程 kafka介绍 kafka的概念 Kafka(底层源码使用scala语言实现):kafka分布式集群的搭建kafka分布式集群的实操:1)命令行客户端(测试) 主题的CRUD操作 ...
最新文章
- 如何通俗的理解面向对象编程
- PyODPS DataFrame 处理笛卡尔积的几种方式
- java猜拳论文_Java人机猜拳实现的思路及方法实例
- 正则的文字替换和字符串的替换哪个快_JavaScript正则表达式怎么用?
- SSO的几种跨域方案
- 光线暗看不清键盘怎么办
- [javax.validation]验证
- Aiseesoft Data Recovery for mac(专业数据恢复软件)
- 史上最全 SQL 基础知识语法
- 《悲剧性选择》卡拉布雷西 epub+mobi+azw3
- 数字安全证书(CA证书)介绍
- 如何强制关闭进程linux,4种强制关闭Ubuntu中无响应应用程序的方法
- 超硬核万字!web前端学霸笔记,学完就去找工作吧
- 郭靖大侠的IT为学之路
- python_numpy_计算对数收益率和还原问题
- qcqa是什么职位_qa是什么意思工作职责(qa和qc哪个工资更高)
- 基于动画图解常用的机器学习算法
- Mysql使用on update current_timestamp
- centos8设置静态IP
- 微型计算机原理及其接口技术,微机原理及接口技术
热门文章
- Android 4 学习(20):ActionBar
- 批处理通过字符串截取得到文件名
- mysql安装及一些注意点
- mysql数据类型支持比较运_Mysql支持的数据类型(总结)
- ios nstimer实现延时_iOS中定时器NSTimer的使用
- httpsurlconnection 写不进去authorization值_23. 假设检验的时候为什么常写p lt; 0.05,而不写具体的p值?...
- 继电器rc吸收电路取值_继电器的工作原理以及驱动电路解析
- linux 多个select,Linux select()和多个套接字的FIFO排序?
- db2 删除索引_MYSQL进阶——索引
- Zabbix 3.0 部署监控 [二]