как запустить 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';
Он выполнен отлично, но когда я делаю
select * from tweets;
Я ничего не получаю, поэтому я хотел знать, могу ли я запустить hive в режиме отладки, чтобы узнать, где он получает не удалось
3 ответов
вам лучше начать Hive shell, переключив режим logger на отладку следующим образом, я надеюсь, что вы сможете найти что-то полезное оттуда.
hive --hiveconf hive.root.logger=DEBUG,console
код улья может быть отлажен.Эта ссылка может помочь вам : https://cwiki.apache.org/confluence/display/Hive/DeveloperGuide#DeveloperGuide-DebuggingHiveCode
задание 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
перед classpath и так взял.