测试环境使用的是hadoop2.2.0 线上环境1.0.3
编写程序如下:
public class TestHDFS
{
public TestHDFS()
{
hdfs = null;
}
public void init()
throws IOException
{
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://localhost:9000");
hdfs = FileSystem.get(conf);
}
public void test()
throws FileNotFoundException, IOException
{
Text line;
FileStatus arr$[];
int len$;
int i$;
Path path = new Path("/user/xpp/logview/20141009/mno");
FileStatus inputFiles[] = hdfs.listStatus(path);
line = new Text();
arr$ = inputFiles;
len$ = arr$.length;
i$ = 0;
_L3:
if(i$ >= len$) goto _L2; else goto _L1
_L1:
FileStatus file;
FSDataInputStream input;
file = arr$[i$];
if(!file.getPath().getName().startsWith("part-r-"))
continue; /* Loop/switch isn't completed */
input = null;
input = hdfs.open(file.getPath());
for(LineReader reader = new LineReader(input); reader.readLine(line) > 0; System.out.println(line.toString()))
{
String logLine = line.toString();
}
if(input != null)
input.close();
continue; /* Loop/switch isn't completed */
Exception exception;
exception;
if(input != null)
input.close();
throw exception;
i$++;
goto _L3
_L2:
}
public static void main(String arg[])
throws IOException
{
TestHDFS f = new TestHDFS();
f.init();
f.test();
}
private FileSystem hdfs;
}
如果引用2.2.0jar包 程序不可以在1.0.3上运行 如果引用1.0.3jar包 可以再任何机器上运行 hadoop向后兼容 编程时应该注意