2016-11-09 7 views
3

sqoop not import datatype varchar2 to hadoop Oracleデータベースにテーブルがあり、データをhdfsにインポートします。 私はsqoopでそれをしようとしていますが、varchar2カラムはインポートされません。 これらのデータがhdfsファイルに到着していないことを意味します。 -map-column-java - 私sqoopコマンドsqoop not import datatype varchar2

sqoop import -D mapred.job.name='default oraoop' --driver oracle.jdbc.driver.OracleDriver --connect "jdbc:oracle:thin:MyIp:MyServiceName" --username "XXXX" --password "XX" --target-dir "My_dir" --query 'select * from MyTable where $CONDITIONS' --split-by "coulmn" --boundary-query "SELECT min(splitColumn),max(SplitCoulmn) FROM DUAL" --num-mappers 30 

答えて

1

より高いojdbc "ojdbc6 or ojdbc7"を使用する代わりにojdbcをダウングレードしようとすると "ojdbc14"が問題を解決しましたが、一部のエンコーディングクラスで例外が発生しないようにするために"ori18n.jar"を使用して、orale9iからデータをインポートします。

あなたは「$ HADOOP_CLASSPATH」でこれらのjarファイルへのパスを見つけることができますし、「$ SQOOP_HOME

0

はsqoopがVARCHAR2のマッチングのJava型を識別し、そうで試すことができなかったかもしれませ。

の列Aあなたsqoopコマンドは次のようになり、その後VARCHAR2タイプで、

sqoop輸入-Dのmapred.job.name = 'デフォルトoraoop' --driver oracle.jdbc.driver.OracleDriverと--connectをしましょう"$ db" - パスワード "XX" - ターゲット・ディレクトリ "My_dir" - select * from MyTable where $ CONDITIONS '--map-column- JavaのA =文字列 --split-による "coulmn" --boundary-クエリ "SELECT分(splitColumn)、最大DUAL FROM(SplitCoulmn)" --numを-マッパー30

が、この作品なら、私に知らせてください。

+0

私はそれを試してみましたが、私はこのエラー16/11/09 4時20分12秒ERRORツールを得ました.ImportTool:Imported Failed:Javaタイプの文字列のResultSetメソッドがありません –

+0

'S'は 'String'の大文字にする必要があります。コマンドを編集しましたか? –

+0

私はそれを試みましたが、まだvarchar2の列はインポートされません –