sqoop 가 postgresql 에서 데 이 터 를 끌 어 당 겨 TCP/IP 연결 을 잘못 보고 하 는 문 제 를 해결 합 니 다.

1782 단어 sqooppostgresqlTCPIP
질문:
sqoop 는 postgresql 에서 데 이 터 를 끌 어 당 겨 mapreduce 타 임 스 오류 Connection refused 까지 실 행 됩 니 다.Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections
문제 포 지 셔 닝 과정:
1.postgresql 5432 포트 가 열 렸 습 니 다.작업 을 수행 하 는 노드 는 telnet 통 하고 netcat 테스트 를 통과 할 수 있 습 니 다.
2.sqoop list-tables 명령 을 정상적으로 실행 할 수 있 습 니 다.sqoop import 오류 보고 연결 이 거부 되 었 습 니 다.hostname 과 port 가 올 바른 지 확인 하 십시오.
3.다른 서버 클 러 스 터 에서 같은 스 크 립 트 정상 실행
해결:
클 러 스 터 에 node 가 5432 에 접근 할 수 없습니다.sqoop import 명령 은 클 러 스 터 에 있 는 모든 nodemanager 서비스의 노드 가 데이터베이스 포트 에 접근 할 수 있 는 권한 이 있 기 때문에 모든 노드 가 5432 에 접근 한 후에 해결 하도록 보장 합 니 다.
비고:
sqoop list-tables 가 실 행 될 수 있다 는 것 은 post gresql 엔 드 의 문제 가 아 닐 것 임 을 설명 합 니 다.sqoop list-tables 가 명령 을 수행 하 는 이 서버 는 5432 에 접근 하면 됩 니 다.
질문
post greSQL 인터페이스

my sql 과 다른 점 은 2 가 하나 더 생 긴 것 도 데이터 이전 오류 원인 입 니 다.
1.데이터베이스 이름 2.schema 3.표 이름
PostgreSQL 의 대상 은 데이터베이스->schema->table 의 3 층 모델 에 속 합 니 다.PostgreSQL 에는 일반적으로 여러 개의 database 가 포함 되 어 있 으 며,데이터베이스 마다 여러 개의 schema 가 포함 되 어 있 으 며,schema 에는 여러 개의 표 가 포함 되 어 있 습 니 다.따라서 scoop 을 사용 하여 데 이 터 를 추출 할 때 어떤 schema 에 속 하 는 지 지정 해 야 할 때 가 있 습 니 다.
해결 방안:
코드 마지막 에 지정--schema
위의 그림 2 의 이름
전체 코드 는 다음 과 같다.

./sqoop import --connect jdbc:postgresql://***.***.***.***:38888/bigdata --username test --password test123 --table tb_ecar_gps_zhengzhou_standard --fields-terminated-by '\t' -m 1 --target-dir '/sqoop/postgresql123' -- --schema benchmark_data;
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기