2010-06-26 24 views
3

Existe-t-il un moyen de travailler avec HDFS Api en utilisant Ruby? Comme je peux le comprendre il n'y a pas de fichier multilingue Api et le seul moyen est d'utiliser Java Api natif. J'ai essayé d'utiliser JRuby mais cette solution est instable et pas très native. J'ai également regardé HDFS Thrift Api mais ce n'est pas complet et manque également de nombreuses fonctionnalités (comme l'écriture de fichiers indexés).Comment écrire et lire des fichiers dans/depuis Hadoop HDFS en utilisant Ruby?

Existe-t-il un moyen de travailler avec HDFS en utilisant Ruby en plus d'utiliser JRuby ou Thrift Api?

Répondre

8

Il y a deux projets dans github qui correspondent à ce que vous demandez. ruby-hdfs fournit des liaisons C natives à HDFS pour Ruby. ganapati interfaces avec un serveur Thrift. Vous pouvez également passer des appels système directement au file system shell. Par exemple:

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