2016-07-01 3 views
0

私はテーブルからmysqlをhdfsまで問題なくインポートしました。 別のテーブルをインポートしましたdep_empハイブも成功しました。 ハイブでは、myfirsthivetableとdep_empという2つのテーブルしかないことを二重チェックしました。従業員はです。 私は、ハイブにテーブルの従業員をインポートしようとしたが、私はエラーを言ってしまった:ここハイブへのインポートが失敗し、テーブルによって既に拒否されたのはなぜですか?

Output directory hdfs://localhost:9000/user/root/employees already exists 

は、私のインポートクエリです: enter image description here

:ここ

sqoop import --connect jdbc:mysql://localhost/employees --username root --P --table employees --hive-import 

は私のハイブクエリ結果であります

誰もが私にこれを助けることができますか?どうもありがとうございました。

答えて

0

これはsqoop輸入ジョブがどのように動作するかです:

sqoopは、ユーザーのhomeディレクトリですtmp DIRに/輸入データを作成する(あなたのケースで、それは/user/rootである)と、その実際の場所(すなわち、/home/hive/wearhouseにデータをコピーします。このemployees DIRはあなたがimport文を実行する前に。そのためディレクトリを削除したり、その重要な場合は、名前を変更存在している必要があります。

hadoop fs -rmr /user/root/employees

OR

hadoop fs -mv /user/root/employees /user/root/employees_1

そしてsqoopコマンドを再実行してください!

+0

あなたの説明をよく理解する前に、私はあなたの指示に従いました。 '[root @ xie1 sbin]#hadoop fs -mv/home/root/employees/home/root/employees_1 mv: '/ home/root/employees_1':そのようなファイルやディレクトリはありません ' – mdivk

+0

あなたのユーザのホームの場所を使用します。エラーは'/user/root/employees'のように見えます。 ' –

+0

私は答えを更新しました –

関連する問題