2016-08-24 6 views
1

大きなデータを分析するためにHadoop、Hive、Impalaを使用するスタックを使用する予定です。私はセットアップが準備ができて、今はMySQLテーブルからデータをインポートしようとしています。テーブルサイズを超える500ギガバイトであり、私は次のようにSqoopを使用することを計画しています:大量のMySQLデータをHadoopにインポート

sqoop import --connect jdbc:mysql://remote_host_ip/database_name --username user_name -P --table table_name --hive-import --compression-codec=snappy --as-parquetfile --warehouse-dir=/user/hive/warehouse -m 1 

が、これはネットワーク上のデータの500ギガバイトを転写することを含む、このインポートを行うため、他のより良い方法があります。とにかくデータを圧縮してHiveにインポートすることは可能ですか?Impalaを使用してそれを照会することはできますか?

+0

私は単にデータベースをcsvとしてエクスポートし、gzipとHDFSにパイプしました。私はシェルスクリプトにこれを持っている人にクッキーを渡します:) –

+0

MySQLは 'jdbc:mysql:// remote_host_ip/database_name?useCompression = true' cfで" on the wire "圧縮をサポートしています。 https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.htmlおよびhttp://torstens-tech-blog.blogspot.com/2012/08/ client-compression-with-mysql-in.html –

答えて

1

Sqoopが最適です。そのバルクロードで非常に効率的です。

MySQL Hadoop Applierについては、MySQLとHadoopの間のイベントのリアルタイムレプリケーションを実行するように設計されています。

0

"-m 1"の代わりに "-m 4"を設定できます。これにより、MySqlデータをパラレルにインポートすることができます。つまり、500GBを転送する1マッパーを使用する代わりに、4マッパーを使用してデータを並列に転送します(各マッパーを使用して125GB)。

0

SQOOPは、500KBのデータをParquetファイル形式の柱状HDFS形式にインポートする方がよいでしょう。しかし、より多くの並列マッパーをインポートするための '-m 12'を使うことができます。

関連する問題