元の派生コマンド: bin/sqoop インポート -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info 原因分析: MySQL フィールドに '\n' などの区切り文字が含まれている可能性があります。Hive にインポートすると、デフォルトで 'n' が改行文字として使用され、Hive にレコードが多くなります。 解決:データをインポートするときに、--hive-drop-import-delims オプションを追加して、フィールド内の \n、\r、および \01 を削除します。 最終導関数コマンド: bin/sqoop インポート -connect jdbc:mysql://192.168.169.128:3306/yubei -username root -password 123456 -table yl_city_mgr_evt_info --split-by rec_id -m 4 --hive-drop-import-delims --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --hive-overwrite -create-hive-table -delete-target-dir -hive-database default -hive-table yl_city_mgr_evt_info 公式ドキュメントを参照してください: https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html 補足: Sqoop から Hive に MySQL データをインポートする際に遭遇する落とし穴 1.sqoopをHDFSにインポートする1.1 sqoopジョブを実行すると、最後の値が自動的に更新されます # sqoop 増分インポート スクリプト bin/sqoop ジョブ --create sqoop_hdfs_test02 --import \ --connect jdbc:mysql://localhost:3306/pactera_test \ --ユーザー名 ルート \ --パスワード 123456 \ --テーブル学生\ --target-dir /user/sqoop/test002/ \ --fields-terminated-by "\t" \ --check-column 最終更新日 \ --増分最終変更日 \ --last-value "2018-12-12 00:03:00" \ --追加 注: --append パラメータは必須です。指定しないと、ジョブを 2 回目に実行するときに次のようにエラーが報告されます。 この時点で、sqoop ジョブが構築されました。 2.Hiveはテーブルを作成し、sqoopによってインポートされたデータを読み取ります。存在しない場合は外部テーブルを作成します student_hive (SId int、Sname string、Sage string、Ssex string、last_modified Timestamp) 行形式の区切りフィールドは '\t' で終了し、場所は 'hdfs://node01:8020/user/sqoop/test002/' です。 注意: hive の時間形式はタイムスタンプです。日付に設定すると、DB データを正常に読み込むことができません。 最初のフル ロードが完了し、ルート全体が完全に正常になり、Hive テーブルでデータをクエリできるようになりました。 -----------------------キー分割線----------------------- * sqoop lastmodified 形式での増分ロードでは、最終値がジョブ実行のシステム時間として保存されます。テスト データベースのチェック列が現在のシステム時間 (つまり、前のジョブの最終値) より小さい場合、データはロードされません。 SId=6 の場合は読み込まれないので、データテストのために今日の時間 (2018-12-26 17:05) に変更すると、データが正常に読み込まれます。よっほー! ! 要約:sqoop増分インポートにlastmodified形式を使用する場合、 1. --append の使用に注意してください。 2. 最後の値は、ジョブが実行されたときのシステム時間です。データをテストするときは、データが正確で、自動的に増加することを確認してください。 3. すべてには固定番号があります。情報を確認し、システムで発生した問題を正確に特定します。 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
<<: データ型の判断における js typeof と instanceof の違いと、その開発と使用について
>>: docker に nacos をインストールしてデータベースを構成する詳細なチュートリアル
序文この記事では、Vue コンポーネントがどのように解析され、レンダリングされるかを説明します。 V...
1. まずパゴダを設置するインストール要件: Python バージョン: 2.6/2.7 (Pago...
目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...
この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...
クーパー氏は、一般的に上から下、左から右に向かうユーザーの視覚経路について話しました。優れたビジュア...
ご存知のとおり、私たちが毎日閲覧する Web ページ、Web サイト、または Web ページには独自...
この記事では、Element-uiを使用してvue.jsでナビゲーションメニューを実装するための具体...
この記事の例では、参考のためにvueカスタムオプションタイムカレンダーコンポーネントの具体的なコード...
1: グループ化関数の記述順序 1 選択 ... 2 から ... 3 どこで ... 4 グループ...
多くの場合、フォームを美しくするために、送信ボタンが画像に置き換えられます。ただし、細部に注意を払わ...
目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...
Go は、シンプルで信頼性が高く、効率的なソフトウェアを簡単に構築できるオープンソース プログラミン...
この記事では、モバイルモーダルボックス効果を実現するためのJavaScriptの具体的なコードを参考...
<br />かつて、仏印と東坡氏が仏教について雑談していたとき、東坡氏が突然こう言った。...
VMware仮想マシンでのCentos7ブリッジネットワーク構成の完全な手順は参考用です。具体的な内...