복붙노트

[HADOOP] mysql과 함께 sqoop 가져 오기 문제

HADOOP

mysql과 함께 sqoop 가져 오기 문제

내가 hadoop 하 설정 cdh5.I에 따라 sqoop를 사용하여 MySQL에서 테이블을 가져 오려고했는데 오류가 다음과 함께 실패했습니다.

15/03/20 12:47:53 ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@33573e93 is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@33573e93 is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.

나는 아래 명령을 사용했다 ..

sqoop import --connect jdbc:mysql://<mysql hostname>:3306/haddata --username root --password password --table authors --hive-import

내 mysql 서버 버전은 5.1.73-3이다. mysql-connector-java의 5.1.34와 5.1.17 버전을 사용했다.

sqoop version is 1.4.5-cdh5.3.2

제안 / 의견을 알려주십시오.

해결법

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

    1.import 명령에 --driver com.mysql.jdbc.Driver 옵션을 포함 시키십시오.

    import 명령에 --driver com.mysql.jdbc.Driver 옵션을 포함 시키십시오.

  2. ==============================

    2.아래 수정 된 명령을 사용해보십시오.이 명령은 용도에 맞을 수 있습니다.

    아래 수정 된 명령을 사용해보십시오.이 명령은 용도에 맞을 수 있습니다.

    sqoop import --connect jdbc:mysql://<mysql hostname>:3306/haddata --driver com.mysql.jdbc.Driver --username root --password password --table authors --hive-import
    
  3. ==============================

    3.이 링크를 따라 가라.

    이 링크를 따라 가라.

    sqoop 명령에 드라이버 인수 --driver com.mysql.jdbc.Driver를 포함하십시오.

    sqoop import --connect jdbc : mysql : // : 3306 / - 사용자 이름 **** - 패스워드 **** - 테이블 <테이블 이름> - 하이브 임포트 - 드라이버 com.mysql.jdbc.Driver

    --driver 매개 변수는 sqoop 머신에 mysql db 용으로 설치된 최신 mysql-connector-java.jar를 사용하도록합니다.

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

    4.mysql-connector-java-5.1.31.jar를 사용해보십시오. sqoop 1.4.5와 호환됩니다.

    mysql-connector-java-5.1.31.jar를 사용해보십시오. sqoop 1.4.5와 호환됩니다.

    mysql-connector-java-5.1.17.jar 드라이버는 sqoop 1.4.5에서 작동하지 않습니다.

    참조 :

    https://issues.apache.org/jira/browse/SQOOP-1400

  5. ==============================

    5.$ HADOOP_HOME / bin 폴더에 com.mysql.jdbc_5.1.5.jar 또는 com.mysql.jdbc_5.X.X.jar 파일의 모든 버전이있는 경우 제거한 다음 SQOOP 쿼리를 실행하십시오.

    $ HADOOP_HOME / bin 폴더에 com.mysql.jdbc_5.1.5.jar 또는 com.mysql.jdbc_5.X.X.jar 파일의 모든 버전이있는 경우 제거한 다음 SQOOP 쿼리를 실행하십시오.

  6. ==============================

    6.필자는 import 명령의 --driver com.mysql.jdbc.Driver 옵션을 포함하여 필자에게 도움이되었습니다.

    필자는 import 명령의 --driver com.mysql.jdbc.Driver 옵션을 포함하여 필자에게 도움이되었습니다.

  7. ==============================

    7.Sqoop은 타사 JDBC 드라이버와 함께 제공되지 않습니다. 별도로 다운로드하여 서버의 / var / lib / sqoop / 디렉토리에 저장해야합니다.

    Sqoop은 타사 JDBC 드라이버와 함께 제공되지 않습니다. 별도로 다운로드하여 서버의 / var / lib / sqoop / 디렉토리에 저장해야합니다.

    노트 : JDBC 드라이버는 Sqoop이 실행되는 시스템에만 설치해야합니다. Hadoop 클러스터의 모든 호스트에 설치할 필요는 없습니다.

    드라이버는 여기에서 다운로드 할 수 있습니다. https://dev.mysql.com/downloads/connector/j/5.1.html

  8. ==============================

    8.아래와 같이 정확한 명령을 시도하십시오.

    아래와 같이 정확한 명령을 시도하십시오.

    이렇게하면 문제가 해결됩니다.

  9. ==============================

    9.제 경우에는 sqoop에서 사용되는 jar 위치를 찾으십시오. 링크는 /usr/share/java/mysql-connector-java.jar를 가리키고 있습니다.

    제 경우에는 sqoop에서 사용되는 jar 위치를 찾으십시오. 링크는 /usr/share/java/mysql-connector-java.jar를 가리키고 있습니다.

    그래서 /usr/share/java/mysql-connector-java.jar 링크를 확인하면 mysql-connector-java-5.1.17.jar를 가리킨다.

    5.1.17에이 문제가 있으므로 5.1.37 이상을 시도하십시오.

  10. from https://stackoverflow.com/questions/29162447/sqoop-import-issue-with-mysql by cc-by-sa and MIT license