Spark RDD
来源:互联网 发布:淘宝店铺没了能退款么 编辑:程序博客网 时间:2024/06/05 00:32
RDD是Spark的核心抽象,全称为ResilientDistributedDataSet,弹性分布式数据集
RDD在抽象上来说是一种元素集合的,包含了数据。它是被分区的,分为多个分区的,每个分区分布在集群中的不同节点上,分区即是Partition的,从而让RDD中的数据可以被并行操作的
RDD通常通过Hadoop上的文件,即是HDFS文件来进行创建的,有时也可以通过spark应用程序中的集合来创建的
RDD最重要的特性是提供了容错性的,可以自动从节点失败中恢复过来的额,即如果某个节点上的RDD Partition,因为节点故障,导致数据丢失了,那么RDD会自动通过自己的数据来源重新计算Paritition的,这一切对使用者来说是透明的
RDD的数据默认情况下是存放在内存中的,但是在内存资源不足的时候,Spark会自动将RDD数据写入磁盘中的额,弹性的特性的
创建RDD的三种方式:
在RDD中,通常就代表了和包含了Spark应用程序的输入源数据
当我们,在创建了初始化的RDD之后,才可以通过SparkCore提供的Transformation算子,对该RDD进行transformation转换操作的来获取其他的RDD的
SparkCore为我们提供了三种创建RDD的方式:
使用程序中的集合创建RDD,主要是用于进行测试的,可以在实际部署到集群运行之前,自己使用集合构造测试数据来测试后面的Spark应用的流程的
使用本地文件创建RDD,主要用于在本地临时性地处理一些存储大量数据的文件
使用HDFS文件创建RDD,应该是最常用的生产环境处理方式,主要可以针对HDFS上存储的大数据,进行离线批次处理操作的
并行化创建RDD
如果要通过并行化集合来创建RDD,需要针对程序中的集合,调用SparkContext中的Parallelize方法的,Spark会将集合中的数据拷贝到集群上去的,形成一个分布式的数据集合的,也就是一个RDD,集合中的部分数据到一个节点上的额,另一部分数据会到其他节点的,然后可以采用并行的方式来操作这个分布式数据集合的
val arr=Array(1,2,3,4,5)
val rdd=sc.parallelize(arr)
val sum=rdd.reduce(+)
Typically you want 2-4partitions for each CPU in your cluster,
在调用parallelize()方法时候,有一个重要的参数可以指定的,就是要将集合切分成多少个partition的,Spark会为每一个partition运行一个task来进行处理的,Spark的官方建议是为集群中的每个CPU创建2-4个partition,Spark默认会根据集群的情况来设置partition的数量的,但是也可以调用parallelize方法时候传入第二个参数的, 来设置RDD的partition数量的,
使用TextFile方法,通过本地文件或者HDFS创建RDD
Spark是支持使用任何Hadoop支持的存储系统上的文件创建RDD的,比如说是HDFS,Cassandra,HBase以及本地文件的,通过调用SparkContext的TextFile()方法,可以针对本地文件或 HDFS文件创建RDD,通过调用SparkContext的textFile方法,可以针对本地文件或者是HDFS上的文件创建RDD的,
val rdd=sc.textFile(“/home/hadoop/data.txt”)
val wordcount=rdd.map(line=>line.length).reduce(+)
如果是在Spark集群上针对Linux本地文件,那么需要将文件拷贝到所有的worker节点上的,就是spak-submit上使用–master指定了master节点的,使用standalone模式进行运行的,而TextFile方法内仍然使用的是Linux本地文件的,在这种情况下,是需要将文件拷贝到所有的worker节点上的,
Spark的textFile方法支持针对目录,压缩文件以及通配符进行创建RDD的,
Spark会默认为HDFS文件上的每一个block创建一个partition的,但是也可以通过textFile的第二参数来手动的设置分区数量的,只能比HDFS上的block数量多的额,不能比block数量少的额,
- 【spark RDD】RDD编程
- Spark/RDD
- Spark-rdd
- spark RDD
- Spark RDD
- Spark RDD
- spark rdd
- Spark RDD
- Spark rdd
- spark-RDD
- Spark RDD
- spark RDD
- Spark RDD
- spark rdd
- Spark RDD
- Spark RDD
- Spark RDD
- spark-RDD
- 黑苹果 Cpu halted Power OFF自动关机
- linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下
- 在linux下安装Informatica
- unity中模型动态变形处理
- 求n个数的平均数,并输出大于平均数的数。以-1结束
- Spark RDD
- ceph学习之pool
- php array_splice 用法总结
- 1.Python入门之基本语句
- 超如何利用记忆心理学提高用户体验
- hdoj 2049 不容易系列之(4)——考新郎
- Java里如何实现线程间通信?
- ceph学习之PG
- 在Ubuntu使用基于L2TP的VPN设置