저는 상대적으로 새로운 sqooping 과정이므로 아무런 사안도 용서하지 못합니다. 필자는 마루 파일로 데이터 소스에서 테이블을 스퀘어로 만들려고하고 sqooped 데이터를 삽입 할 임 팔라 테이블 (또한 마루로)을 만듭니다. 코드는 문제없이 실행,하지만 테스트를 위해 몇 행을 선택하려고 할 때 오류 얻을 : https://www.cloudera.com/documentation/enterprise/5-8-x/topics/impala_create_table.html :sqoop은 임팔라 나무 마루 테이블을 만듭니다
.../EWT_CALL_PROF_DIM_SQOOP/ec2fe2b0-c9fa-4ef9-91f8-46cf0e12e272.parquet' has an incompatible Parquet schema for column 'dru_id.test_ewt_call_prof_dim_parquet.call_prof_sk_id'. Column type: INT, Parquet schema: optional byte_array CALL_PROF_SK_ID [i:0 d:1 r:0]
은 내가 여기 클라우 데라 가이드에있는 프로세스를 미러링되었다. 주로 "내부 및 외부 테이블"섹션. 나는이 모든 것이 bash 스크립트로 매달 쫓겨날 것이기 때문에 특정 파루 파일로 스키마를 추론하는 것을 피하려고 노력 해왔다. (또한 나는 하나의 파일을 가리키는 방법을 생각할 수도 없다. 하나 이상의 매퍼를 사용하는 경우).
다음은 내가 사용한 코드입니다. 나는 작고 어리석은 것을 놓치고있는 것처럼 느껴진다. 또는 나는 그것을 깨닫지 못하고 모든 일을 망쳐 버렸다. 모든 도움을 주셨습니다. 감사! 난 당신이 --hive-import
와 같은 사용하여 하나 Sqoop을 가져 오기를 얻을 수있는 방법의 예를 제공 코멘트의 요청에 따라
sqoop import -Doraoop.import.hint=" " \
--options-file /home/kemri/pass.txt \
--verbose \
--connect jdbc:oracle:thin:@ldap://oid:389/cn=OracleContext,dc=[employer],dc=com/EWSOP000 \
--username [userid] \
--num-mappers 1 \
--target-dir hdfs://nameservice1/data/res/warehouse/finance/[dru_userid]/EWT_CALL_PROF_DIM_SQOOP \
--delete-target-dir \
--table DMPROD.EWT_CALL_PROF_DIM \
--direct \
--null-string '\\N' \
--null-non-string '\\N' \
--as-parquetfile
impala-shell -k -i hrtimpslb.[employer].com
create external table test_EWT_CALL_PROF_DIM_parquet(
CALL_PROF_SK_ID INT,
SRC_SKL_CD_ID STRING,
SPLIT_NM STRING,
SPLIT_DESC STRING,
CLM_SYS_CD STRING,
CLM_SYS_NM STRING,
LOB_CD STRING,
LOB_NM STRING,
CAT_IND STRING,
CALL_TY_CD STRING,
CALL_TY_NM STRING,
CALL_DIR_CD STRING,
CALL_DIR_NM STRING,
LANG_CD STRING,
LANG_NM STRING,
K71_ATOMIC_TS TIMESTAMP)
stored as parquet location '/data/res/warehouse/finance/[dru_userid]/EWT_CALL_PROF_DIM_SQOOP';
'--hive-import' 옵션을 사용하여 걱정하지 않아도 즉시 기본 밑단 파일로 하이브 테이블을 생성 할 수도 있습니다. 임팔라는 동일한 테이블 저장소를 사용하므로 문제가 없습니다. – spijs
@spijs 제안에 감사드립니다! 한 번 sqooped 임팔라이 자동으로 존재하거나 색조> 임팔라 가서 metastore 새로 고쳐야겠습니까? 비즈니스 파트너를 위해이 단계를 수행하고 있기 때문에 수동으로 수행해야 할 단계는 없습니다. – kemri
실제로 메타 저장소를 새로 고침해야합니다. 테이블에 임 플라이 (impala) 명령을 추가하는 것이 tablename을 필요로합니다. 예를 들어, -hive-import – spijs