首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询包含水槽流的外部表时出现的单元错误

查询包含水槽流的外部表时出现的单元错误
EN

Stack Overflow用户
提问于 2015-10-06 11:09:33
回答 1查看 598关注 0票数 1

在CDH 5.4上,我试图在Twitter分析上创建一个演示,使用:

  1. 将tweet捕获到HDFS文件夹的水槽
  2. 使用Hive-Serde查询tweet的蜂巢

步骤1是成功的。我可以看到,这些tweet正在被捕获并正确地定向到所需的HDFS文件夹。我注意到,首先创建一个临时文件,然后将其转换为永久文件:

代码语言:javascript
复制
-rw-r--r--   3 root hadoop       7548 2015-10-06 06:39 /user/flume/tweets/FlumeData.1444127932782
-rw-r--r--   3 root hadoop      10034 2015-10-06 06:39 /user/flume/tweets/FlumeData.1444127932783.tmp

我使用的是下表声明:

代码语言:javascript
复制
CREATE EXTERNAL TABLE tweets(
    id bigint, 
    created_at string, 
    lang string, 
    source string, 
    favorited boolean, 
    retweet_count int, 
    retweeted_status 
    struct<text:string,user:struct<screen_name:string,name:string>>,
    entities struct<urls:array<struct<expanded_url:string>>,
    user_mentions:array<struct<screen_name:string,name:string>>,
    hashtags:array<struct<text:string>>>,
    text string,
    user struct<location:string,geo_enabled:string,screen_name:string,name:string,friends_count:int,followers_count:int,statuses_count:int,verified:boolean,utc_offset:int,time_zone:string>,
    in_reply_to_screen_name string)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 'hdfs://master.ds.com:8020/user/flume/tweets';

但是,当我查询这个表时,我会得到以下错误:

代码语言:javascript
复制
hive> select count(*) from tweets;

Ended Job = job_1443526273848_0140 with errors
...
Diagnostic Messages for this Task:
Error: java.io.IOException: java.lang.reflect.InvocationTargetException
        at org.apache.hadoop.hive.io.HiveIOExceptionHandlerChain.handleRecordReaderCreation
        ... 11 more

Caused by: java.io.FileNotFoundException: File does not exist: /user/flume/tweets/FlumeData.1444128601078.tmp
        at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:66)
        ...

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:

Stage-Stage-1: Map: 2  Reduce: 1   Cumulative CPU: 1.19 sec   HDFS Read: 10492 HDFS Write: 0 FAIL

我认为这个问题与临时文件有关,该文件是由Hive查询生成的映射减少作业,而不是正在读取的。是否可以进行一些工作或配置更改来成功地处理这一问题?

EN

回答 1

Stack Overflow用户

发布于 2016-01-15 11:59:30

我也有过同样的经历,我通过将some_agent.hdfssink.hdfs.inUsePrefix = . hdfs.inUseSuffix = .temp下面的hdfs接收器配置添加到我的flume配置文件来解决这个问题。

希望它能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32968450

复制
相关文章

相似问题

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