データ転送2.7sqoopをスピードアップ

英語でのApache Sqoopクックブック-翻訳!!学ぶ
詳しい情報をhttps://blue-shadow.top/

問題

sqoopは、データ伝送を大量に扱うことができる強力なツールですが、より高速なSqoopを作る方法。

ソリューション

パラメータを使用して、いくつかのデータベースについて--direct直接接続を利用します。

sqoop import \
--connect jdbc:mysql://msyql.example.com/sqoop \
--username sqoop \
--table cities  \
--direct

話し合います

代わりに、データを送信するためにダイレクトモードデリゲートJDBCインターフェースを使用して、しかしユニットユーティリティデータベースベンダーに送信されたデータの。MySQLへの、例えば、
mysqldumpをとmysqlimportは、データをよりデータを取得又は書き込むために使用されるであろう。PostgreSQLのデータをインポートできるようにpg_dumpを利用sqoop。できるローカルユーティリティを使用して
、データベース・サーバーの負担を軽減しながら、彼らは、最高の伝送速度を提供するように最適化されているように、大幅にパフォーマンスを向上させます。しかし、最初にこの速い輸入、使用にはいくつかの制限があります。いない
ローカルで利用可能なツールを使用して、すべてのデータベースが、このモデルは、すべてのデータベースに対して有効ではない指示し、現在はMySQLのPostgreSQLのsqoop良いをサポートしていますダイレクト。

すべてのデータ転送動作がMapReduceのジョブ生成中、及び起因直接データ伝送遅延を作用アプリケーションツールでデータ送信するために実行されるので、必要がある
、HadoopのTaskTrackerアクティブノードで使用されているローカルアプリケーションを確保します例えば:使用MySQLでは、各サーバー上のTaskTrackerはとmysqlimportはインストールする必要があります
mysqldumpをします

ネイティブユーティリティは、典型的には、テキスト出力、バイナリ形式またはSequenceFileアブロが動作しないのでを産生としてダイレクトモードの別の制限は、すべてのパラメータをサポートしていません。
さらに、次の場合にカスタムエスケープ文字、型マッピング、列と行の区切り文字または代わりにNULL文字列パラメータはサポートされなくてもよいです。

ます。https://www.jianshu.com/p/2caf1d7707bbで再現

おすすめ

転載: blog.csdn.net/weixin_33757609/article/details/91186119