hive join 空指针异常

2015-07-28 10:03:21,557 Stage-2 map = 100%,  reduce = 0%
Ended Job = job_1437720498561_1035 with errors
Error during job, obtaining debugging information...
Examining task ID: task_1437720498561_1035_m_000000 (and more) from job job_1437720498561_1035

Task with the most failures(4):
-----
Task ID:
  task_1437720498561_1035_m_000000

URL:
  http://0.0.0.0:8088/taskdetails.jsp?jobid=job_1437720498561_1035&tipid=task_1437720498561_1035_m_000000
-----
Diagnostic Messages for this Task:
Error: java.lang.RuntimeException: java.lang.NullPointerException
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:172)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
        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:158)
Caused by: java.lang.NullPointerException
        at org.apache.hadoop.hive.ql.exec.MapJoinOperator.loadHashTable(MapJoinOperator.java:286)
        at org.apache.hadoop.hive.ql.exec.MapJoinOperator.cleanUpInputFileChangedOp(MapJoinOperator.java:313)
        at org.apache.hadoop.hive.ql.exec.Operator.cleanUpInputFileChanged(Operator.java:1069)
        at org.apache.hadoop.hive.ql.exec.Operator.cleanUpInputFileChanged(Operator.java:1073)
        at org.apache.hadoop.hive.ql.exec.Operator.cleanUpInputFileChanged(Operator.java:1073)
        at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:501)
        at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:163)
        ... 8 more

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

hive join 操作时若发生NullPointerException,请执行 set hive.auto.convert.join=false;
如设置hive.auto.convert.join的值为true,hive将在表的大小符合设置时自动使用MapJoin

时间: 2024-11-08 22:53:44

hive join 空指针异常的相关文章

Hive JOIN使用详解

转自http://shiyanjun.cn/archives/588.html Hive是基于Hadoop平台的,它提供了类似SQL一样的查询语言HQL.有了Hive,如果使用过SQL语言,并且不理解Hadoop MapReduce运行原理,也就无法通过编程来实现MR,但是你仍然可以很容易地编写出特定查询分析的HQL语句,通过使用类似SQL的语法,将HQL查询语句提交Hive系统执行查询分析,最终Hive会帮你转换成底层Hadoop能够理解的MR Job. 对于最基本的HQL查询我们不再累述,这

hive join 优化 --小表join大表

1.小.大表 join 在小表和大表进行join时,将小表放在前边,效率会高,hive会将小表进行缓存. 2.mapjoin 使用mapjoin将小表放入内存,在map端和大表逐一匹配,从而省去reduce. 例子: select /*+MAPJOIN(b)*/ a.a1,a.a2,b.b2 from tablea a JOIN tableb b ON a.a1=b.b1 在0.7版本后,也可以用配置来自动优化 set hive.auto.convert.join=true;

一例 Hive join 优化实战

由于 hive 与传统关系型数据库面对的业务场景及底层技术架构都有着很大差异,因此,传统数据库领域的一些技能放到 Hive 中可能已不再适用.关于 hive 的优化与原理.应用的文章,前面也陆陆续续的介绍了一些,但大多都偏向理论层面,本文就介绍一个实例,从实例中一步步加深对 hive 调优的认识与意识. 1.需求 需求我做了简化,很简单,两张表做个 join,求指定城市,每天的 pv,用传统的 RDBMS SQL 写出来就这样的: SELECT t.statdate, c.cname, coun

Hive Join

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins LanguageManualJoins Join Syntax Hive支持下面的表join语法结构: join_table: table_reference JOIN table_factor[join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER]JOIN table_reference jo

hive join on和where条件之间的区别

hive> select ljn001.*,ljn002.* > from ljn001 left outer join ljn002   > on (ljn001.a = ljn002.a and ljn001.b = ljn002.b and ljn001.b = 2); OK a       b       a       b 1       2       1       2从执行计划中可以看出Hive在扫描ljn001表的map操作时就已经对b = 2进行了过滤.可见Hive把

hive join详解

语法 join_table: table_referenceJOIN table_factor [join_condition] | table_reference{LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference[url=]LEFT SEMIJOIN[/url]  table_reference join_condition table_reference: table_factor |

Hive Join Strategies hive的连接策略

Common Join 最为普通的join策略,不受数据量的大小影响,也可以叫做reduce side join ,最没效率的一种join 方式. 它由一个mapreduce job 完成. 首先将大表和小表分别进行map 操作, 在map shuffle 的阶段每一个map output key 变成了table_name_tag_prefix + join_column_value , 但是在进行partition 的时候它仍然只使用join_column_value 进行hash. 每一个

Hive中JOIN操作

1. 只支持相等JOIN. 2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业. 3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后. SELECT /*+ STREAMTABLE(a) */ a.val, b.val, c.val FROM a JOIN b ON (a.key = b.key1) JOIN c ON (c.key = b.key1)//暗示 4. JOIN在WHERE子句前进行处理. SELECT a.val, b.val FRO

Hive入门到剖析(二)

5 Hive参数 hive.exec.max.created.files 说明:所有hive运行的map与reduce任务可以产生的文件的和 默认值:100000 hive.exec.dynamic.partition 说明:是否为自动分区 默认值:false hive.mapred.reduce.tasks.speculative.execution 说明:是否打开推测执行 默认值:true hive.input.format 说明:Hive默认的input format 默认值: org.a