2015-01-21 2 views
0

Fluentd를 사용하여 HDFS에서 Apache 로그 데이터를 캡처하고 통합했습니다. 내가 HDFS에 데이터를 작성하기 위해 에이전트를 구성, 즉 /etc/td-agent/td-agent.conf 파일에는 다음이 포함 Fluentd Apache 로그 데이터 용 Hive create 테이블 문

<source> 
    type tail 
    path /var/log/httpd/access_log 
    pos_file /var/log/td-agent/httpd-access.log.pos 
    tag apache.access 
    format apache2 
</source> 

<match apache.access> 
    type webhdfs 
    host fqdn.of.name.node 
    port 50070 
    path /data/access_logs/access.log.%Y%m%d_%H.${hostname}.log 
    flush_interval 10s 
</match> 

나는 HDFS는 Fluentd documentation에 따라 추가 가능. 데이터는 완벽하게 교차합니다. 지난 몇 주 동안 수백만 건의 거래가 흐트러지지 않았습니다.

데이터는 다음과 같이 선을 포함하는 파일에 저장된다

:

2015-01-10T17:00:00Z apache.access {"host":"155.96.21.4","user":null,"method":"GET","path":"/somepage/index.html","code":200,"size":8192,"referer":null,"agent":"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E)"} 

각 행에 포함 된 세 개의 탭 분리 소자 :

  1. 소인
  2. 식별 태그
  3. JSON 함유 키/아파치 로그에있는 열의 값 쌍

하이브 테이블을 만들려고하는데 각 행에 탭으로 구분 된 문자열과 JSON이 혼합되어 있다는 사실을 어떻게 처리해야할지 모르겠습니다. 하이브에는 JSON 디시리얼라이저가 있지만 레코드가 순수한 JSON이 아니기 때문에 작동하지 않을 것이라고 생각합니다.

누구든지이 데이터에 대한 테이블 만들기 명령문을 작성하는 방법에 대한 제안이 있습니까? 당신의 out_wedhdfs 설정에 다음 매개 변수를 추가

답변

0

시도 :이 문서화되어야한다

output_data_type json 

. 나는 곧 문서들을 업데이트 할 것이다.

관련 문제