1つ:sqoopの概要
- sqoopは、大量のデータを効率的に転送するために設計されたツールであり、通常、リレーショナルデータベースから非リレーショナルデータベースにデータを同期するために使用されます。
- sqoopを使用してデータをインポートおよびエクスポートします。これは基本的にMapreduceプログラムを実行し、MRの並列化とフォールトトレランスを最大限に活用します。
- Sqoopは増分更新をサポートし、最後にエクスポートされたデータソースに新しいレコードを追加します。
2:sqoopの使用
MySQLデータベースのデータベース名を取得します
sqoop list-database
-connect 'jdbc:mysql://10.1.96.xx:3306'
-username test
-password test
SQLServerデータベースの特定のデータベース内のすべてのテーブルの名前を取得します
sqoop list-tables
connect'jdbc:sqlserver://192.168.12.xx:1433;database=pems;
username=sa;password=v3pems@2020'
sqoopは、Oracleデータベース内のデータベース内のすべてのテーブルをhiveにインポートします
sqoop import-all-tables
-connect jdbc:oracle:thin:@10.89.142.207:1521:orcl
-username scott -password tiger -hive-database eda
-hive-import -create-hive-table -m 1
Sqoopを使用してSQLステートメントを実行する
sqoop eval -connect 'jdbc:sqlserver://192.168.12.65:1433;database=PEMS_DATA;
username=sa;password=V3pems@2021' -query'select count(*) from rep_energy_tar'
3:sqoopの一般的な操作コマンド
パラメータの説明を使用する
1.データのインポート:sqoopのインポート
パラメータの説明は、sqoop import--helpコマンドで表示できます。
共通パラメータ
- --Connectは、JDBC接続文字列を指定します
- --Connection-managerは、接続マネージャークラスの名前を指定します
- --Connection-param-fileは、接続パラメータファイルを指定します
- -ドライバーは、使用するJDBCドライバークラスを手動で指定します
- --Hadoop-homeは$ HADOOP_MAPRED_HOME_ARGパラメーターをオーバーライドします
- –hadoop-mapred-home 覆盖 $HADOOP_MAPR ED_HOME_ARG 参数
- -印刷手順を支援する
- --Metadata-transaction-isolation-levelメタデータクエリのトランザクション分離レベルを定義します
- --Oracle-escaping-disabled Oracle / OraOop接続マネージャのエスケープメカニズムを無効にします
- -Pコンソールからパスワードを読み取ります
- -パスワードセットパスワード検証
- --Password-alias資格情報プロバイダーのパスワードエイリアス
- -パスワード-パスワードファイルパスでのファイルセット認証
- -リラックス-インポートにread-uncommiアイソレーションを使用するアイソレーション
- --Skip-dist-cachejarの分散キャッシュへのコピーをスキップします
- --Temporary-rootdirは、インポート用の一時ルートディレクトリを定義します
- --Throw-on-errorジョブ中にエラーが発生した場合、RuntimeExceptionを再スローします
- -ユーザー名は認証用のユーザー名を設定します
- -作業中に詳細情報を詳細に印刷します
インポートされた制御パラメータ
- -追加追加モードでインポートデータを追加
- --As-avrodatafileはデータをavroファイルストレージにインポートします
- --As-parquetfileはデータをparquetファイルストレージにインポートします
- --As-sequencefileは、SequenceFileファイルストレージとしてデータをインポートします
- --As-textfileプレーンテキスト形式でデータをインポートします(デフォルト)
- --Autoreset-to-one-mapper使用可能な分割キーがない場合は、マッパーの数を1つのマッパーにリセットします。
- --Boundary-queryは境界クエリを設定し、主キーの最大値と最小値を取得します
- -列<col、col、col…>は、インポートする必要のある列を指定します
- --Compression-codecインポートに使用される圧縮コーデック
- --Delete-target-dir削除モードでデータをインポートします(ターゲットファイルが存在する場合は、削除してからインポートします。指定されていない場合、ターゲットパスが存在する場合は、エラーが報告されます)
- -直接使用直接インポート高速パス
- --Direct-split-sizeダイレクトモードでインポートする場合、入力ストリームを「n」バイトで分割します
- -e、-queryはSQL「ステートメント」の結果をインポートします
- --Fetch-sizeさらに行が必要な場合は、データベース「n」からフェッチされる行数を設定し、インラインLOBの最大サイズを設定します
- -m、-num-mappers n個のマップタスクを使用して並列にインポートします。デフォルトの並列処理は4です。
- --Mapreduce-job-nameは、生成されたmapreduceジョブの名前を設定します
- -マージ-マージされた結果のキー列に使用されるキー(増分インポート中に繰り返されるデータをマージするために使用されます)
- --Split-byは、作業単位のテーブルの列を分割するために使用されます
- --Split-limit日付/時刻/タイムスタンプおよび整数型の各分割列の行分割の上限。日付またはタイムスタンプフィールドの場合、秒単位で計算されます。分割制限は0より大きくする必要があります
- --Table読み取られたテーブルの名前(インポートされるテーブル)
- --Target-dirインポートされたテーブルがHDFSに保存されるターゲットパス
- -検証構成されたバリデーターを使用してコピーを検証します
- -検証-failurehandlerValidationFailureHandler完全修飾クラス名
- --Validation-thresholdValidationThresholdの完全修飾クラス名
- --ValidatorValidatorの完全修飾クラス名
- --Warehouse-hdfsをインポートするためのdir親パス
- -インポート時にWHERE条件フィルタリングを使用する場所
- -z、-compress圧縮を有効にする
インクリメンタルインポートパラメータ
- -チェック-増分変更をチェックするための列ソース列
- --Incrementalは、タイプが「append」または「lastmodified」のインクリメンタルインポートを定義します
- --Last-value列に最後にインポートされた値を段階的にチェックします
出力行のフォーマットパラメータ
- -囲まれています-必須フィールドの囲まれた文字を設定します
- -エスケープ-エスケープ文字を設定します
- -フィールド-終了-フィールドセパレータの設定
- -行末-行末文字を設定します
- --Mysql-区切り文字MySQLのデフォルトの区切り文字セットを使用します:field:、; line:\ n;エスケープ文字:\; field delimiter: '
- -オプションで-囲まれています-文字を含むフィールドを設定します
解析パラメータを入力します
- -入力-囲まれています-必要なフィールドマスクを設定します
- -入力-エスケープ-入力エスケープ文字を設定します
- -入力フィールド-終了-入力フィールドセパレータの設定
- -入力行-終了-入力行の終了文字を設定します
- -入力-オプションで-囲まれています-文字を含むフィールドを設定します
Hiveパラメーター
- --Create-hive-tableは、インポート時にHiveテーブルを自動的に作成します。ターゲットのHiveテーブルが存在する場合、失敗します。
- --Hive-databaseハイブにインポートするときに使用するデータベース名を設定します
- --Hive-delims-replacementは、インポートされた文字列フィールドのHiveレコード\ 0x01と行区切り文字(\ n \ r)をユーザー定義の文字列に置き換えます
- --Hive-drop-import-delimsは、インポートされた文字列フィールドからHiveレコード\ 0x01と行区切り文字(\ n \ r)を削除します
- --Hive-homeは$ HIVE_HOME構成パラメーターをオーバーライドします
- --Hive-importテーブルをHiveにインポートします(区切り文字が設定されていない場合は、Hiveのデフォルトの区切り文字が使用されます)
- --Hive-Hiveテーブルの既存のデータを上書き上書きします(上書きインポート)
- --Hive-partition-keyハイブにインポートするときに使用するパーティションキーを設定します
- --Hive-partition-valueハイブにインポートするときに使用するパーティション値を設定します
- --Hive-tableハイブにインポートするときに使用するテーブル名を設定します
- --Map-column-hive指定された列のハイブタイプへのマッピングを上書きします
HBaseパラメーター
- --Column-familyは、インポートされたターゲット列ファミリーを設定します
- --Hbase-bulkloadはHBaseの一括読み込みを有効にします
- --Hbase-create-table指定されている場合、欠落しているHBaseテーブルを作成します
- --Hbase-row-keyは、行キーとして使用する入力列を指定します
- --Hbase-tableHBaseにインポートされたテーブルの名前
参照:
https://zhuanlan.zhihu.com/p/163266351