我在 Hadoop 2.2.0 ,运行单节点设置。我的理解是 hdfs dfs -ls 速度慢是因为它在旋转 JVM 每次调用时。有没有办法让jvm保持运行,这样简单的命令就可以更快地完成?
Hadoop 2.2.0
hdfs dfs -ls
JVM
vatpfxk51#
我想告诉你我们解决这个问题的方法。我们创建了一个新的实用工具—hdfs shell,以便更快地使用hdfs。https://github.com/avast/hdfs-shellhdfs dfs为每个命令调用启动jvm,hdfs shell只启动一次—这意味着当您需要更频繁地使用hdfs时,速度会有很大的提高命令可以用很短的方式使用。 hdfs dfs -ls / , ls / -两者都能奏效使用tab键完成hdfs路径我们可以很容易地添加任何其他hdfs操作函数历史记录日志中有一个命令历史记录(~/.hdfs shell/hdfs shell.log)支持相对目录+命令 cd 以及 pwd 还有更多。。。
hdfs dfs -ls /
ls /
cd
pwd
6g8kf2rb2#
查看hadoop工具。它提供了与 hdfs dfs 但是要快得多。它还支持用bash completion在hdfs上用tab键完成文件名,这大大节省了时间。它不支持 put 然而。
hdfs dfs
put
oknwwptz3#
在Pig呼噜的壳命令像 fs -ls 工作相当快,所以这可能是一个务实的解决办法。问题是,当试图通过管道将输出传输到其他命令时,这种方法不能很好地工作。所以我一起破解了一个脚本,以启动pig grunt shell作为后台进程,并通过命名管道与之通信:https://unix.stackexchange.com/a/144722/46085. 问题是即使我使用 script 工具来伪造一个真实的终端(因为grunt shell期望这样),grunt shell有时仍然会自杀。我在截断输出时也会遇到问题 head 或者是这样,因为它仍然尝试写入整个输出,而这又会在命名管道中留下过时的输出。不管怎样,你可以看看它是否适合你。我很感激你的改进。
fs -ls
script
head
3条答案
按热度按时间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
还有更多。。。6g8kf2rb2#
查看hadoop工具。它提供了与
hdfs dfs
但是要快得多。它还支持用bash completion在hdfs上用tab键完成文件名,这大大节省了时间。它不支持
put
然而。oknwwptz3#
在Pig呼噜的壳命令像
fs -ls
工作相当快,所以这可能是一个务实的解决办法。问题是,当试图通过管道将输出传输到其他命令时,这种方法不能很好地工作。所以我一起破解了一个脚本,以启动pig grunt shell作为后台进程,并通过命名管道与之通信:https://unix.stackexchange.com/a/144722/46085. 问题是即使我使用
script
工具来伪造一个真实的终端(因为grunt shell期望这样),grunt shell有时仍然会自杀。我在截断输出时也会遇到问题head
或者是这样,因为它仍然尝试写入整个输出,而这又会在命名管道中留下过时的输出。不管怎样,你可以看看它是否适合你。我很感激你的改进。