当前位置: 首页 > 面试题库 >

如何使用Spark处理一系列HBase行?

琴琪
2023-03-14
问题内容

我正在尝试使用HBase作为Spark的数据源。因此,第一步证明是从HBase表创建RDD。由于Spark使用hadoop输入格式,因此我可以通过创建rdd
http://www.vidyasource.com/blog/Programming/Scala/Java/Data/Hadoop/Analytics/2014/01/25找到使用所有行的方法/ lighting-a-spark-with-
hbase
但是我们如何为范围扫描创建RDD?

欢迎所有建议。


问题答案:

这是在Spark中使用扫描的示例:

import java.io.{DataOutputStream, ByteArrayOutputStream}
import java.lang.String
import org.apache.hadoop.hbase.client.Scan
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.io.ImmutableBytesWritable
import org.apache.hadoop.hbase.client.Result
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.hbase.util.Base64

def convertScanToString(scan: Scan): String = {
  val out: ByteArrayOutputStream = new ByteArrayOutputStream
  val dos: DataOutputStream = new DataOutputStream(out)
  scan.write(dos)
  Base64.encodeBytes(out.toByteArray)
}

val conf = HBaseConfiguration.create()
val scan = new Scan()
scan.setCaching(500)
scan.setCacheBlocks(false)
conf.set(TableInputFormat.INPUT_TABLE, "table_name")
conf.set(TableInputFormat.SCAN, convertScanToString(scan))
val rdd = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result])
rdd.count

您需要将相关的库添加到Spark类路径,并确保它们与您的Spark兼容。提示:您可以hbase classpath用来查找它们。



 类似资料:
  • 问题内容: 我有一个令人尴尬的并行任务,我使用Spark来分配计算。这些计算是在Python中进行的,我使用PySpark读取和预处理数据。我任务的输入数据存储在HBase中。不幸的是,我还没有找到一种令人满意的(即易于使用且可扩展)的方式,可以使用Python从/向Spark读取/写入HBase数据。 我之前探讨过的内容: 使用从我的Python进程内部进行连接。该软件包允许使用HBase的Th

  • 我试图使用Apache Spark来处理我的大型(230K条目)cassandra数据集,但我经常遇到不同类型的错误。然而,我可以成功地运行应用程序时,运行在一个数据集约200个条目。我有一个由3个节点和1个主节点和2个工作节点组成的spark设置,这两个工作节点还安装了一个cassandra集群,该集群的数据索引复制系数为2。我的两个spark workers在web界面上显示2.4和2.8GB

  • 我试图将写入并关注了其他几个博客,其中一个就是这个,但它不起作用。 但是,我可以成功地从读取数据为。此外,一些帖子使用了格式,其他帖子使用了格式。我不确定该用哪一个。;;和从这里开始。 守则如下: 这里有个例外: 在org.apache.hadoop.hbase.security.userprovider.instantiate(userprovider.java:122)在org.apache.

  • 我有两组帐号,基于加元和美元货币。基于这些列表,我需要通过传递请求参数来调用相同的方法,一个用于CAD,另一个用于USD。 请指导我如何使用。 提前感谢!

  • 贡献者:TsingJyujing Apache Spark 是一个分布式的、用于在内存中处理数据的软件框架,在许多场景中用于代替 MapReduce。 Spark 本身已经超出了本文档的范围,请参考 Spark 的项目及子项目的网站来获取更多信息。本文档将会集中在 4 个主要的 HBase 和 Spark 交互的要点上,这四点分别是: 基础 Spark 这可以在 Spark DAG 中的任意一点使

  • HBase 协处理器以 Google BigTable 的协处理器实现为模型( http://research.google.com/people/jeff/SOCC2010-keynote-slides.pdf 第 41-42 页。)。 协处理器框架提供了直接在管理数据的 RegionServers 上运行自定义代码的机制。正在努力弥合 HBase 实施与 BigTable 架构之间的差距。有关