如何使用Ruby在Hadoop HDFS中写入/读取文件?

问题描述:

有没有办法使用Ruby来处理HDFS Api?据我所知,没有多语言文件Api,唯一的方法是使用本机Java Api。我试过使用JRuby,但是这个解决方案是不稳定的,并不是非常原生的。另外我看了HDFS Thrift Api,但它并不完整,也缺少许多功能(如写入索引文件)。如何使用Ruby在Hadoop HDFS中写入/读取文件?

除了使用JRuby或Thrift Api之外,有没有一种方法可以使用Ruby来使用Ruby?

github中有两个项目符合你的要求。 ruby-hdfs为Ruby提供了本地C到HDFS的绑定。 ganapati与Thrift服务器的接口。

您也可以直接对file system shell进行系统调用。例如:

cmd = "hadoop fs -mkdir #{hdfs_path}" 
cmd += " 2> /dev/null" 
system(cmd) 
if $? == 0 
    puts 'ok' 
    exit(0) 
else 
    puts "Error: failed to create hdfs://#{hdfs_path}" 
    exit(2) 
end