2015-01-09 3 views
6

я взял пример с сайта 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'; 

она выполнена прекрасно, но когда я делаю

select * from tweets; 

я не подвожу ничего так вот почему я хотел бы знать, если я могу запустить улей в режиме отладки, чтобы увидеть, где он становится не удалось

ответ

28

Вам лучше start hive shell, переключив режим регистрации на DEBUG следующим образом, я надеюсь, что вы найдете что-то полезное оттуда.

hive --hiveconf hive.root.logger=DEBUG,console 
+1

Можно также направить его в файл, а легко: улья --hiveconf hive.root.logger = DEBUG, RFA По умолчанию он будет в конечном итоге в/TMP/ /hive.log – selle

2

Установка hive --hiveconf hive.root.logger=DEBUG,consoleне всегда может работать из компании конкретной установки.

Я в конечном итоге создать hive-log4j.properties файл в моем домашнем каталоге со следующими настройками:

log4j.rootCategory=DEBUG,console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.target=System.err 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 

и начал улей оболочки с помощью CLASSPATH=$HOME hive, которая добавляет ваш домашний каталог, имеющим hive-log4j.properties перед классами и так подобран.