3

sqoop を使用して、MySQL の 1 TB テーブルを HDFS にインポートしようとしていました。使用したコマンドは次のとおりです。

sqoop import --connect jdbc:mysql://xx.xx.xxx.xx/MyDB --username myuser --password mypass --table mytable --split-by rowkey -m 14

バウンディング vals クエリを実行した後、すべてのマッパーが起動しますが、しばらくすると、タイムアウト (1200 秒) のためにタスクが強制終了されます。これは、select各マッパーで実行されているクエリの実行にかかる時間が、タイムアウトに設定された時間よりも長くかかるためだと思います (sqoop では 1200 秒のようです)。したがって、ステータスの報告に失敗し、タスクはその後強制終了されます。(100 GB のデータ セットに対しても試しましたが、複数のマッパーのタイムアウトが原因で失敗しました。) 単一のマッパー インポートの場合、フィルター処理された結果セットが必要ないため、正常に動作します。0sqoop で複数のマッパーを使用しているときに、マップ タスクのタイムアウトをオーバーライドする (または非常に高い値に設定する) 方法はありますか?

4

1 に答える 1

1

Sqoop は特別なスレッドを使用してステータスを送信し、マップ タスクが jobtracker によって強制終了されないようにします。あなたの問題をさらに調査したいと思います。マップ タスク ログの 1 つである sqoop ログとテーブル スキーマを共有していただけませんか?

ヤルセック

于 2013-02-05T00:53:08.703 に答える