Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 配置单元RegexSerDe未提供正确的输出_Hadoop_Mapreduce_Hive_Bigdata - Fatal编程技术网

Hadoop 配置单元RegexSerDe未提供正确的输出

Hadoop 配置单元RegexSerDe未提供正确的输出,hadoop,mapreduce,hive,bigdata,Hadoop,Mapreduce,Hive,Bigdata,我有输入文本文件的数据作为 0000856214AB25 256吨PL1423AS 2563458547CD12 748 S AK2523YU 在正则表达式查询下面使用以获取输出 hive> CREATE TABLE test_regex( >f1 STRING,f2 STRING, >f3 STRING,f4 STRING, >f5 STRING,f6 STRING, >f7 STRING) ROW FORMAT SERDE 'org.apache.hadoop.

我有输入文本文件的数据作为

0000856214AB25 256吨PL1423AS

2563458547CD12 748 S AK2523YU

在正则表达式查询下面使用以获取输出

hive> CREATE TABLE test_regex(
>f1 STRING,f2 STRING,
>f3 STRING,f4 STRING,
>f5 STRING,f6 STRING,
>f7 STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' 
>WITH SERDEPROPERTIES ("input.regex" = 
>"([0-9]{10})([A-Z]{2})([0-9]{2})\\s+([0-9]{3})\\s+([A-Z]{1})\\s+([A-Z]{2})([A-Z0-9]{6})",
>"output.format.string" = "%1$s %2$s %3$s %4$s %5s %6s %7s")
>STORED AS TEXTFILE;
输出:

hive> select *from test_regex;

0000856214  AB  25  256 T   PL  1423AS

2563458547  CD  12  748 S   AK  2523YU
但当我尝试使用下面的查询获取输出时

Query: Select f1 from test_regex;
or     Select f1,f3,f5 from test_regex;
输出:错误

失败:执行错误,从org.apache.hadoop.hive.ql.exec.mr.MapRedTask返回代码2

` . . 有人能帮我重新爱上上面的问题吗


提前感谢。

这不是真正的错误,以下是如何找到它: 转到hadoop jobtracker web仪表板,找到失败的配置单元mapreduce作业,并查看失败任务的日志。这会告诉你真正的错误

或 在tmp/user/hive.log中,查看日志

找不到由org.apache.hadoop.hive.contrib.serde2.RegexSerDe引起的

然后在hive中,根据系统路径添加jar

 ADD JAR /home/user17/hive/hive-contrib-0.8.1.jar

select f1 from test_regex; 
输出

0000856214
2563458547

请发布完整的错误消息。将整个错误分为三部分发布。MapReduce作业总数=1启动作业1(共1个reduce任务数)设置为0,因为没有reduce操作符启动作业=作业\u 201410131439\u 0291,跟踪URL=s.jsp?作业ID=作业\u 201410131439\u 0291 Kill命令=/usr/lib/hadoop/bin/hadoop作业-Kill作业\u 201410131439\u 0291第1阶段的hadoop作业信息:映射者数量:1;减速机数量:0 2014-12-01 19:25:08109第一阶段图=0%,减速机=0%2014-12-01 19:26:01107第一阶段图=100%,减速机=100%结束作业=Job_201410131439_0291,作业期间出现错误,获取调试信息。。。作业跟踪URL:检查任务ID:task\u 201410131439\u 0291\u m\u000002及更多来自最失败的Job Job\u 201410131439\u 0291任务4:---任务ID:task\u 201410131439\u 0291\u m\u000000 URL:---此任务的诊断消息:java.lang.RuntimeException:在org.apache.hadoop.util.ReflectionUtils.setJobConf配置对象时出错ReflectionUtils.java:75在org.apache.hadoop.util.ReflectionUtils.newInstanceReflectionUtils.java:133在org.apache.hadoop.mapred.MapTask.runOldMapperMapTask.java:413在org.apache.hadoop.mapred.MapTask.runMapTask.java:332在org.apache.hadoop.mapred.Child$4.runChild.java:268在java:415位于org.apache.hadoop.security.UserGroupInformation.doAsUserGroupInformation.java:1548位于org.apache.hadoop.mapred.Child.mainChild.java:262由以下原因引起:java.lang.reflect.InvocationTargetException位于sun.reflect.NativeMethodAccessorImpl.Invoke0 sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:57位于sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.ja失败:执行错误,从org.apache.hadoop.hive.ql.exec.mr.MapRedTask MapReduce作业返回代码2启动:作业0:Map:1 HDFS读取:0 HDFS写入:0失败MapReduce CPU总时间花费:0毫秒您可以检查并帮助ThanksI查看/usr/lib/hive/lib路径下的hive contrib jar文件。这是我所期待的正确道路吗??接下来该怎么做?然后在配置单元终端上执行此命令。添加JAR/usr/lib/hive/lib/hive-contrib-0.8.1.jarHi@Kishore如何在使用上述查询获得如下结果后添加25和12?0000856214 AB 25 256 T PL 1423AS 2563458547 CD 12 748 S AK 2523YU谢谢,PalashI我没有收到您的查询,您想做单行还是想添加25和12?我想添加25和12,因为在上面提到的查询中,它被定义为字符串。那么我们需要转换它还是可以直接转换?
0000856214
2563458547