import org.apache.spark._
import scala.collection.mutable._
import scala.collection.mutable.HashMap
import org.apache.spark.Partitioner
import java.net.URL
val sc = SparkContext.getOrCreate
val rdd1 = sc.textFile("/home/hadoop/my.data")
val rdd2 = rdd1.map(x => {
val url = x.split(",")(0)
val urls = new URL(url)
val host = urls.getHost
host
}).distinct().collect
val rdd3 = rdd1.map(x => {
val urls = new URL(x.split(",")(0))
val host = urls.getHost
(x.split(",")(0), x)
})
val rdd4 = rdd3.partitionBy(new HOSTpartitioner(rdd2))
rdd4.saveAsTextFile("/home/hadoop/par")
rdd4.saveAsHadoopFile("/home/hadoop/partit",classOf[Text],classOf[Text],classOf[TextOutputFormat[Text,Text]])
rdd1.map(x => x.split(",")(0)).collect
class HOSTpartitioner(ins: Array[String]) extends Partitioner{
//初始化一个hashMap对象
val parMap = new HashMap[String,Int]()
var count = 0
//遍历array 把它的每个位置上的值作为key,每个位置的下标作为vale存入hashMap中
for ( i <- ins ){
parMap += (i->count)
count += 1
}
//必须实现的方法,指定分为几个区。
override def numPartitions : Int = count
//获取分区号,传入的是key-value类型中的可以。
override def getPartition(key: Any) :Int = {
val urls = new URL(key.toString)
val host = urls.getHost
return parMap.getOrElse(host.toString,0)
}
}
var rdd11 = sc.makeRDD(Array((1, "A"), (2,"B"), (3,"C"), (4, "D")) ,2)
var rdd1 = sc.makeRDD(Array( "A","B","C", "D") ,2)
rdd1.partitions.size
val rdd22 = rdd11.partitionBy(new org.apache.spark.HashPartitioner(2))
rdd22.partitions.size
var rdd11 = sc.makeRDD(Array("A", "B", "C", "D") ,2)
http://www.baidu.com,123
分享到:
相关推荐
用JAVA实现的基于Spark的解决数据倾斜的单词技术的计数
行业分类-设备装置-一种解决数据倾斜的方法及装置
如何解决 数据倾斜的产生是有一些讨论的,解决它们也是有一些讨论的,本章会先给出几个解决数据倾斜的思路,然后对Hadoop和Spark分别给出一些解决数据倾斜的方案。 一、几个思路 解决数据倾斜有这几个思路: 1.业务...
如何解决 数据倾斜的产⽣是有⼀些讨论的,解决它们也是有⼀些讨论的,本章会先给出⼏个解决数据倾斜的思路,然后对Hadoop和Spark分别 给出⼀些解决数据倾斜的⽅案。 ⼀、⼏个思路 解决数据倾斜有这⼏个思路: 1....
spark sql 倾斜处理
如果数据倾斜没有解决,完全没有可能进行性能调优,其他所有的调优手段都是一个笑话。数据倾斜是能体现一 个spark大数据工程师水平的性能调优问题。 数据倾斜如果能够解决的话,代表对spark运行机制了如指掌。
数据倾斜解决方案之使用随机key实现双重聚合
详细介绍了各种情况下spark生产环节遇到的问题以及性能调优解决方案,以及全套的数据倾斜解决方案
总结了hive中数据处理发生的倾斜问题,不同的原因对应不同的解决方案,比较具体可实操的方法
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 课程简介 以一个实际的数仓指标为需求,在大规模集群环境下,进行千亿级别数据量的任务测试。...7-补充-不解决数据倾斜问题的任务演示 8-集群规模预览
此图总结了处理数据时产生数据倾斜的原因以及其解决思路和方法
介绍:Spark-数据倾斜的解决方案
如何解决数据倾斜问题? 15、Hive中的数据分区和分桶对查询性能有哪些影响? 16、Hadoop中的YARN是什么?它和MapReduce有什么关系? 17、YARN中的资源分配分为哪几种类型?它们分别适用于哪些场景? 18、YARN中的...
一、调优概述3 二、数据倾斜发生时的现象 3 三、数据倾斜发生的原理 3 四、如何定位导致数据倾斜的代码4 五、某个 task 执行特别慢的情况4 六、某个 t
hive数据倾斜原因分析及解决方案.pdf
Spark性能优化之道——解决Spark数据倾斜(DataSkew)的N种姿势共12页.pdf.zip
Hive千亿级数据倾斜解决方案.docx
什么是数据倾斜?对 Spark/Hadoop 这样的分布式大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜。对于分布式系统而言,理想情况下,随着系统规模(节点数量)的增加,应用整
在Spark计算平台中,数据倾斜往往导致某些节点承受更大的网络流量和计算压力,给集群的CPU、内存、磁盘和流量带来了巨大的负担,影响整个集群的计算性能.本文通过对Spark Shuffle设计和算法实现的研究,深入分析在大...
数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。如果数据倾斜没有解决,完全没有可能进行性能调优,其他所有的调优手段都是一个笑话。数据倾斜是最能体现一个spark大数据...