2016-10-05 7 views
0

Sqoop을 평가 명령을 MySQL의 속성을 전달하기 :Sqoop을의 평가를 통해

sqoop eval --connect 'jdbc:mysql://<connection url>' --driver com.mysql.jdbc.Driver --query "select max(rdate) from test.sqoop_test" 

나에게 출력을 제공 :

경고 : /usr/hdp/2.3.2.0-2950/accumulo가 존재하지 않습니다! Accumulo 가져 오기가 실패합니다. Accumulo 설치 루트의 $ ACCUMULO_HOME을 설정하십시오. 경고 : /usr/hdp/2.3.2.0-2950/zookeeper는 이 존재하지 않습니다! Accumulo 가져 오기가 실패합니다. Zookeeper 설치 루트의 $ ZOOKEEPER_HOME을 으로 설정하십시오. 16/10/05 18:38:17 정보 sqoop.Sqoop : 실행중인 Sqoop 버전 : 1.4.6.2.3.2.0-2950 16/10/05 18:38:17 경고 tool.BaseSqoopTool : 명령 줄이 안전하지 않습니다. 대신 -P를 사용하십시오. 16/10/05 18:38:17 WARN sqoop.ConnFactory : 매개 변수 --driver가 명시 적 드라이버로 설정되어 있지만 적절한 연결 관리자가 설정되어 있지 않습니다 ( --connection-manager를 통해). Sqoop은 org.apache.sqoop.manager.GenericJdbcManager로 돌아갑니다. 다음 번에 연결 관리자를 사용해야하는 명시 적으로 을 지정하십시오. 16/10/05 18:38:17 INFO manager.SqlManager : 기본 fetchSize를 1000으로 사용 -------------- | 최대 (rdate) | -------------- | 2014-01-25 | 난 기본적으로이 출력을 파일로 저장할 2014년 1월 25일

최대 (RDATE) :

는하지만 난 같은 경고 및 테이블 boundries없이 출력을 할 수 있습니다. 미리 감사드립니다.

답변

0

Sqoop Import 작업을 수행하여 HDFS에서 출력을 저장할 수 있습니다.


경고는 곧장 전달됩니다.

  • 사용 가능한 경우 $ACCUMULO_HOME, $ZOOKEEPER_HOME을 설정할 수 있습니다. 오히려 명령에 쓰기보다 암호 -P를 사용하는 것이 좋습니다 보안을 위해서, MySQL은

  • 에 해당하는

  • 당신은 설정할 수 있습니다 --connection-manager

  • .

이러한 것은 오류가 아니므로 이러한 경고와 함께 생활 할 수 있습니다.

0

.sh 파일을 만들고 sqoop 명령을 작성한 다음 shell_file_name.sh> your_output_file으로 실행할 수 있습니다.

0

이 txt 우리는 쿼리 결과를 얻을 수있는 두 가지 방법이 있습니다 (- 대상 - 디렉토리/경로)와 거기에서 읽을

  1. 다른 방법은 쿼리 결과를 가져 HDFS에 기록 할 수있다.

  2. sqoop 명령에서 파일 시스템 옵션을 변경하여 가져 오기 쿼리의 결과를 저장할 수 있습니다. 따라서 데이터를 로컬 파일 시스템 인 HDFS로 가져 오는 것이 좋습니다.

예 : Sqoop을 가져 오기가 지역 -jt 지역 --connect "연결 문자열을"-fs --username 루트 --password 루트 쿼리는 --target-DIR/홈/출력

"* 테이블에서 선택"

https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1762587