FAILED:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。组织/阿帕奇/ Hadoop的/蜂房/ serde2 / SERDE

时间:2017-12-12 12:10:01

标签: hadoop hive hiveql

我正在处理twitter数据以hive外部表,但在创建hive外部表时我收到错误。请查看下面的代码。

  1. 添加了jar文件以移动hive / lib位置。
  2. 使用以下命令添加到jar文件配置单元中   我在hive lib目录中添加了流动的jar:

    ADD JAR /usr/local/hive/lib/hive-serdes-1.0-SNAPSHOT.jar;
    

    请找到外部蜂巢表:

    CREATE EXTERNAL TABLE Mytweets_raw (
    id BIGINT,
    created_at STRING,
    source STRING,
    favorited BOOLEAN,
    retweet_count INT,
    retweeted_status STRUCT<text:STRING,tuser: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,
    tuser STRUCT<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'
    LOCATION 'hdfs://localhost:54310/data/tweets_raw';
    

    在此之后我收到以下错误消息,请任何机构可以提供帮助吗?

  3. 更多信息:我目前的环境是

    • Hadoop 2.9.0
    • Hive 2.3.2

2 个答案:

答案 0 :(得分:1)

这对我有用, 我只需要将serde格式从'com.cloudera.hive.serde.JSONSerDe'替换为'org.openx.data.jsonserde.JsonSerDe',错误就可以解决了。祝你好运!

 CREATE EXTERNAL TABLE tweets4 (
    id BIGINT,
    created_at 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<
    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 'org.openx.data.jsonserde.JsonSerDe'
 LOCATION '/twitter-project/project1';

答案 1 :(得分:0)

错误代码1表示权限问题。确定问题非常困难(主要是环境问题)。我们收到此错误的原因可能有很多。请尝试以下情况,看看是否收到同样的错误。

1)检查您是否有权创建表(Hive路径)。

2)创建简单的Hive外部表(您可以确认您有元存储的访问权限)

3)通过指向HDFS位置创建简单外部Hive表(您可以确认您对HDFS路径的访问权限)

4)通过指向本地路径创建Simple External Hive表(您可以确认本地路径的访问权限)

5)检查您对jar位置有777权限。

我建议尝试除上述情况之外可能存在许可问题的多个案例。