Hive query在启动job并生成Tracking URL后,没有启动MapReduce进程



我正在使用Apache Hive。我在Hive中创建了一个表(类似于外部表),并使用LOAD DATA LOCAL INPATH './Desktop/loc1/kv1.csv' OVERWRITE INTO TABLE adih;命令将数据加载到同一个表中。

虽然我能够从hive表adih(例如select * from adih, select c_code from adih limit 1000等)中检索简单的数据,但当我要求涉及轻微计算的数据(例如select count(*) from adih, select distinct(c_code) from adih)时,hive会给我错误。

Hive cli输出如下链接-

hive> select distinct add_user from adih;

查询ID = latize_20161031155801_8922630f-0455-426b-aa3a-6507aa0014c6

总作业数= 1

启动Job 1 out of 1

未指定的reduce任务数。从输入数据大小估计:1

为了改变一个reducer的平均负载(以字节为单位):

设置hive.exec.reducers.bytes.per.reducer =

为了限制reducer的最大数目:

设置hive.exec.reducers.max =

为了设置一个固定数量的减速机:

设置mapreduce.job.reduces =

起始任务= job_1477889812097_0006,跟踪URL = http://latize-data1:20005/proxy/application_1477889812097_0006/

Kill命令=/opt/hadoop-2.7.1/bin/hadoop job -kill job_1477889812097_0006

[6]+ Stopped $HIVE_HOME/bin/hive

Hive停止显示任何超出"Kill Command"最后一行的日志/操作

不确定我在哪里出了问题(StackOverflow上的许多答案往往指向YARN配置(下面详细介绍环境配置)。我也有日志,但它包含超过30000个字符(堆栈溢出限制)

我的hadoop环境配置如下-1名称节点&1数据节点。每个都有20 GB的RAM和足够的ROM。为yarn.scheduler分配了13 GB的RAM。maximum-allocation-mbyarn.nodemanager.resource。内存-mb每个与mapreduce.map.memory。mb设置为4gb, mapreduce.reduce.memory。mb设置为12gb。reducer的数量目前设置为默认值(-1)。此外,Hive被配置为使用MySQL数据库运行(而不是Derby)。

您应该为您的跟踪中显示的属性设置适当的值,

编辑hive-site.xml中的属性

 <property>
<name>hive.exec.reducers.bytes.per.reducer</name>
<value>67108864</value></property>

看起来您已经设置了mapred.reduce.tasks = -1,这使得Hive参考其配置来决定reduce任务的数量。你得到一个错误,因为在Hive配置中缺少减少器的数量。尝试使用下面的命令设置它:

Hive> SET mapreduce.job.reduce =XX

根据官方文档:正确的减少数似乎是0.95或1.75乘以(<不。节点> * <不。>

我设法让Hive和MR工作-为所有涉及的进程增加内存配置:增加分配给YARN Scheduler的RAM和分配给YARN Nodemanager的最大RAM(在YARN -site.xml中),同时增加分配给Mapper和Reducer的RAM(在mapred-site.xml中)。还合并了@Sathiyan S和@vmorusu的部分答案-将Hive . exers .reducers.bytes.per.reducer属性设置为1gb的数据,这直接影响Hive使用的reducer的数量(通过应用其启发式技术)

相关内容

  • 没有找到相关文章

最新更新