为什么我们创建RDD来保存Hbase中的数据?还有其他方法可以在 Hbase 中保存数据吗?
Why we create RDD to save data in Hbase? Is there any other way save data in Hbase?
我对大数据、Hadoop 和 Spark 完全陌生。我来自 Java 背景。
所以我想了解为什么人们总是创建 RDD 来将数据集保存在 HBASE 中。谁能详细告诉我一下。
还有其他方法吗?
在 Spark 中,一切都归结为 RDD。即包括数据框。
AFAIK,Spark 和 hbase 没有其他选择,如果您使用 spark 作为分布式框架通过 RDD 实现其目标
- 不可变
- 分区
- 容错
- 由粗粒度操作创建
- 延迟评估
- 可以持久化
不变性和分区
RDD 由分区的记录集合组成。分区是RDD中并行的基本单位,每个分区是数据的一个逻辑分区,它是不可变的,是通过对现有的一些转换创建的partitions.Immutability有助于实现计算的一致性。
如果需要,用户可以根据要加入多个数据集的键定义自己的分区标准。
粗粒度操作(转换和操作)
粗粒度操作是应用于数据集中所有元素的操作。例如 - 将对 RDD 分区中的所有元素执行的 map、filter 或 groupBy 操作。
转换和操作
RDD 只能通过从 HDFS/Hbase 等稳定存储中读取数据或对现有 RDD 进行转换来创建。 RDD 上的所有计算要么是转换,要么是操作。
容错
由于 RDD 是通过一组转换创建的,因此它记录这些转换,而不是实际 data.Graph 这些转换以生成一个 RDD,称为沿袭图。
斯卡拉
firstRDD=spark.textFile("hdfs://...")
secondRDD=firstRDD.filter(someFunction);
thirdRDD = secondRDD.map(someFunction);
result = thirdRDD.count()
惰性评估
Spark 会在 RDD 第一次用于操作时延迟计算它们,以便它可以进行管道转换。因此,在上面的示例中,RDD 将仅在调用 count() 操作时被评估。
坚持
用户可以指出他们将重用哪些 RDD,并为他们选择存储策略(例如,内存存储或磁盘存储等)
RDD 的这些特性使其可用于快速计算。
我对大数据、Hadoop 和 Spark 完全陌生。我来自 Java 背景。
所以我想了解为什么人们总是创建 RDD 来将数据集保存在 HBASE 中。谁能详细告诉我一下。
还有其他方法吗?
在 Spark 中,一切都归结为 RDD。即包括数据框。 AFAIK,Spark 和 hbase 没有其他选择,如果您使用 spark 作为分布式框架通过 RDD 实现其目标
- 不可变
- 分区
- 容错
- 由粗粒度操作创建
- 延迟评估
- 可以持久化
不变性和分区 RDD 由分区的记录集合组成。分区是RDD中并行的基本单位,每个分区是数据的一个逻辑分区,它是不可变的,是通过对现有的一些转换创建的partitions.Immutability有助于实现计算的一致性。
如果需要,用户可以根据要加入多个数据集的键定义自己的分区标准。
粗粒度操作(转换和操作) 粗粒度操作是应用于数据集中所有元素的操作。例如 - 将对 RDD 分区中的所有元素执行的 map、filter 或 groupBy 操作。
转换和操作
RDD 只能通过从 HDFS/Hbase 等稳定存储中读取数据或对现有 RDD 进行转换来创建。 RDD 上的所有计算要么是转换,要么是操作。
容错
由于 RDD 是通过一组转换创建的,因此它记录这些转换,而不是实际 data.Graph 这些转换以生成一个 RDD,称为沿袭图。
斯卡拉
firstRDD=spark.textFile("hdfs://...")
secondRDD=firstRDD.filter(someFunction);
thirdRDD = secondRDD.map(someFunction);
result = thirdRDD.count()
惰性评估 Spark 会在 RDD 第一次用于操作时延迟计算它们,以便它可以进行管道转换。因此,在上面的示例中,RDD 将仅在调用 count() 操作时被评估。
坚持 用户可以指出他们将重用哪些 RDD,并为他们选择存储策略(例如,内存存储或磁盘存储等)
RDD 的这些特性使其可用于快速计算。