日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spark partition

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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")

PermissionOwnerGroupSizeReplicationBlock SizeName
-rw-r--r--rootsupergroup0 B1128 MB_SUCCESS
-rw-r--r--rootsupergroup8 B1128 MBpart-00000
-rw-r--r--rootsupergroup10 B1128 MBpart-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")

PermissionOwnerGroupSizeReplicationBlock SizeName
-rw-r--r--rootsupergroup0 B1128 MB_SUCCESS
-rw-r--r--rootsupergroup2 B1128 MBpart-00000
-rw-r--r--rootsupergroup4 B1128 MBpart-00001
-rw-r--r--rootsupergroup2 B1128 MBpart-00002
-rw-r--r--rootsupergroup4 B1128 MBpart-00003
-rw-r--r--rootsupergroup2 B1128 MBpart-00004
-rw-r--r--rootsupergroup4 B1128 MBpart-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 IdAddressStateCoresMemory
worker-20171211031717-192.168.0.118-7071192.168.0.118:7071ALIVE2 (2 Used)2.0 GB (1024.0 MB Used)
worker-20171211031718-192.168.0.119-7071192.168.0.119:7071ALIVE2 (2 Used)2.0 GB (1024.0 MB Used)
worker-20171211031718-192.168.0.120-7071192.168.0.120:7071ALIVE2 (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多個文件,其中一個文件大大小為:

PermissionOwnerGroupSizeReplicationBlock SizeName
-rw-r--r--rootsupergroup4.9 KB1128 MBuserLog.txt
-rw-r--r--rootsupergroup284.35 MB1128 MBuserLogBig.txt
-rw-r--r--rootsupergroup51.83 KB1128 MBzookeeper.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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。