1
sqoop을 사용하여 Oracle에서 하이브로 데이터를 가져 오려고합니다.
아래 명령을 한 번 사용 했으므로 기존 데이터를 새 데이터로 덮어 쓰려고합니다 (Daily Action).
이 명령을 다시 실행했습니다.하이브 외부 테이블
sqoop import --connect jdbc:oracle:thin:@UK01WRS6014:2184:WWSYOIT1
--username HIVE --password hive --table OIDS.ALLOCATION_SESSION_DIMN
--hive-overwrite --hive-database OI_DB --hive-table ALLOCATION_SESSION_DIMN
하지만 오류 파일이 이미 존재하는 무엇입니까 :
14/10/14 07:43:59 ERROR security.UserGroupInformation:
PriviledgedActionException as:axchat
(auth:SIMPLE) cause:org.apache.hadoop.mapred.FileAlreadyExistsException:
Output directory
hdfs://uslibeiadg004.aceina.com:8020/user/axchat/OIDS.ALLOCATION_SESSION_DIMN
already exists
내가 있었다 하이브에 모든 외부 테이블을 만든 테이블. mapreduce와 마찬가지로 동일한 명령을 실행할 때마다 해당 파일을 삭제해야합니까?
도움을 주시면 감사하겠습니다.
필자는 하이브에 외부 테이블 구조를 만든 다음 - 하이브 - 덮어 쓰기를 사용하여 이러한 외부 테이블에 데이터를 가져 오기 때문에. 왜 FileAlreadyExists 오류가 나는지 모릅니다. 그것은 그것을 덮어 쓴 이후로 오류를 제공해서는 안됩니다. 나 맞아 ? – aiman
하이브를 덮어 쓰지 만 hdfs를 덮어 쓰지 않았습니다. – davek
@devek - 해당 외부 테이블을 삭제하고 관리되는 테이블을 다시 만들고 n 가져 오기 데이터를로드하면 잘로드됩니다. 다시 --hive-overwrite를 사용하여 데이터를 가져 오면 FileAlreadyExists 오류가 발생하지 않아야합니다. 내가 맞습니까? – aiman