2010年10月30日土曜日

groovyとhadoopでHDFS上のファイルを列挙する

groovyとhadoopでHDFS上のファイルを列挙するには、以下のコードを実行します。

import org.apache.hadoop.conf.*
import org.apache.hadoop.fs.*

fs = FileSystem.get(
URI.create("hdfs://192.168.1.81:9000/"),
new Configuration())

files = fs.listStatus(new Path("/tmp"))
for( file in files ){
println file.getPath()
}



※Grabを使用しない場合は以下のjarを$GROOVY_HOME/libにコピー
hadoop-common-0.21.0.jar
hadoop-hdfs-0.21.0.jar
log4j-1.2.15.jar

2014/09/14追記:
Grabを使用する場合は、以下のように記述します。
@Grab(group='org.apache.hadoop', module='hadoop-common', version='2.5.0')
@Grab(group='org.apache.hadoop', module='hadoop-hdfs', version='2.5.0')

import org.apache.hadoop.conf.*
import org.apache.hadoop.fs.*

fs = FileSystem.get(
  URI.create("hdfs://localhost:9000/"),
  new Configuration())

files = fs.listStatus(new Path("/tmp"))
for( file in files ){
  println file.getPath()
}

動作環境
groovy 1.7.5, JDK6 Update22, Hadoop 0.21.0
groovy 2.3.6, JDK 7 Update 65, Hadoop 2.5.0

関連情報
CentOS5.5にHadoop0.21.0をインストールする
http://serverarekore.blogspot.com/2010/10/centos55hadoop0210.html

0 件のコメント:

コメントを投稿