分享

hive shell的mr始终0%问题

李新魁 发表于 2014-10-27 01:39:16 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 7 12004
本帖最后由 pig2 于 2014-10-27 07:44 编辑

使用hive shell 的时候,
用命令 select * from tt; 查出来的数据是正确的。
用命令 select key from tt;
hive会使用内置的mapreduce但是始终map=0% reduce=0%
hive日志不会出现任何错误
CQ@F9~I(]NXHQ(VOONPQYZC.jpg

已有(7)人评论

跳转到指定楼层
李新魁 发表于 2014-10-27 01:40:14
使用的cdh5 ,hadoop的版本是2.3.0  hive版本是0.12.0
回复

使用道具 举报

bioger_hit 发表于 2014-10-27 07:55:34
导入的文本和字段列出来一下。执行下面命令,看看什么效果
SELECT * FROM tt LIMIT 5
回复

使用道具 举报

李新魁 发表于 2014-10-27 09:25:20
本帖最后由 李新魁 于 2014-10-27 09:26 编辑

导入的文本图片上有 就是3行  
erhgergherh fehwiugh
erngi fnreigh
wghiu ergui

创表是按照空格分隔符进行分列,
hive> create table tt (key string ,value string)
    > row format delimited
    > fields terminated by ' ';
字段是 key 和value 都是string类型。




回复

使用道具 举报

howtodown 发表于 2014-10-27 09:51:49
建议不要使用key,value这些敏感的词,很容易造成和关键字冲突。
如果一直卡住的话
1.看日志

不是你说的,shell输出
hive如何通过设置日志定位错误

也可参考下面内容

系统日志存储在位置:
在hive/conf/ hive-log4j.properties 文件中记录了Hive日志的存储情况,

默认的存储情况:

hive.root.logger=WARN,DRFA
hive.log.dir=/tmp/${user.name} # 默认的存储位置
hive.log.file=hive.log  # 默认的文件名

Job日志位置:

//Location of Hive run time structured log file
    HIVEHISTORYFILELOC("hive.querylog.location", "/tmp/" + System.getProperty("user.name")),
默认存储与 /tmp/{user.name}目录下。


2.看配置

hive.aux.jars.path切忌配置正确
不能有换行或则空格。特别是换行,看到很多文章都把他们给分开了,这对很多新手是一个很容易掉进去的陷阱。

  1. <property>
  2.   <name>hive.aux.jars.path</name>
  3.   <value>file:///usr/hive/lib/hive-hbase-handler-0.13.0-SNAPSHOT.jar,file:///usr/hive/lib/protobuf-java-2.5.0.jar,file:///usr/hive/lib/hbase-client-0.96.0-hadoop2.jar,file:///usr/hive/lib/hbase-common-0.96.0-hadoop2.jar,file:///usr/hive/lib/zookeeper-3.4.5.jar,file:///usr/hive/lib/guava-11.0.2.jar</value>
  4. </property>
复制代码


更多参考
hbase0.96与hive0.12整合高可靠文档及问题总结





回复

使用道具 举报

李新魁 发表于 2014-10-27 14:43:38
进行debug 一直显示这些。表结构是 create table tt(tc1 string,tc2 string) row format delimited fileds terminated by ' ';
导入的数据是
123 456
123 456

使用命令select tc1 from tt;
并且没有任何的报错。
8F6082225140D979C7A6CABC98892025.jpg

回复

使用道具 举报

desehawk 发表于 2014-10-27 17:06:00
试下下面数据,
create table tt(tc1 string,tc2 string) row format delimited fileds terminated by '\t';

导入的数据是(导入方式一定要正确)
123 456
124 455

先执行
  1. SELECT * FROM tt
复制代码



然后执行
  1. SELECT * FROM tt WHERE tc1="124"
复制代码

记得一定要注意大小写。如果上面还是不行,说明你的安装配置有问题。


参考这篇文章重新配置下
hbase0.96与hive0.12整合高可靠文档及问题总结




回复

使用道具 举报

李新魁 发表于 2014-10-31 16:56:03
本帖最后由 李新魁 于 2014-11-26 10:43 编辑

可能是因为电脑的配置问题,电脑硬件配置不足。
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条