복붙노트

[HADOOP] 돼지에서 결과를 데이터베이스로 내보내는 방법

HADOOP

돼지에서 결과를 데이터베이스로 내보내는 방법

Pig에서 결과를 mysql과 같은 데이터베이스로 직접 내보내는 방법이 있습니까?

해결법

  1. ==============================

    1.오렌지 옥토퍼스가 (DDOS에주의하십시오) 무슨 말을했는지 기억하고있는 동안 DBStorage를 살펴 보셨습니까?

    오렌지 옥토퍼스가 (DDOS에주의하십시오) 무슨 말을했는지 기억하고있는 동안 DBStorage를 살펴 보셨습니까?

    data = LOAD '...' AS (...);
    ...
    STORE data INTO DBStorage('com.mysql.jdbc.Driver', 'dbc:mysql://host/db', 'INSERT ...');
    
  2. ==============================

    2.내가 보는 주된 문제는 각 감속기가 효과적으로 같은 시간에 데이터베이스에 삽입된다는 것입니다.

    내가 보는 주된 문제는 각 감속기가 효과적으로 같은 시간에 데이터베이스에 삽입된다는 것입니다.

    이것이 문제가되지 않는다고 생각한다면 JDBC (또는 이와 비슷한)를 사용하여 데이터베이스에 직접 삽입하고 HDFS에 아무 것도 쓰지 않는 사용자 정의 저장소 메서드를 작성하는 것이 좋습니다.

    자신의 데이터베이스에서 DDoS 공격을하는 것을 두려워하는 경우 HDFS에서 데이터를 수집하고 mysql에 별도의 대량로드를 수행하는 것이 좋습니다.

  3. ==============================

    3.현재 PigServer.OpenIterator 및 JDBC 연결을 통해 결과를 mysql에로드하는 내장 된 돼지 응용 프로그램을 실험하고 있습니다. 그것은 테스트에서 아주 잘 작동하지만, 아직 대규모로 시도하지 않았습니다. 이는 이미 제안 된 맞춤 저장 방법과 비슷하지만 단일 지점에서 실행되므로 우발적 인 DDoS 공격이 발생하지 않습니다. DB 서버에서로드를 실행하지 않으면 실제로 네트워크 전송 비용을 두 번 지불하게됩니다 (클러스터 -> 스테이징 머신, 스테이징 머신 -> DB 서버). DB를 제외하고는 아무것도 실행하지 않는 것이 좋습니다. 서버),하지만 그것은 "파일을 쓰고 대량로드"옵션과 다르지 않습니다.

    현재 PigServer.OpenIterator 및 JDBC 연결을 통해 결과를 mysql에로드하는 내장 된 돼지 응용 프로그램을 실험하고 있습니다. 그것은 테스트에서 아주 잘 작동하지만, 아직 대규모로 시도하지 않았습니다. 이는 이미 제안 된 맞춤 저장 방법과 비슷하지만 단일 지점에서 실행되므로 우발적 인 DDoS 공격이 발생하지 않습니다. DB 서버에서로드를 실행하지 않으면 실제로 네트워크 전송 비용을 두 번 지불하게됩니다 (클러스터 -> 스테이징 머신, 스테이징 머신 -> DB 서버). DB를 제외하고는 아무것도 실행하지 않는 것이 좋습니다. 서버),하지만 그것은 "파일을 쓰고 대량로드"옵션과 다르지 않습니다.

  4. ==============================

    4.Sqoop은 좋은 방법 일 수 있지만,이 모든 Hadoop 관련 프로젝트처럼 설치하기 란 어렵습니다 ...

    Sqoop은 좋은 방법 일 수 있지만,이 모든 Hadoop 관련 프로젝트처럼 설치하기 란 어렵습니다 ...

    돼지의 DBStorage는 잘 작동합니다 (최소한 저장하는 데만 사용).

    PiggyBank와 MySQL 드라이버를 등록하는 것을 잊지 마십시오 :

    -- Register Piggy bank
    REGISTER /opt/cmr/pig/pig-0.10.0/lib/piggybank.jar;
    
    -- Register MySQL driver
    REGISTER /opt/cmr/mysql/drivers/mysql-connector-java-5.1.15-bin.jar
    

    다음은 샘플 호출입니다.

    -- Store a relation into a SQL table
    STORE relation INTO 'unused' USING org.apache.pig.piggybank.storage.DBStorage('com.mysql.jdbc.Driver', 'jdbc:mysql://<mysqlserver>/<database>', '<login>', '<password>', 'REPLACE INTO <table> (<column1>, <column2>) VALUES (?, ?)');
    
  5. ==============================

    5.Sqoop을 사용해보십시오.

    Sqoop을 사용해보십시오.

  6. from https://stackoverflow.com/questions/4648814/a-way-to-export-the-results-from-pig-to-a-database by cc-by-sa and MIT license