sqoop 에서 post gresql 데이터베이스 표를 읽 고 hdfs 에 가 져 온 실현

3131 단어 sqooppostgresqlhdfs
최근 에 spark streaming 을 배 워 서 실시 간 으로 이 내용 을 계산 하 는 과정 에서 배경 데이터 베이스 에서 hdfs 로 데 이 터 를 내 보 내야 합 니 다.조사 연 구 를 통 해 sqoop 를 사용 하여 조작 해 야 한 다 는 것 을 발 견 했 습 니 다.이번 작업 환경 은 Linux 에서 입 니 다.
우선 환경 에 Hadoop 과 sqoop 이 설치 되 어 있 는 지 확인 하고 설치 할 때 다운로드,압축 해제 및 환경 변 수 를 설정 해 야 합 니 다.여 기 는 더 이상 말 하지 않 고 인터넷 튜 토리 얼 이 많 습 니 다.
1.sqoop 설정 및 성공 여 부 를 검증 합 니 다.
프로필 로 전환:cd$SQOOPHOME/conf
설정 환경 파일 만 들 기:cp sqoop-env-template.sh sqoop-env.sh
프로필 수정:conf/vi sqoop-env.sh:수정 내용 은 다음 과 같 습 니 다.

설정 이 완료 되면 명령 sqoop-version 을 실행 하여 성공 여 부 를 확인 합 니 다.그림 에서 sqoop 1.4.7 을 표시 하면 성공 합 니 다.

2.postgresql 구동 jar 패키지 추가
sqoop 을 사용 하여 postgresql 의 데 이 터 를 읽 기 때문에 데이터베이스 드라이버 를$SQOOP 에 넣 어야 합 니 다.HOME/lib 에서 내리 시 면 됩 니 다.
3.pg 데이터베이스 에 hdfs 에 표 가 져 오기
1.우선 Hadoop 클 러 스 터 를 시작 해 야 합 니 다.그렇지 않 으 면 오류 가 발생 합 니 다.
실행 문$HADOOPHOME/sbin/./start-all.sh
2.sqoop 문 구 를 실행 하여 hdfs 로 데 이 터 를 가 져 옵 니 다.

sqoop import \
  --connect jdbc:postgresql:localhost:5432/test(      )
  --username postgres (          )
  --password 888888 (         )
  --table company (        )
  --m 1 (mapreduce   )
실행 결 과 는 그림 과 같 습 니 다.

3.hdfs 에 표 데이터 가 성공 적 으로 저장 되 었 는 지 확인 합 니 다.
$HADOOP_HOME/bin hdfs dfs-cat/sql/part-m-00000(데이터 디 렉 터 리 를 자신의 것 으로 변경)
결 과 는 그림 과 같다.

sqoop 를 사용 하여 post greql 의 표 데 이 터 를 hdfs 에 성공 적 으로 가 져 왔 음 을 표시 합 니 다.이것 은 오늘 도 약간의 수확 이 있 는 셈 입 니 다!
추가:Sqoop 을 이용 하여 PostgreSQL 에서 데 이 터 를 가 져 올 때 발생 하 는 구덩이

sqoop import \
--connect "jdbc:postgresql://10.101.70.169:5432/db_name" \
--username "postgres" \
--password "123456" \
--table "test_user"\
--target-dir "/user/hive/warehouse/test.db/test_user" \
--fields-terminated-by '\t' \
--lines-terminated-by '
' \ --hive-drop-import-delims \ --incremental lastmodified \ --merge-key id \ --check-column update_time \ --last-value "2019-03-25" \ --m 1 \ -- --schema "schema_name" \ --null-string '\\N' \ --null-non-string '\\N'
1.-- --schema 은 반드시 뒤에 두 어야 합 니 다.그렇지 않 으 면 실행 로그 가 없 거나 지정 한 디 렉 터 리 에 데 이 터 를 가 져 올 수 없고 다시 실행 할 수 없습니다(디 렉 터 리 가 존재 합 니 다)
2.PostgreSQL 은 반드시 SET standard_conforming_strings = on; 을 설치 해 야 한다.그렇지 않 으 면 --null-string --null-non-string 은 효과 가 없다.
3.--null-string--null-non-string-- --schema 뒤에 두 고 그렇지 않 으 면 집행 타 임 스 Can't parse input data: '\N'이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기