2016-04-11 15 views
1

こんにちは、HADOOPでトレーニングを受けています。私はsqoopを使用して、オラクル(ウィンドウ、11g xe)からhdfsにテーブルデータをインポートする必要があるタスクがあります。私は次の記事を読んでいます。私の質問は、どのように私は正確にhdfsにウィンドウからデータをインポートすることです。 Noramally私はWinscpを使用して、Windowsからhdfsマシンにファイルを転送します。 hdfs(cdh3)マシンにインストールされたMySqlのデータをインポートしました。しかし、WindowsのOracleからhdfsにデータをインポートする方法はわかりません。助けてください。sqoopを使用してOracle(Windows)からHDFS(CDH3)マシンにデータをインポート

Link that I am following

+0

のIPアドレスは、カスタム構築されたのHadoop環境を使用するか、CDHまたはHDPまたはその他のような任意の既製のフレーバーを使用していますか? – SrinivasR

答えて

0

ローカルマシンへのOracleからデータをインポートする必要はありません。その後、HDFSマシンにコピーします。その後、HDFSでインポートします。

Sqoopここでは、RDBMSテーブルをHDFSディレクトリにインポートします。

Useコマンド:

sqoop import --connect 'jdbc:oracle:thin:@192.xx.xx.xx:1521:ORCL' --username testuser --password testpassword --table testtable --target-dir /tmp/testdata

がsqoopが稼働しているマシンに移動します。ターミナルに行きます( 私はそのLinuxをと信じています)。上記のコマンドを起動し、hdfsの( の例のコマンド​​をと書いた)を確認してください。 Oracleのテーブルに対応するファイルがあります。

詳しくは、sqoop docsをご確認ください。続き

+0

私はバックアップを取って、CDH3マシンでこのバックアップファイルをWinscpを使ってコピーし、次にsqoopをHDFSでプルする必要があります。私は正しいですか? – user2998990

+0

@ user2998990いいえいいえ。何もコピーする必要はありません。 sqoopはすべてを行います。 oracleに有効な資格証明を入力するだけです。 –

+0

@ user2998990更新された回答を確認する –

4

は段階的なプロセスです:

.ConnectのOracle SQLコマンドラインは、あなたの資格情報を使用してログイン:

例えばユーザー名:システムパスワード:システム

(必ずこのことを確認しますユーザーはすべての特権を持つ新規ユーザーを作成します)。そのユーザの下の表を食べて、いくつかの値を挿入し、我々はHDFSへのOracleから我々のデータを転送するためのコネクタを必要とする.Now

をコミットします。 そこで、我々は、Oracle -sqoopコネクタのjarファイルをダウンロードし、CDH3の次のパスに配置する必要があります。(あなたのコマンドで使用するsudoのそれは、Linuxで管理アセスを必要とするため、次のパスにコピーしている間に)

/usr/lib/sqoop/bin 

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html - ダウンロードリンク - ojdbc6.jar

ダウンロードしたjarをWindowsからCDH3に転送するには、winscpを使用します。その後、CDH3の上記のパスに移動します。

。コマンド:

sudo bin/sqoop import –connect jdbc:oracle:thin:system/[email protected]:1521:xe–username system -P –table system.emp –columns “ID” –target-dir /sqoopoutput1 -m 1 

sqoopoutput Uはあなたの

-m 1に従ってDISを変更することができ、あなたのデータを取得しますHDFSでの出力に含まファイルではありません:これは、ここでは、このsqoop仕事のためにマッパーのない番号を伝えますそれは1

192.168.XX.XXです:1521 - Windowsマシン

関連する問題