[HADOOP] Oozie와 함께 sqoop을 사용하여 중복 관찰하기
HADOOPOozie와 함께 sqoop을 사용하여 중복 관찰하기
미리 빌드 된 sqoop 작업을 사용하여 MySQL에서 HDFS로 데이터를 가져 오기 위해 sqoop pogram을 만들었습니다.
sqoop job -fs $driver_path -D mapreduce.map.java.opts=" -Duser.timezone=Europe/Paris"\
--create job_parquet_table -- import -m $nodes_number\
--connect jdbc:mysql://$server:$port/$database --username $username --password-file $pass_file\
--target-dir $destination_dir --table $table --as-parquetfile --append\
--incremental append --check-column $id_column_names --last-value 1\
--fields-terminated-by , --escaped-by \\ --enclosed-by '\"'
나는 또한 sqoop 수입을 monnitore 할 수있는 spark progam을 만들었습니다. 이것에서 나는 가져올 테이블의 max_id (최대 ID), sqoop incremental.last.value, 레코드 수 (SELECT count ()), 개별 레코드 수 (SELECT count () 고유 ID) 및 중복 백분율 (SELECT count () - count (고유 ID) / count (*) * 100)로 정의됩니다.
sqoop 작업을 실행하여 데이터를 수동으로 가져올 때 :
sqoop-job --exec job_parquet_$table -- --username edastatnew --password edastatnew
모든 것이 옳다. 중복이 없으며 데이터를 완벽하게 가져온다.
그러나 Oozie를 사용하여 sqoop 작업을 예약 할 때 sqoopincremental.last.value가 잘못 업데이트되어 데이터가 중복되는 것을 확인했습니다. 여기 내 모니터링입니다 :
보시다시피 max_ID는 실험의 다른 시간에 sqoop_last_value와 일치하지 않습니다. 나는 Oozie를 사용할 때 sqoop 작업을 실행 한 후에 sqoop incremenatal.last.value가 잘못 업데이트된다는 결론을 내 렸습니다. 다른 사람이이 똑같은 문제에 직면 했습니까? 그렇다면 어떤 해결책을 찾았습니까?
감사,
해결법
-
==============================
1.Sqoop은 "마지막 값"정보를 어디에 저장합니까?
Sqoop은 "마지막 값"정보를 어디에 저장합니까?
대답은 : 기본적으로 Sqoop1의 경우 로컬 파일 시스템의 파일에 있습니다. 그러나 Oozie는 무작위 머신에서 Sqoop 작업을 실행하므로 실행이 조정되지 않습니다. 그리고 Sqoop2 (적당한 Metastore 데이터베이스를 가지고 있음)는 어느 정도 limbo에 있습니다; 최소한 Oozie는 지원하지 않습니다.
솔루션은 공유 HSQLDB 데이터베이스 서비스를 시작하여 실행중인 모든 머신에서 모든 Sqoop1 작업에 대한 "마지막 값"정보를 저장하는 것입니다.
그 불충분 한 Metastore에 대한 Sqoop1 문서와 그 사용법에 대해 읽어보십시오. 그리고 더 이상 사용되지 않는 HSQLDB 데이터베이스를보다 전문적으로 처리하려면 해당 저의 게시물을보십시오.
from https://stackoverflow.com/questions/37480188/observing-duplicates-using-sqoop-with-oozie by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Windows에서 hadoop 시작하기 (0) | 2019.07.03 |
---|---|
[HADOOP] hadoop에 Stackoverflow의 posts.xml 구문 분석 (0) | 2019.07.03 |
[HADOOP] Hadoop - 처리 단계를 이해하는 데 필요한 도움말 (0) | 2019.07.03 |
[HADOOP] 돼지에 JSON 배열로드하기 (0) | 2019.07.02 |
[HADOOP] 분산 캐시 (0) | 2019.07.02 |