分享

Hive语句执行不能调用多个节点,只能单个节点执行

Hadoop集群是用5个节点搭建的,每个节点都是没有问题,相互之间是可以通信的,在执行hive语句的时候,每次只有一个节点或者两个节点工作,这样没有达到分布式的处理的宗旨,所以想请问下各位大神,该如何调整才能保证所有节点都参与进来提升查询的效率呢?


已有(8)人评论

跳转到指定楼层
desehawk 发表于 2017-7-12 19:33:04
翟振华 发表于 2017-7-12 18:23
非常感谢,根据你的提示,查看了history,一个Job是不是只会有一个节点来执行,一个HSQL语句会分成很多的J ...

首先看下是否在 uber 模式running in uber mode : false


另外一点可以仔细观看,在mapreduce运行的过程中,其实各个节点,都是在动态分配Container,而且用完就没了。所以看不到。如下图
1.jpg
这个在在各个节点运行的。对于楼主看到的都在一个节点,可能只是日志的位置。
回复

使用道具 举报

qcbb001 发表于 2017-7-12 09:43:41
第一:让数据负载均衡 reblance一下
第二:增加并行线程试试
// 开启任务并行执行
set hive.exec.parallel=true;
// 同一个sql允许并行任务的最大线程数
set hive.exec.parallel.thread.number=8;

回复

使用道具 举报

翟振华 发表于 2017-7-12 09:55:26
谢谢这位大神的解答,目前我还没有做数据负债均衡,增加线程之后还是只调用一个节点执行。具体如下附件截图。
1499824330.png
回复

使用道具 举报

nextuser 发表于 2017-7-12 13:49:31
本帖最后由 nextuser 于 2017-7-12 13:52 编辑
翟振华 发表于 2017-7-12 09:55
谢谢这位大神的解答,目前我还没有做数据负债均衡,增加线程之后还是只调用一个节点执行。具体如下附件截图 ...

map和reduce分别多少。有多少数据
回复

使用道具 举报

langke93 发表于 2017-7-12 14:59:17
翟振华 发表于 2017-7-12 09:55
谢谢这位大神的解答,目前我还没有做数据负债均衡,增加线程之后还是只调用一个节点执行。具体如下附件截图 ...

看的也页面不对,这个只是说你运行了一个应用,但是并看不到,你哪运行的。
所以需要看下jobhistory.
http://master:19888/jobhistory/app
1.jpg
然后点进去就能看到了。

如果没有启动history,先启动下,然后查看
[mw_shl_code=bash,true]mr-jobhistory-daemon.sh  start historyserver
[/mw_shl_code]
回复

使用道具 举报

夏洛特猫 发表于 2017-7-12 15:48:01
减少每个节点的可用线程数或者增大数据量 让每个节点都能分配到任务
回复

使用道具 举报

翟振华 发表于 2017-7-12 18:23:12
langke93 发表于 2017-7-12 14:59
看的也页面不对,这个只是说你运行了一个应用,但是并看不到,你哪运行的。
所以需要看下jobhistory.
h ...

非常感谢,根据你的提示,查看了history,一个Job是不是只会有一个节点来执行,一个HSQL语句会分成很多的JOb来执行?如果是分成多个Job的话,它的执行也是串行的,而不是并行的。具体可以看下截图。
1499854753(1).png
回复

使用道具 举报

翟振华 发表于 2017-7-14 12:48:37
desehawk 发表于 2017-7-12 19:33
首先看下是否在 uber 模式running in uber mode : false

好的,非常谢谢,这个可能是其中的一个原因,这两天发现集群的内存应该是没有上去,默认每个节点是8G的,但是我们这边修改了yarn-site.xml的配置文件,但是重启之后节点的内存还是8G,我个人在测试环境上验证过,这么调整是有效的,不知道是不是有其他的配置影响了yarn-stie.xml文件的属性配置呢,也请帮忙分析下。具体的文件配置如下:

1500007538(1).png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条