scribbling
Hive 작업-로그를 whitespace(공백) 단위로 출력/수집 하고 Hive 필드로 구성하기
'김용환'
2012. 9. 20. 16:43
log4j 설정
<appender name="request" class="org.apache.log4j.DailyRollingFileAppender"> <param name="Threshold" value="DEBUG" /> <param name="File" value="${catalina.base}/logs/${project-name}-request" /> <param name="DatePattern" value="'.'yyyyMMdd" /> <param name="Append" value="true" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %m%n" /> </layout> </appender> |
자바
private final static Logger LOGGER = LoggerFactory.getLogger("notireq"); // log LOGGER.info(field + “ “ + fieldA + “ “ + …..); |
자바 소스에서 whitespace (공백) 단위로 시간정보와 구조적인 로그가 나오게 했다.
2012-09-19 23:55:00 A B C D E F G |
이를 스크립트를 통해서 로그의 row에 host이름을 더 추가하여 HDFS에 수집(저장)하게 하고. Hive를 이용해서 검색하게 했다.
Hive 에서 아래와 같은 table을 생성했다.
PARTITIONED BY (dt STRING)
|
이렇게 하니. 원하는 대로 HSQL 쿼리를 만들 수 있었다.
공부한 출처:
HSQL을 잘 몰라서 헤맸는데, Hive 문서의 힌트를 통해서 발견했다.
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL