gpt4 book ai didi

hadoop - 为什么我们创建RDD来保存Hbase中的数据?还有其他方法可以在 Hbase 中保存数据吗?

转载 作者:可可西里 更新时间:2023-11-01 16:43:20 24 4
gpt4 key购买 nike

我对大数据、Hadoop 和 Spark 完全陌生。我来自 Java 背景。

所以我试图理解为什么人们总是创建 RDD 来将数据集保存在 HBASE 中。谁能详细告诉我一下。

还有其他方法吗?

最佳答案

在 Spark 中,一切都归结为 RDD。即包括数据框。AFAIK,Spark 和 hbase 没有其他选择,如果您使用 spark 作为分布式框架通过 RDD 实现其目标,

  • 不可变
  • 分区
  • 容错
  • 由粗粒度操作创建
  • 延迟评估
  • 可以持久化

不变性和分区RDD 由分区的记录集合组成。分区是RDD中并行的基本单元,每个分区是数据的一个逻辑分区,分区是不可变的,是通过对现有分区进行一些转换而创建的。不可变性有助于实现计算的一致性。

如果需要,用户可以根据要加入多个数据集的键定义自己的分区标准。

粗粒度操作(转换和操作)粗粒度操作是应用于数据集中所有元素的操作。例如 – 将对 RDD 分区中的所有元素执行的映射、过滤器或 groupBy 操作。

转换和 Action

RDD 只能通过从稳定存储(如 HDFS/Hbase)读取数据或通过对现有 RDD 进行转换来创建。 RDD 上的所有计算要么是转换,要么是操作。 enter image description here

容错

由于 RDD 是通过一组转换创建的,因此它记录这些转换,而不是实际数据。生成一个 RDD 的这些转换图称为沿袭图。

斯卡拉

firstRDD=spark.textFile("hdfs://...")
secondRDD=firstRDD.filter(someFunction);
thirdRDD = secondRDD.map(someFunction);
result = thirdRDD.count()

enter image description here

惰性评估Spark 会在 RDD 第一次用于操作时延迟计算它们,以便它可以进行管道转换。因此,在上面的示例中,RDD 将仅在调用 count() 操作时被评估。

坚持用户可以指明他们将重用哪些 RDD,并为他们选择存储策略(例如,内存存储或磁盘存储等)

RDD 的这些特性使其可用于快速计算。

请参阅Source : what is RDD and Why we need it

关于hadoop - 为什么我们创建RDD来保存Hbase中的数据?还有其他方法可以在 Hbase 中保存数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com