当我试图运行一个pig脚本时,它有两个“store”到同一个文件
store Alert_Message_Count into 'out'; store Warning_Message_Count into 'out';
它挂起了,我的意思是在显示完成了50%之后就不能继续了。这不对吗?我们不能将两个结果存储在同一个文件(文件夹)中吗?
2lpgd9681#
hdfs没有附加模式。因此,在运行map reduce程序的大多数情况下,输出文件打开一次,写入数据,然后关闭。假设采用这种方法,就不能同时将数据写入同一个文件。试着把文件分开写,检查map red程序是否挂起。如果他们仍然这样做,那么还有一些其他问题。您可以获得结果并Mapreduce日志以分析出错的地方。[编辑:]不能写入同一文件或附加到现有文件。hdfs附加功能正在进行中。为此,您可以做两件事:1) 如果在alert\u message\u count和warning\u message\u count中有相同的模式内容,那么可以按照chris的建议使用union。2) 当架构不相同时进行后期处理。即编写一个map-reduce程序,将两个独立的输出合并为一个输出。
u4dcyp6a2#
通常,hadoopmapreduce不允许您将作业输出保存到已经存在的文件夹中,因此我猜这也不可能(因为pig将命令转换为一系列m/r步骤),但我希望出现某种形式的错误消息,而不是挂起。如果您打开集群作业跟踪器,并查看任务的日志,日志是否会产生任何有助于进一步诊断此问题的注意事项?可能也值得检查Pig邮件列表(如果你还没有)如果要将一个数据集附加到另一个数据集,请使用 union 关键字:
union
grunt> All_Count = UNION Alert_Message_Count, Warning_Message_Count; grunt> store All_Count into 'out';
2条答案
按热度按时间2lpgd9681#
hdfs没有附加模式。因此,在运行map reduce程序的大多数情况下,输出文件打开一次,写入数据,然后关闭。假设采用这种方法,就不能同时将数据写入同一个文件。
试着把文件分开写,检查map red程序是否挂起。如果他们仍然这样做,那么还有一些其他问题。
您可以获得结果并Mapreduce日志以分析出错的地方。
[编辑:]
不能写入同一文件或附加到现有文件。hdfs附加功能正在进行中。
为此,您可以做两件事:
1) 如果在alert\u message\u count和warning\u message\u count中有相同的模式内容,那么可以按照chris的建议使用union。
2) 当架构不相同时进行后期处理。即编写一个map-reduce程序,将两个独立的输出合并为一个输出。
u4dcyp6a2#
通常,hadoopmapreduce不允许您将作业输出保存到已经存在的文件夹中,因此我猜这也不可能(因为pig将命令转换为一系列m/r步骤),但我希望出现某种形式的错误消息,而不是挂起。
如果您打开集群作业跟踪器,并查看任务的日志,日志是否会产生任何有助于进一步诊断此问题的注意事项?
可能也值得检查Pig邮件列表(如果你还没有)
如果要将一个数据集附加到另一个数据集,请使用
union
关键字: