問題タブ [sqoop2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sqoop2 - Oracle から Hive にテーブルをロードし、日付とタイムスタンプを文字列に変換します
Sqoop のマニュアルで次のことに気付きました。
24.5. Hive でのスキーマ定義
Hive ユーザーは、SQL 型と Hive 型の間に 1 対 1 のマッピングがないことに気付くでしょう。一般に、直接マッピングを持たない SQL タイプ (DATE、TIME、TIMESTAMP など) は、Hive で STRING に強制されます。NUMERIC および DECIMAL SQL タイプは DOUBLE に強制されます。このような場合、Sqoop は、精度が失われたことを知らせる警告をログ メッセージに出力します。
そして、Sqoopが列を指定できることを知っています-型マッピングを使用して
--map-column-java
--map-column-hive
しかし、私の場合は、日付または日時を日付またはタイムスタンプに変換する必要がある RDBMS 型から HIVE 型への一般的な型から型へのマッピングが必要です。
解決策はありますか?
hadoop - sqoop を使用してデータを取り込みながらデータをマスクする方法
sqoop を使用してデータを抽出しています。sqoop で特定の列をマスクしたり、各セルを変更したりする方法はありますか。例えば:
取り込み後のデータを次のようにしたい:
また
sqoop で可能ですか?調べてみましたが、あまり情報が得られませんでした。
hiveql - 列に値の配列がある場合、Hive から Netezza への Sqoop エクスポート
Hive テーブルの行を Netezza テーブルにロードするために sqoop エクスポートを実行しようとしていました。問題は、値の配列を含むいくつかの列があり、これらの列のデータ型の DDL を Netezza で varchar(200) として作成し、sqoop ジョブを実行することです。しかし、不良行が制限に達したため、エラーが発生しています。以下は私のSqoopの仕事です:
sqoop export --options-file --direct --connect jdbc:netezza://10.90.21.140:5480/analytics --username sat144 --P --table analytics_stage --export-dir /home/dir1/analytics/data --fields-terminated-by '~' --input-null-string '\N' --input-null-non-string '\N' -m 1 -max-errors #0
以下の私の Netezza DDL:
CREATE TABLE analytics_stage ( id varchar(30), name varchar(60), dept nvarchar(99), dept_id nvarchar(200) );
私のHiveテーブルの列の値は以下です
Row1: 20134(id) sat(name) Data_Group(dept) [121,103,201,212,310] (dept_id)
誰でもこれについて私を助けることができますか? 列に負の値とHiveテーブルの値の配列がある場合、Netezzaで推奨されるデータ型は何ですか??
以下のSqoopエラーログ
16/05/09 15:46:49 INFO mapreduce.Job: map 50% reduce 0% 16/05/09 15:46:55 INFO mapreduce.Job: Task Id: attempts_1460986388847_0849_m_000000_1, Status: FAILED エラー: java.io. IOException: org.netezza.error.NzSQLException: エラー: 外部テーブル: 不正な入力行の数が maxerrors 制限に達しました
原因: org.netezza.error.NzSQLException: エラー: 外部テーブル: 不正な入力行の数が maxerrors 制限に達しました
java - リモート クライアント マシンで sqoop を実行する
Java を使用してクライアント マシンから sqoop import を実行しようとしています。sqoop クライアント API ファイルをたどります。
次のクエリがありました
- クライアント Java クラスを実行しているマシンには、hadoop がインストールされている必要はありません。
- このシステムに cloudera 5.5.1 がインストールされており、sqoop がインストールされています。利用できますか
ばかげた質問をしている場合は、ご容赦ください。cli から sqoop を実装しましたが、リモート アクセスに苦労しています
hadoop - MRv1 で実行している場合でも sqoop が糸に接続しようとしています
Cloudera クラスター バージョン 5.3.x を使用しており、次のコマンドを使用して sqoop クライアントを実行する場合
次のステートメントでループします。クラスタに MRv1 しかないのに、yarn に接続しようとしているように見えます。
cloudera に記載されている次のことを試しましたが、まだ変化はありません。
おそらく、その VM の /etc/sqoop2 の場所に tomcat-conf.mr1 ファイルが表示されないことに言及する必要があります。
activemq - hdfs から sql へのデータの移動
セットアップをテストしていて、hdfs のデータを SQL DB に移動する必要があり、データが生成されたときにも移動する必要があります。つまり、mapreduce ジョブが完了すると、ActivMQ メッセージが送信されます。Sqoop を使用して ActivMQ メッセージを受信したら、それを自動的に SQL に移動する必要があります。これを達成する方法を教えてください。
MQ と Sqoop が連携するかどうか誰か教えてもらえますか?
ありがとうございました..
hadoop - データノードがプライベートネットワークを超えてアクセスできるようにする方法は?
私のクラスター CDH5.4 には、プライベートおよびパブリック ネットワーク上にあるゲートウェイ ノードがあります。クラスターはプライベート ネットワーク上にあります。sqoop を使用して、パブリック ネットワーク上のデータベース サーバーからデータを取得したいと考えています。コマンドを発行すると、マップ タスクが失敗します
エラー: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO エラー: 不明なホストが指定されました
クラスター ノードがパブリック ネットワーク上の db サーバーにアクセスできないことを理解しています。
このパブリック - プライベート ネットワーク アーキテクチャが業界で非常に一般的であることを考えると、データノードがパブリック ネットワーク上のサーバーにアクセスできるようにする正しい方法は何ですか?
どんな助けでも大歓迎です....
ゲートウェイ ノード
データノード
java - Eclipse で sqoop2 アプリケーション プロジェクトをセットアップする方法は?
Sqoop Client API Guideを参照しています。ガイドの中に、次のように書かれています。
Sqoop クライアント JAR とその依存関係が必要です。
次に、maven の依存関係を一覧表示します。
それは、上記の依存関係を持つ Maven プロジェクトをセットアップする必要があるということですか? そうでない場合、Sqoop クライアント JAR とその依存関係はどこで見つけてダウンロードできますか?
どうもありがとう!