我正在對由計算量大的自定義查詢生成的大型記錄集進行原型遷移。這個查詢大約需要1-2個小時在SQL Developer中一個結果集返回Sqoop-2使用sqoop shell自定義查詢導致大量導入單節點失敗
我試圖此查詢傳遞給一個簡單的Sqoop
工作與鏈接JDBC
到HDFS
我在日誌中遇到了以下錯誤:
2016年2月12日10:15:50690 ERROR mr.SqoopOutputFormatLoadExecutor [org.apache.sqoop.job.mr.SqoopOutputFormatLoadExecutor $ ConsumerThread.run(SqoopOutputFormatLoadExecutor.java:257)]錯誤而裝載數據出MR工作。 org.apache.sqoop.common.SqoopException:GENERIC_HDFS_CONNECTOR_0005:裝載機運行 在org.apache.sqoop.connector.hdfs.HdfsLoader.load(HdfsLoader.java:110) 在org.apache.sqoop.connector期間發生錯誤。 hdfs.HdfsLoader.load(HdfsLoader.java:41) at org.apache.sqoop.job.mr.SqoopOutputFormatLoadExecutor $ ConsumerThread.run(SqoopOutputFormatLoadExecutor.java:250) at java.util.concurrent.Executors $ RunnableAdapter.call( Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent。 ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 原因:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException):/user/username/schema/recordset/.72dee005-3f75-4a95-bbc0- 30c6b565d193/f5aeeecc-097e-49ab-99cc-b5032ae18a84.txt(inode 16415):文件不存在。 [租。持有人:DFSClient_NONMAPREDUCE_-1820866823_31,pendingcreates:1]
當我嘗試查一下我的hdfs
產生的.txt
文件,它們是空的。
有沒有人遇到過並解決過這個問題?另外,我注意到Sqoop shell
的額外bugginess。例如,我無法檢查作業狀態,因爲它始終返回UNKNOWN。
我使用sqoop-1.99.6-bin-hadoop200
和Hadoop 2.7.2 (Homebrew install)
。我正在查詢Generic JDBC Connector
的遠程Oracle 11
數據庫。
我已經在create job
進行使用schema/table
參數較小的進口工作,我很想通過表遷移整個架構表,那麼就使用蜂巢生成和存儲記錄集我想要的。這是更好還是更簡單的解決方案?
對於大多數人來說,「Sqoop」意味着最初的,經過測試的實用工具,又名「Sqoop 1」(當前版本爲1.4.6) - 我不確定有多少人會相信他們的生產系統是「Sqoop 2「aka」有一天我們將填補功能缺陷並修復問題,實際上達到2.0標記,然後棄用V1,再給我們幾年時間。「 –
@SamsonScharfrichter感謝您的建議。我改變了這個問題以反映它的Sqoop2。我應該回到1.4.6嗎?它會與我的Hadoop安裝一起工作嗎? –
其實我不確定這會有什麼不同,這是1小時的延遲會導致你死亡。 –