我有一个脚本,试图根据日志文件获取用户开始/结束日期的时间。作业在完成之前总是失败,并且似乎每次都会击倒2个数据节点。
脚本的加载部分:
log = LOAD '$data' USING SieveLoader('@source_host', 'node', 'uid', 'long_timestamp', 'type');
log_map = FILTER log BY $0 IS NOT NULL AND $0#'uid' IS NOT NULL AND $0#'type'=='USER_AUTH';
我们正在阅读大约6500个文件,因此它似乎产生了许多地图任务。 SieveLoader是一个自定义UDF,它加载一行,将其传递给现有方法,该方法从该行解析字段并在映射中返回它们。传入的参数是将地图的大小限制为仅涉及我们所关注的字段。
我们的群集有5个数据节点。我们有四核,每个节点允许3个map / reduce插槽,总共15个。任何建议都将非常感谢!