本文详细记录了Hive on Tez的上线部署过程,包括适用场景、使用方法以及遇到的挑战。在Tez中,Map和Reduce任务可以独立,提升了运算效率,特别适合多阶段Reduce和多路Join操作。在实际部署中,遇到了容器初始化失败的错误,原因是垃圾回收器设置冲突。此外,还讨论了一个诡异的问题:文件时间戳不一致导致的资源下载失败,通过忽略时间戳差异解决了问题。最后,提出了Tez作业resource分发原理和会话超时两个待研究问题。
摘要由CSDN通过智能技术生成
前言:
Tez在Hive 0.13.0版本引入,全称Hive on Tez。顾名思义就是基于Tez之上的运行Hive作业的形式。具体Tez是什么?Tez是一种运算框架,MapReduce是一种运算框架,这么说应该懂了。
set mapreduce.reduce.java.opts=-Xmx1536m -verbose:gc -Xloggc:/opt/hadoop/bfdhadoop26/logs/hadoop/@taskid@.gc;
set mapreduce.map.java.opts=-Xmx1536m -verbose:gc -Xloggc:/opt/hadoop/bfdhadoop26/logs/hadoop/@taskid@.gc;
踩坑记录:
在运行时,报错:
2015-04-2010:19:59,437WARN org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Exception from container-launch with container ID: container_1429505171727_0001_02_000001 and exit code: -1
ExitCodeException exitCode=-1:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:702)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:300)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145