hdfs-dfs命令很慢-有没有办法让它更快?

niknxzdl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(806)

我在 Hadoop 2.2.0 ,运行单节点设置。
我的理解是 hdfs dfs -ls 速度慢是因为它在旋转 JVM 每次调用时。
有没有办法让jvm保持运行,这样简单的命令就可以更快地完成?

vatpfxk5

vatpfxk51#

我想告诉你我们解决这个问题的方法。
我们创建了一个新的实用工具—hdfs shell,以便更快地使用hdfs。
https://github.com/avast/hdfs-shell
hdfs dfs为每个命令调用启动jvm,hdfs shell只启动一次—这意味着当您需要更频繁地使用hdfs时,速度会有很大的提高
命令可以用很短的方式使用。 hdfs dfs -ls / , ls / -两者都能奏效
使用tab键完成hdfs路径
我们可以很容易地添加任何其他hdfs操作函数
历史记录日志中有一个命令历史记录(~/.hdfs shell/hdfs shell.log)
支持相对目录+命令 cd 以及 pwd 还有更多。。。

6g8kf2rb

6g8kf2rb2#

查看hadoop工具。它提供了与 hdfs dfs 但是要快得多。它还支持用bash completion在hdfs上用tab键完成文件名,这大大节省了时间。
它不支持 put 然而。

oknwwptz

oknwwptz3#

在Pig呼噜的壳命令像 fs -ls 工作相当快,所以这可能是一个务实的解决办法。问题是,当试图通过管道将输出传输到其他命令时,这种方法不能很好地工作。
所以我一起破解了一个脚本,以启动pig grunt shell作为后台进程,并通过命名管道与之通信:https://unix.stackexchange.com/a/144722/46085. 问题是即使我使用 script 工具来伪造一个真实的终端(因为grunt shell期望这样),grunt shell有时仍然会自杀。我在截断输出时也会遇到问题 head 或者是这样,因为它仍然尝试写入整个输出,而这又会在命名管道中留下过时的输出。
不管怎样,你可以看看它是否适合你。我很感激你的改进。

相关问题