我创建了一个java函数来在hdfs中打开一个文件。该函数仅用于api hdfs。我的代码中不使用任何hadoop依赖项。我的职能运作良好:
public static openFile()
{
System.out.print("main for testing the Hdfs WEB API");
URL url = new URL("http://URI/webhdfs/v1/PATH_TO_File?op=OPEN");
try {
HttpURLConnection con = (HttpURLConnection) url.openConnection() ;
con.setRequestMethod("GET");
con.setDoInput(true);
InputStream in = con.getInputStream();
int ch;
while((ch=in.read())!=-1)
{
System.out.print((char) ch);
}
} catch (IOException e) {
e.printStackTrace();
}
}
我正在做一个新函数来返回hdfs中的文件列表。第二个功能是:
public static ListFile()
{
System.out.print("main for testing the Hdfs WEB API");
URL url = new URL("http://URI/webhdfs/v1/PATH_TO_File?op=LISTSTATUS");
try {
HttpURLConnection con = (HttpURLConnection) url.openConnection() ;
con.setRequestMethod("GET");
con.setDoInput(true);
InputStream in = con.getInputStream();
logger.info("list is '{}' ", url.openStream());
} catch (IOException e) {
e.printStackTrace();
}
}
你能帮我一下吗,我怎样用流返回hdfs中的文件列表,用扫描仪得到响应?当我在浏览器中运行url时,我知道它们运行得很好。提前谢谢
1条答案
按热度按时间yzxexxkh1#
您可以使用与第一个解决方案完全相同的逻辑,但这一次,使用stringbuilder来获取完整的响应,然后需要使用json库对其进行解析。
注意:像reformation/gson这样的库会使这更简单