首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行Hive查询需要多少空闲磁盘空间?

运行Hive查询需要多少空闲磁盘空间?
EN

Stack Overflow用户
提问于 2015-03-10 06:23:22
回答 1查看 2.7K关注 0票数 0

我按照蜂巢查询运行

在(table_line_n_passed.chromosome_number=table_line_c_passed.chromosome_number)上将表table_llv_N_C作为选择table_line_n_passed.chromosome_number、table_line_n_passed.position、table_line_c_passed.id从table_line_n_passed连接table_line_c_passed创建

并得到跟随误差...... org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row (tag=1) {"key":{"joinkey0":"12"},"value":{"_col2":"."},"alias":1} at org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:258) ... 7 more Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hive-root/hive_2015-03-09_10-03-59_970_3646456754594156815-1/_task_tmp.-ext-10001/_tmp.000000_0 could only be replicated to 0 nodes instead of minReplication (=1). There are 2 datanode(s) running and no node(s) are excluded in this operation. ......

根本原因可能是HDFS集群中缺少磁盘空间。有关磁盘空间的详细信息包括

hdfs dfs -df -h

Filesystem Size Used Available Use%

hdfs://x.y.ab.com:8020 159.7 G 21.9 G 110.7 G 14%

具有4767409行和1.1G大小的table_line_n_passed。

同样,具有4717082行和1.0G大小的table_line_c_passed。

Hive真的需要这么大的空间(比可用的空闲空间110 G)来处理数据吗?如何计算在运行查询之前需要多少空闲空间,如何在可用的空闲空间内运行查询。

PS:如果我在上面的查询中使用极限10000,它的运行情况很好。

执行计划

EXPLAIN create table table_llv_N_C as select table_line_n_passed.chromosome_number,table_line_n_passed.position,table_line_c_passed.id from table_line_n_passed join table_line_c_passed on (table_line_n_passed.chromosome_number=table_line_c_passed.chromosome_number);

好的

抽象语法树:

(TOK_CREATETABLE (TOK_TABNAME table_llv_N_C) TOK_LIKETABLE (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_TABREF (TOK_TABNAME table_line_n_passed)) (TOK_TABREF (TOK_TABNAME table_line_c_passed)) (= (. (TOK_TABLE_OR_COL table_line_n_passed) chromosome_number) (. (TOK_TABLE_OR_COL table_line_c_passed) chromosome_number)))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL table_line_n_passed) chromosome_number)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL table_line_n_passed) position)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL table_line_c_passed) id))))))

STAGE DEPENDENCIES:

(Stage-1 is a root stage

Stage-0 depends on stages: Stage-1

Stage-4 depends on stages: Stage-0

Stage-2 depends on stages: Stage-4

阶段计划:阶段-1地图减少别名->映射操作符树: table_line_c_passed TableScan别名: table_line_c_passed减少输出操作符键表达式: expr: chromosome_number类型: string排序顺序:+Map-减少分区列: expr: chromosome_number类型: string标记:1值表达式: expr: id类型: string table_line_n_passed TableScan别名: table_line_n_passed减少输出操作符键表达式: expr: chromosome_number类型: string排序顺序:+Map-减少分区列: expr: chromosome_number类型: string标记:0值表达式: expr: chromosome_number类型: string :位置类型: Inner : Join操作符条件映射:内部连接0到1条件表达式:0 {VALUE._col0} {VALUE._col1} 1 {VALUE._col2} handleSkewJoin: false outputColumnNames:_col0,_col1,_col14选择操作符表达式: expr:_col0类型: string:_col1类型: int:_col14类型::_col0,_col1,压缩的_col2文件输出操作符: false GlobalTableId: 1表:输入格式: org.apache.hadoop.mapred.TextInputFormat输出格式:org.apache.hadoop.mapred.TextInputFormat名称: bright.table_llv_N_C 阶段:阶段-0移动操作符文件: hdfs目录:真正的目标: hdfs://cheetah.xxx.yyyy.in:8020/user/hive/warehouse/bright.db/table_llv_n_c 阶段:第4阶段创建表操作符:创建表列: chromosome_number字符串、位置int、id字符串(如果不存在):false输入格式: org.apache.hadoop.mapred.TextInputFormat #存储桶:-1输出格式: table_llv_N_C名称:table_llv_N_C isExternal: false 阶段:第2阶段-Aggr算子

时间: 0.146秒

EN

回答 1

Stack Overflow用户

发布于 2015-03-10 06:29:48

转到以下链接:https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

找这个标签。或者在页面上搜索内存使用情况,以便轻松到达那里。

代码语言:javascript
复制
hive.map.aggr.hash.force.flush.memory.threshold

也可参考此标记或转到第二次搜索内存使用情况。

代码语言:javascript
复制
hive.mapjoin.localtask.max.memory.usage
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28957347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档