hive elasticsearch에 데이터 쓰기

2907 단어 빅데이터 기술

1. 의존 패키지 추가


우선elasticsearch의 버전을 확정하고es버전이 6.1.2이면jar패키지:elasticsearch-hadoop-6.1.2로 사용할 수 있습니다.jar, 인터넷에는 6.1.2 버전의jar 패키지보다 높으면 (자체 검증) 된다고 합니다.httpclient와 관련된 오류를 보고할 때 org를 추가해야 합니다.apache.commons.httpclient 이거jar가방.먼저 하이브에 들어가서 다음 명령을 통해 의존 패키지를 추가합니다.
add jar yourPath/elasticsearch-hadoop-6.1.2.jar;

물론 다른 추가 방식도 있습니다. 구체적으로 볼 수 있습니다https://www.elastic.co/guide/en/elasticsearch/hadoop/current/hive.html#hive

2. 하이브 외부 테이블을 만듭니다.

create external table if not exists es_cmb_test(
ptf_id string,
ptf_name string,
bill_date string,
acc_status string
) 
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' 
TBLPROPERTIES(
'es.resource' = 'test/es_cmb_test', 
'es.nodes'='192.168.1.1',
'es.port'='9200',
'es.mapping.id' = 'ptf_id',
'es.index.auto.create' = 'true',
'es.write.operation'='upsert');

TBLPROPERTIES 뒤에 ES의 속성을 설정합니다(예:'es를 통해).mapping.id’ = ‘ptf_id'지정 id.통과write.operation ='upsert'는 삽입이나 업데이트 작업을 실행합니다. (id가 존재하면)상세한 상황은 조사할 수 있다https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html

3. 데이터 삽입

insert overwrite table es_cmb_test
    select 
        ptf_id,
        ptf_name,
        bill_date,
        acc_status 
    from test.cmb_test;

어떤 사람이 실험을 한 적이 있는데 다음과 같은 결론을 얻었다. 테스트의 중요한 결론: 1.elasticsearch 필드가 비교적 많을 때, 여러 개의hive 맵을 만들어서 각각 쓰기 2.Hive는elasticsearch의 기록을 삭제할 수 없습니다. 삽입과 업데이트만 가능합니다.Hive의 insert into와 insert overwrite가 elasticsearch를 조작할 때 결과는 같다

참고


1、https://www.elastic.co/guide/en/elasticsearch/hadoop/current/hive.html 2、http://blog.csdn.net/ltlf_21/article/details/78614970

좋은 웹페이지 즐겨찾기