Как использовать RocksDB для HDFS? - PullRequest
0 голосов
/ 06 октября 2019

Я пишу приложение Spark, работающее на HDFS, выводом является RDD, который я должен сохранить в RocksDB. Но я не знаю, как заставить RocksDB работать с HDFS и Spark. Пожалуйста, дайте мне несколько инструкций о том, как настроить RocksDB на HDFS и интегрировать его с Spark

. Мы зашли на сайт https://github.com/facebook/rocksdb/tree/master/hdfs, но мы не можем найти hdfs.h и libhdfs, поэтому мы не можемзнать, как действовать

var sq = Seq[RDD[(String, Array[String])]]()
for (file <- files) {
     val filename = file.getPath.toString()

     val lines = sc.textFile(filename)
     val doc_id = filename.split("/").last.dropRight(4) 
     val key_value = lines.flatMap(_.split(" ")).map(word => (word, Array((doc_id)))).reduceByKey((a,b) => a)
     sq = sq :+ key_value
} 
     val output = sc.union(sq)
     output.reduceByKey((a,b) => a ++ b) // this is the output RDD that we need to save to RocksDB

1 Ответ

0 голосов
/ 07 ноября 2019

Я не уверен, будет ли это работать для той ветки или RocksDB, но вы можете найти hdfs.h и libhdfs.so в любом дистрибутиве hadoop.

Например, для Cloudera CDH они находятся в / opt /cloudera / parcels / CDH / include и /opt/cloudera/parcels/CDH/lib64.

Исходный код находится здесь: https://github.com/apache/hadoop-hdfs/tree/trunk/src/c%2B%2B/libhdfs

Дайте мне знать, если вам удалось скомпилировать RocksDB сHDFS, а как это работает?

...