执行远程 Apache Pig 脚本时如何查看终端日志
Posted
技术标签:
【中文标题】执行远程 Apache Pig 脚本时如何查看终端日志【英文标题】:How to view the terminal log when executing a remote Apache Pig script 【发布时间】:2015-07-07 15:18:11 【问题描述】:我在 Apache Pig 中编写了一个脚本,该脚本正在 Hadoop 集群上执行。它加载约 55,000 个 .gz 文件,需要 35 小时才能完成。然后它应该将结果存储在一个文件中,但它没有,所以我想调试发生了什么。
我通过键入以下内容来执行脚本:
pig script.pig
在 Ubuntu 虚拟机的终端中,我看到有关作业进度等的信息消息。即使关闭本地计算机,我如何才能查看这些消息?我真的需要让我的本地机器运行整整 35 小时才能看到这些消息吗?
我知道您可以在 Ubuntu 中键入命令并通过键入以下内容来存储响应:
command > logfile.txt
但是我觉得这里不行,因为hadoop hdfs系统和虚拟机之间的连接在关闭本地机器的过程中丢失了,所以日志消息必须存储在hadoop集群上。但是如何实现这一点,或者这是自动完成的,我根本不知道在哪里看?
【问题讨论】:
【参考方案1】:如果你从本地机器上运行,如果进程被终止(例如通过关闭你的机器),那么 hadoop 将终止工作。这就是为什么您通常希望从集群中的机器或某个 24/7 运行的门户节点开始长时间运行的作业。
如果您可以使用它,您还可以使用 Oozie 之类的东西来运行您的作业,然后 Oozie 服务器将负责运行该作业并提供日志。
【讨论】:
感谢您的回答。由于我认为我无法从集群中的机器上运行该作业,因此我只将本地计算机保持开启了 40 小时,这也可以正常工作。以上是关于执行远程 Apache Pig 脚本时如何查看终端日志的主要内容,如果未能解决你的问题,请参考以下文章
运行 Apache Pig 脚本时如何查找 jar 依赖项?
在 python 脚本中,如何忽略 Apache Pig 的 Python 装饰器以进行独立单元测试
如何使用 apache pig 在 hadoop 集群上加载文件?
使用 hacatalog 在 tez 模式下运行 pig 脚本时出错