gpt4 book ai didi

hadoop - Spark 插入 HBase 慢

转载 作者:可可西里 更新时间:2023-11-01 14:31:25 25 4
gpt4 key购买 nike

我正在使用 Spark 插入到 HBase,但速度很慢。对于 60,000 条记录,需要 2-3 分钟。我有大约 1000 万条记录要保存。

object WriteToHbase extends Serializable {
def main(args: Array[String]) {
val csvRows: RDD[Array[String] = ...
val dateFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
val usersRDD = csvRows.map(row => {
new UserTable(row(0), row(1), row(2), row(9), row(10), row(11))
})
processUsers(sc: SparkContext, usersRDD, dateFormatter)
})
}

def processUsers(sc: SparkContext, usersRDD: RDD[UserTable], dateFormatter: DateTimeFormatter): Unit = {

usersRDD.foreachPartition(part => {
val conf = HBaseConfiguration.create()
val table = new HTable(conf, tablename)

part.foreach(userRow => {
val id = userRow.id
val name = userRow.name
val date1 = dateFormatter.parseDateTime(userRow.date1)
val hRow = new Put(Bytes.toBytes(id))
hRow.add(cf, q, Bytes.toBytes(date1))
hRow.add(cf, q, Bytes.toBytes(name))
...
table.put(hRow)
})
table.flushCommits()
table.close()
})
}

我在 spark-submit 中使用它:

--num-executors 2 --driver-memory 2G --executor-memory 2G --executor-cores 2 

最佳答案

它很慢,因为实现没有利用数据的邻近性;一个服务器中的 Spark RDD 可能会被转移到另一个服务器上运行的 HBase RegionServer。

目前没有 Spark 的 RRD 操作来高效地使用 HBase 数据存储。

关于hadoop - Spark 插入 HBase 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30546821/

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