データのインポート(クラスタオブジェクト)
Sqoop「インポート」という概念では意味:大きな非クラスタ化データ(RDBMS)から大規模なデータクラスタ(HDFS、HIVE、HBaseの)データの伝送に、と呼ばれる:インポート、つまり、importキーワードを使用します。
HDFSに1つのRDBMS
1)ノーマルオープンMySQLサービスを決定します
2)表を作成し、いくつかのデータMySQLを挿入
$ mysqlの-uroot -p000000 MySQLの>データベース会社を作成します。 mysqlの>テーブルcompany.staff(ID int型(4)主キーNOT NULL AUTO_INCREMENT、名前はvarchar(255)、セックスVARCHAR(255))を作成します。 MySQLの> company.staffに挿入(名前、性別)の値( '・トーマス'、 '男性'); MySQLの> company.staffに挿入(名前、性別)の値( 'カタリナ'、 '女性');
3)データのインポート
(1)すべての導入
$ binに/ sqoop \インポート --connect JDBCます。mysql:// hadoop102:\ 3306 /会社 --usernameルート\は \ 000000を--password --tableスタッフ\ --target-dirは/ユーザー/会社\ --delete-ターゲット-dirの\ --num-マッパー1 \ --fields終端-で"\ tの"
(2)インポートクエリ
$ビン/ sqoop輸入の\ --connectのJDBC:mysqlの:// hadoop102:3306 /会社\ --usernameルート\ --password 000000 \ --target-dirは/ユーザー/会社\ --delete-対象のdir \ - -num-マッパー1 \ --fields終端-で"\ tの" \ --query 'スタッフからのid <= 1と$条件名を選択し、性別;'
ヒント:最後に書き込まれたデータの一貫性を確保するために使用するパラメータを渡し、WHERE句で「$条件」を含んでいなければなりません。
クエリは、二重引用符を使用している場合、その識別シェル変数を防ぐために、条件転送する前に$文字を追加する必要があります。
(3)指定されたカラムの導入を
$ビン/ sqoop輸入の\ --connectのJDBC:mysqlの:// hadoop102:3306 /会社\ --usernameルート\ --password 000000 \ --target-dirは/ユーザー/会社\ --delete-対象のdir \ - -num-マッパー1 \ --fields終端-で"\ tの" \ --columns ID、\セックス --tableスタッフ
ヒント:それは複数の列になる場合分けたときの列は、カンマで区切って、スペースを追加しないでください
(4)キーワードフィルタクエリsqoopインポートデータを使用して
$ビン/ sqoop輸入の\ --connectのJDBC:mysqlの:// hadoop102:3306 /会社\ --usernameルート\ --password 000000 \ --target-dirは/ユーザー/会社\ --delete-対象のdir \ - -num-マッパー1 \ --fieldsが終わる-で"\ tの" \ --tableスタッフの\は、 "ID = 1" --where
2 RDBMSはハイブに
$ binに/ sqoop \インポート --connect JDBCます。mysql:// hadoop102:\ 3306 /会社 --usernameルート\は \ 000000を--password --tableスタッフ\ --num-マッパー1 \ --hiveインポート\ - -fields終端-で"\ tの" \ --hive上書き\ --hiveテーブルstaff_hive
ヒント:この2段階のプロセスは、最初のステップは、HDFSにデータをインポートするために、第2のステップはハイブ倉庫にHDFSのデータ移行にインポートされ、デフォルトの一時ディレクトリの最初のステップは、/ユーザー/ユーザー名/テーブル名です
3 HのRDBMS B ASE
$ binに/ sqoop \インポート --connect JDBCます。mysql:// hadoop102:\ 3306 /会社 --usernameルート\は 000000 \ --password --table会社\ --columns "ID、氏名、性別を" \ --column -family "情報" \ --hbase作成テーブル\ --hbase行キー"ID" \ --hbaseテーブル"hbase_company" \ --num-マッパ1 \ --split-IDによって
ヒント:sqoop1.4.6のみHBase1.0.1バージョンの前に自動作成機能HBaseのテーブルをサポートしています
解決策:手動HBaseのテーブルを作成します。
HBaseのは>「情報 'hbase_company' を作成します
(5)この表の次のスキャンのHBaseで得られ
HBaseの>スキャン 'hbase_company'