配置表查询配置对象时出错 [英] hive table query Error in configuring object

查看:135
本文介绍了配置表查询配置对象时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将S3中的日志文件加载到EMR上运行的EMR中,但是在查看数据时我收到了所有NULL ...



我创建了表:

pre $ 创建外部表coglogs(
HostID字符串,
ProcessID字符串,
时间字符串,
TimeZoneOffset字符串,
SessionID字符串,
RequestID字符串,
SubRequestID字符串,
StepID字符串,
线程字符串,
组件字符串,
BuildNumber字符串,
级别字符串,
记录器字符串,
操作字符串,
ObjectType字符串,
ObjectPath字符串,
状态字符串,
消息字符串,
LogData字符串

ROW FORMAT SERDE'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES(
input.regex=([\d +] \S + [\d +])\t(\d +)\t([\d +] \ S + [\d +] [\d +] \S + [\d +])\t( - [\d +])\t([A-ZA-Z0-9_\S] *)\t([A- ZA-Z0-9_\S] *)\t([A-ZA-Z0-9_\S] * )\t([A-ZA-Z0-9_\S] *)\t([A-ZA-Z0-9_\S] *)\t([A-ZA-Z_\S ] *)\t([0-9] *)\t([0-9] *)\t([A-ZA-Z_\S] *)\t([A-ZA- ([a-zA-Z_'s] *)\ t([a-zA-Z_ \ s] *)\ t([a-zA-Z_ \\ s] *)\ t([a-zA-Z_\S] *)\ t([a-zA-Z_\S] *),
output.format.string =%1 $ s%2 $ s%3 $ s%4 $ s%5 $ s%6 $ s%7 $ s%8 $ s%9 $ s%10 $ s%11 $ s%12 $ s %13 $ s%14 $ s%15 $ s%16 $ s%17 $ s%18 $ s%19 $ s

位置's3n://infinilog/cogserver_hive.log' ;

然后加载数据:

 将数据inpath的s3n://infinilog/cogserver.log加载到表coglogs中; 

我检查了正则表达式rubular.com,它似乎是正确的,但为什么我没有收到任何数据回到配置单元表中?



这里是日志文件中的示例行:

  101.196.242.160:9300 11329 2016-01-27 18:35:14.132 -5 http-9300-297 caf 2047 2 Audit.dispatcher.caf请求警告安全错误 - 找到userCapabilities 
101.196.242.160 :9300 11329 2016-01-27 18:35:14.195 -5 F3820773ADD59754DEAFAFDFA0D2C3F2CDDF715483446C99B16BFA8040D0DDA4 9ss8Csyswh28w8sGC4hhvvMy2hw9d48Cd42y92y8 http-9300-299 CM 6102 3 Audit.Other.cms.CM QUERY REPORT /公共文件夹/ 1A报告/ PT /报告/摘要仪表板成功

编辑:

表(我看到很多行的所有列值都是None),但是当我运行这样的东西时:

 从中选择count(*)
coglogs
where status ='Failure'

或任何查询,我回到这里:

 此任务的诊断消息:
错误:java.lang.RuntimeException:配置对象时出错
at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:112)
处org.apache org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:78)
。 hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:136)
在org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
。在org.apache.hadoop.mapred。 MapTask.run(MapTask.java:344)
at org.apache.hadoop.mapred.YarnChild $ 2.run(YarnChild.java:172)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org .apache.hadoop.mapred.YarnChild.main(YarnChild.java:166)
导致:java.lang.reflect.InvocationTargetException $ b $ sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)
。在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke( Method.java:606)
在org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
... 9 more
引起:java.lang.RuntimeException :在org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:112)
配置对象
时出错org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:78 )
在org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:136)
在org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:42)
... 14个
产生的原因:java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)$ b。在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl $ B。
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org .apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
... 17 more
导致:java.lang.RuntimeException:Map运算符初始化失败
at org。 apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java:153)
... 22 more
引起:java.lang.NoSuchFieldError:stringTypeInfo
at org.apache.hadoop.hive.contrib.serde2.RegexSerDe.initialize(RegexSerDe.java:115)
在org.apache.hadoop.hive.serde2.SerDeUtils.initializeSerDe(SerDeUtils.java:521)
在org。 apache.hadoop.hive.ql.plan.PartitionDesc.getDeserializer(PartitionDesc.java:138)
在org.apache.hadoop.hive.ql.exec.MapOperator.getConvertedOI(MapOperator.java:297)
在org.apache.hadoop.hive.ql.exec.MapOperator.setChildren(MapOperator.java:333)
在org.apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java :122)
... 22 more


FAILED:执行错误,从org.apache.hadoop.hive.ql.exec.mr.MapRedTask返回代码2
MapReduce作业发布:
Stage-Stage-1:Map:1 Reduce:1 HDFS读取:0 HDFS写入:0 FAIL
Total MapReduce CPU使用时间:0毫秒

I'm loading a log file in S3 into Hive running on EMR but I'm getting all NULLs back when viewing the data...

I created the table like this:

create external table coglogs (
  HostID string,
ProcessID string,
Time string,
TimeZoneOffset string,
SessionID string,
RequestID string,
SubRequestID string,
StepID string,
Thread string,
Component string,
BuildNumber string,
Level string,
Logger string,
Operation string,
ObjectType string,
ObjectPath string,
Status string,
Message string,
LogData string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([\d+]\S+[\d+])\t(\d+)\t([\d+]\S+[\d+] [\d+]\S+[\d+])\t(-[\d+])\t([a-zA-Z0-9_\S]*)\t([a-zA-Z0-9_\S]*)\t([a-zA-Z0-9_\S]*)\t([a-zA-Z0-9_\S]*)\t([a-zA-Z0-9_\S]*)\t([a-zA-Z_\S]*)\t([0-9]*)\t([0-9]*)\t([a-zA-Z_\S]*)\t([a-zA-Z_\S]*)\t([a-zA-Z_\S ]*)\t([a-zA-Z_\S ]*)\t([a-zA-Z_\S ]*)\t([a-zA-Z_\S ]*)\t([a-zA-Z_\S ]*)",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s %10$s %11$s %12$s %13$s %14$s %15$s %16$s %17$s %18$s %19$s"
)
location 's3n://infinilog/cogserver_hive.log';

and then load the data:

load data inpath 's3n://infinilog/cogserver.log' into table coglogs;

I checked the regex rubular.com and it seems to be correct but why am i not getting any data back in the hive table?

here is an example line in the log file:

101.196.242.160:9300    11329   2016-01-27 18:35:14.132 -5                  http-9300-297   caf 2047    2   Audit.dispatcher.caf    Request         Warning     secure error - found userCapabilities
101.196.242.160:9300    11329   2016-01-27 18:35:14.195 -5  F3820773ADD59754DEAFAFDFA0D2C3F2CDDF715483446C99B16BFA8040D0DDA4    9ss8Csyswh28w8sGC4hhvvMy2hw9d48Cd42y92y8            http-9300-299   CM  6102    3   Audit.Other.cms.CM  QUERY   REPORT  /Public Folders/1A Reporting/PT/Reports/Summary Dashboard   Success     

EDIT:

so there is data in the table (I see a lot of rows with all column values as "None" though) but when I run something like this:

select count(*)
from coglogs
where status = 'Failure'

or any query, I get this back:

Diagnostic Messages for this Task:
Error: java.lang.RuntimeException: Error in configuring object
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:112)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:78)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:136)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:344)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:172)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:166)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
        ... 9 more
Caused by: java.lang.RuntimeException: Error in configuring object
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:112)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:78)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:136)
        at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:42)
        ... 14 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
        ... 17 more
Caused by: java.lang.RuntimeException: Map operator initialization failed
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java:153)
        ... 22 more
Caused by: java.lang.NoSuchFieldError: stringTypeInfo
        at org.apache.hadoop.hive.contrib.serde2.RegexSerDe.initialize(RegexSerDe.java:115)
        at org.apache.hadoop.hive.serde2.SerDeUtils.initializeSerDe(SerDeUtils.java:521)
        at org.apache.hadoop.hive.ql.plan.PartitionDesc.getDeserializer(PartitionDesc.java:138)
        at org.apache.hadoop.hive.ql.exec.MapOperator.getConvertedOI(MapOperator.java:297)
        at org.apache.hadoop.hive.ql.exec.MapOperator.setChildren(MapOperator.java:333)
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java:122)
        ... 22 more


FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1  Reduce: 1   HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec

解决方案

In hive you have to use "\" instead of "\" in regex

这篇关于配置表查询配置对象时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆