如何将rocksdb用于hdfs?

mv1qrgav  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(1073)

我正在写一个在hdfs上运行的spark应用程序,输出是一个rdd,我必须保存到rocksdb。但我不知道如何让rocksdb与hdfs和spark一起工作。请给我一些关于如何在hdfs上设置rocksdb并将其与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
x4shl7ld

x4shl7ld1#

我不确定它是否适用于该分支或rocksdb,但您可以在任何hadoop发行版中找到hdfs.h和libhdfs.so。
e、 g.对于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
让我知道你是否成功地用hdfs编译了rocksdb,以及它是如何工作的?

相关问题