我在Hadoop 2.2.0
,正在运行单节点设置。
我的理解是hdfs dfs -ls
很慢,因为每次调用它时都会调动JVM
。
有没有办法让它保持JVM运行,这样简单的命令可以更快完成?
答案 0 :(得分:5)
我想告诉您我们为解决此问题所采取的解决方案。
我们创建了一个新的实用程序 - HDFS Shell ,以便更快地使用HDFS。
https://github.com/avast/hdfs-shell
hdfs dfs -ls /
,ls /
- 两者都有效cd
和pwd
答案 1 :(得分:1)
在pig grunt shell中,像fs -ls
这样的命令工作得非常快,因此这可能是一种实用的解决方法。问题是,当尝试将输出传递给其他命令时,这不能很好地工作。
所以我一起攻击了一个脚本来启动pig grunt shell作为后台进程并通过命名管道与它进行通信:https://unix.stackexchange.com/a/144722/46085。问题是,即使我使用script
工具伪造一个真正的终端(因为grunt shell需要这样做),grunt shell有时仍然会自杀。在使用head
左右截断输出时,我也会遇到问题,因为它仍然会尝试写入整个输出,而输出又会在命名管道中留下过时的输出。
无论如何,你可能会看看它是否适合你。我很感激您的任何改进。
答案 2 :(得分:0)
Hadoop fs -ls运行速度很慢,需要20秒才能启动。我发现,当我连接到wifi时,它会发生。
因此,当我需要运行hadoop命令时,我会断开wifi连接。不确定是什么问题,但我很高兴。
答案 3 :(得分:0)
结帐Hadoop Tools。它提供了与hdfs dfs
类似的界面,但速度更快。它还支持在HDFS上使用bash完成文件名的选项卡完成,这可以节省大量时间。
但它不支持put
。