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

mer*_*011 7 hadoop hdfs

我正在Hadoop 2.2.0运行单节点设置.

我的理解是,它hdfs dfs -ls很慢,因为它JVM每次被调用时都会旋转.

有没有办法让它保持JVM运行,这样简单的命令可以更快地完成?

Vit*_*ity 6

我想告诉你我们为解决这个问题所做的解决方案.

我们创建了一个新的实用程序 - 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)
  • 支持相对目录+命令cdpwd
  • 以及更多...


Dav*_*aro 1

在 Pig grunt shell 命令中,fs -ls工作速度相当快,因此这可能是一个务实的解决方法。问题是,当尝试将输出通过管道传递给其他命令时,这不能很好地工作。

因此,我编写了一个脚本来启动pig grunt shell作为后台进程,并通过命名管道与其进行通信: https: //unix.stackexchange.com/a/144722/46085。问题是,即使我使用该script工具来伪造一个真正的终端(因为 grunt shell 期望如此),grunt shell 有时仍然会自杀。当用左右截断输出时,我也会遇到问题head,因为它仍然尝试写入整个输出,这反过来又会在命名管道中留下过时的输出。

无论如何,您可以看看它是否适合您。我很感激您可能发现的任何改进。