将 pig fs 命令输出到文件或变量

output pig fs command to a file or a variable

我正在尝试监控我的 HDFS 系统中的文件。 目前,我这样做的方式非常痛苦:fs -ls -R /river/entity/files;

此命令在控制台日志文件中输出结果。然后我需要将结果 copy/paste 放入文件中才能使用它……这根本没有效率。使用PIG,有没有一种简单的方法可以将命令的结果直接输出到文件中?

编辑:感谢您的回答,但我还不够清楚。对不起 ! 我无法使用终端。我只执行一个 pig 脚本,我希望在 HDFS 中得到结果。是否可以只在 hadoop 端这样做?

只需在您的终端中输入:

$hadoop fs -ls -R /river > your/path/to/file.txt

或在 shell 脚本示例中编写命令 file.sh 包含以下代码,然后 运行 您的 shell 脚本:

hadoop fs -ls -R /river > your/path/to/file.txt

如果您使用的是 Pig G运行t shell 或 Pig 脚本,则使用 shell utility commands

示例 file_name.pig 包含代码 fs -ls -R /river/entity/files

然后 运行 来自终端的猪脚本 PIG file_name.pig > your/path/to/file2.txt

是的,你可以!事实上,您可以像这样在 Pig 脚本中执行任何 shell 命令:

%declare dummy `hdfs dfs -ls -R /river/entity/files | hdfs dfs -put - hdfs://nn.example.com/hadoop/myfile.log`

但是您应该考虑到 Pig 语句不会按照脚本中出现的顺序执行!