2016-12-30 5 views
0

私はCCA175試験を準備しようとしています。 mysqlデータベースretail_dbhiveにインポートしようとしていますが、このエラーが発生しています。私は数回試して、これらのフォルダからディレクトリやファイルを削除しました。CCA175のSqoop/Hive:テーブルの取得AlreadyExistsException

/user/hive/warehouse 
/user/cloudera 

それでも、私はこのsqoopジョブを実行した後、この次のエラーを取得しています:ファイル:は/ usr /瓶/ハイブ-コモン

sqoop import-all-tables \ 
--num-mappers 1 \ 
--connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \ 
--username=retail_dba \ 
--password=cloudera \ 
--hive-import \ 
--hive-overwrite \ 
--create-hive-table \ 
--compress \ 
--compression-codec org.apache.hadoop.io.compress.SnappyCodec \ 
--outdir java_files 

ロギングが 瓶にコンフィギュレーションを使用して初期化1.1.0-cdh5.7.0.jar!/hive-log4j.properties FAILED:実行エラー。 org.apache.hadoop.hive.ql.exec.DDLTaskからコード1を返します。 AlreadyExistsException(メッセージ:表カテゴリが既に存在している)

すべてのヘルプは高く評価されるだろう。

+0

コマンドの最後に '--verbose'を追加し、このエラーの前に生成されたハイブ作成テーブルコマンドを教えてください。理想的には上書きが使用されるので、Hiveテーブルを削除するべきです –

答えて

0

すでにハイブのデフォルトデータベースにカテゴリテーブルがあるようです。あなたはHiveからテーブルを落とす必要があります。手順は次のとおりです。

  1. のMySQLへのログインとは、どのように多くのテーブルをチェックすることretail_dbはの 構成されていません。

    mysql> use retail_db; 
    mysql> show tables; 
    
  2. ハイブにログインし、retail_dba(mysql)のテーブルが存在するかどうかを確認しますか? ハイブに存在するドロップテーブル。あなたの場合には、そのカテゴリにナビゲートホームClouderaのに

    hive> show tables; 
    
    hive> drop table categories; 
    
  3. 、すでに あなたを行うこれらのテーブルに対応するディレクトリを持っているかどうかを確認してください。 SqoopをHiveにインポートするため、ハイブウェアハウスの場所に移動する前に、/ user/cloudera /の下のHDFSにデータが一時的にコピーされるためです。 の例では、categoriesディレクトリを確認してください。

    [[email protected] /]$ hadoop fs -ls /user/cloudera/categories 
    
+0

ハイブのデフォルトデータベースからテーブルを削除するか、新しいデータベースをハイブで作成し、特定のハイブデータベースのテーブルをインポートするためにsqoopジョブで '--hive-database ' –

0

sqoopコマンドから--create-ハイブテーブルを削除します。

sqoopのドキュメントごとに、同じ名前のテーブルがすでに存在する場合、ジョブは失敗します。

--create-hive-tableこれを設定した場合、ターゲットハイブ テーブルが終了するとジョブは失敗します。デフォルトではこのプロパティはfalseです

関連する問題