执行前hive查询执行强度估计
Intensity of hive query execution estimate before execution
我支持带有 HIVE 服务的 Hadoop 集群,但我不是 HIVE 开发人员。其中一位开发人员是 运行 长查询(请参阅下面的示例)。作业失败并显示一些神秘的错误消息(请参阅下文)。
我怀疑此查询过于激烈或未优化或两者兼而有之。我怎么知道查询是否会过于激烈?
当我监控 Hive 服务器负载时,负载仅为(w 输出)1.5,网络带宽峰值为 5.7 Mbps/sec。 CPU 前 java 个进程消耗的资源低于 2%。我没有看到真正的证据表明查询正在破坏配置单元服务器(配置单元集群中只有 1 个配置单元服务器)。
Hive Metastore Canary 持续时间从 <1 秒变为 2.5 秒。
我怎么知道这个或任何其他查询是否过于激烈?
查询:
SELECT duid,GET_JSON_OBJECT(json_data,'$.app.p') 作为平台,MIN(GET_JSON_OBJECT(json_data,'$.generated.ats')) as first_boot_ts FROM raw.raw_events_duid WHERE app='atlas_qa' AND ds>='20160306' and ds<='20160326' AND duid ='00001656-da4f-47dc -8619-2868198ed25a' GROUP BY duid,GET_JSON_OBJECT(json_data, '$.app.p') limit 10;
服务器上的示例错误:
hadoop-cmf-hive-HIVEMETASTORE-qn7bi02hdn001.compliant.disney.private.log.out:2016-05-04 12:21:58,115 INFO org.apache.hadoop.hive.metastore.ObjectStore: 无法从表达式字符串 [(null and (ds = ' 20160501'))]解析分区过滤器时出错;词法分析器错误:空;异常 NoViableAltException(11@[])
当 Get_json_object
为 运行 时,可能有一些空数据 returning。从查询中删除这两个,然后 运行 它 .. 它将 运行 正常.. 从 MIN(GET_JSON_OBJECT(json_data, '$.generated.ats'))
.
编辑了一些空数据 return
此外,我们还有 string get_json_object(string json_string, string path)
,其中:
- 根据指定的 json 路径从 json 字符串中提取 json 对象
- Returns json 提取的 json 对象的字符串。
- 如果输入的 json 字符串无效,它将 return 为 null。
注意: json 路径只能包含字符 [0-9a-z_]
,即不能包含大写或特殊字符。此外,键 不能以数字开头。 这是由于 Hive 列名称的限制。
希望这对您有所帮助
我支持带有 HIVE 服务的 Hadoop 集群,但我不是 HIVE 开发人员。其中一位开发人员是 运行 长查询(请参阅下面的示例)。作业失败并显示一些神秘的错误消息(请参阅下文)。
我怀疑此查询过于激烈或未优化或两者兼而有之。我怎么知道查询是否会过于激烈?
当我监控 Hive 服务器负载时,负载仅为(w 输出)1.5,网络带宽峰值为 5.7 Mbps/sec。 CPU 前 java 个进程消耗的资源低于 2%。我没有看到真正的证据表明查询正在破坏配置单元服务器(配置单元集群中只有 1 个配置单元服务器)。
Hive Metastore Canary 持续时间从 <1 秒变为 2.5 秒。
我怎么知道这个或任何其他查询是否过于激烈?
查询: SELECT duid,GET_JSON_OBJECT(json_data,'$.app.p') 作为平台,MIN(GET_JSON_OBJECT(json_data,'$.generated.ats')) as first_boot_ts FROM raw.raw_events_duid WHERE app='atlas_qa' AND ds>='20160306' and ds<='20160326' AND duid ='00001656-da4f-47dc -8619-2868198ed25a' GROUP BY duid,GET_JSON_OBJECT(json_data, '$.app.p') limit 10;
服务器上的示例错误: hadoop-cmf-hive-HIVEMETASTORE-qn7bi02hdn001.compliant.disney.private.log.out:2016-05-04 12:21:58,115 INFO org.apache.hadoop.hive.metastore.ObjectStore: 无法从表达式字符串 [(null and (ds = ' 20160501'))]解析分区过滤器时出错;词法分析器错误:空;异常 NoViableAltException(11@[])
当 Get_json_object
为 运行 时,可能有一些空数据 returning。从查询中删除这两个,然后 运行 它 .. 它将 运行 正常.. 从 MIN(GET_JSON_OBJECT(json_data, '$.generated.ats'))
.
此外,我们还有 string get_json_object(string json_string, string path)
,其中:
- 根据指定的 json 路径从 json 字符串中提取 json 对象
- Returns json 提取的 json 对象的字符串。
- 如果输入的 json 字符串无效,它将 return 为 null。
注意: json 路径只能包含字符 [0-9a-z_]
,即不能包含大写或特殊字符。此外,键 不能以数字开头。 这是由于 Hive 列名称的限制。
希望这对您有所帮助