如何在调试模式下运行配置单元

sac*_*ing 8 java hadoop hive

我从cloudera网站上拿了一个例子来编写一个用于解析文件的自定义SerDe

http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/

这似乎是一个很好的例子,但当我用自定义serde创建表

ADD JAR <path-to-hive-serdes-jar>;

CREATE EXTERNAL TABLE tweets (
  id BIGINT,
  created_at STRING,
  source STRING,
  favorited BOOLEAN,
  retweeted_status STRUCT<
    text:STRING,
    user:STRUCT<screen_name:STRING,name:STRING>,
    retweet_count:INT>,
  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
) 
PARTITIONED BY (datehour INT)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/user/flume/tweets';
Run Code Online (Sandbox Code Playgroud)

它完美地执行但是当我这样做

select * from tweets;
Run Code Online (Sandbox Code Playgroud)

我什么都没得到这就是为什么我想知道我是否可以在调试模式下运行配置单元以查看它失败的原因

Sac*_*inJ 36

你最好通过将logger模式切换到DEBUG来启动hive shell,如下所示,我希望你能从那里找到有用的东西.

hive --hiveconf hive.root.logger=DEBUG,console
Run Code Online (Sandbox Code Playgroud)