通过Java API访问HDFS文件系统与Java Runtime HDFS命令[已关闭]

58wvjzkj  于 2022-12-09  发布在  HDFS
关注(0)|答案(1)|浏览(161)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以使用事实与引用来回答.

去年关闭了。
Improve this question
与通过Java Runtime调用HDFS命令相比,通过Java API访问HDFS文件系统有哪些优缺点?
HDFS文件系统基于Kerberos身份验证。在我以前的组织中,我们使用HDFS Java API访问HDFS文件系统,但在我现在的组织中,我被要求通过Java Runtime调用来调用HDFS命令。使用这种通过Java Runtime调用来调用HDFS命令的方法是否合适?

Runtime r = Runtime.getRuntime();
Process p = r.exec("hdfs dfs -copyFromLocal /tmp/localFile /tmp/hdfsDir/");
p.waitFor();
ohtdti5x

ohtdti5x1#

这个问题基本上可以归结为“API与CLI”,而不一定是Hadoop特定的。
最后,API调用和CLI调用都将访问相同的底层代码,并执行相同的操作。使用API的好处是,您可以自动获得Java可以处理的格式的端点和响应。
如果您在Java中从CLI调用hdfs命令,则必须手动解析响应作为字符串,以确定它是否按照您的预期运行。您还必须下载这些二进制文件,并将它们放在系统PATH上。将其与使用HDFS API进行比较:这些结果返回实际可用的对象,任何错误都将抛出一个您可以处理的异常。

相关问题