sqoopを使用してRDBMSからハイブにデータをロードしようとしています。ハイブカウント(*)が無期限に実行され、データに値があらかじめ入力されています
データでハイブテーブルを作成し、カウント(*)を実行しようとすると、クエリは永遠に実行されます。また、(外部の)ハイブテーブルを削除し、hdfsディレクトリからすべてを削除してから同様のものを作成すると、hdfsディレクトリからすべてのものを削除しても、テーブルに古いデータ(削除されたテーブルと同じ)事実、ゴミもクリアされています。
でも、データが入力され、カウント(*)が無期限に実行されます。
UPDATE 1
そのスタンドアローンサンドボックスhortonworks(2.4)環境。 ハイブからテーブルを削除し、HDFSから関連ファイルも削除しました。 データを作成して読み込むためのスクリプトがあります。
drop table employee;
とコマンド
hadoop fs -rm -r /user/hive/warehouse/intermidiateTable/* ,and,
hadoop fs -rm -r .Trash/Current/user/hive/warehouse/intermidiateTable/*
次I実行して、私はこれと同じクエリを使用してテーブルを作成します。
create external table employee (id int, name string, account_no bigint, balance bigint, date_field timestamp, created_by string, created_date string,batch_id int, updated_by string, updated_date string)
row format delimited
fields terminated by ','
lines terminated by '\n'
location '/user/hive/warehouse/intermidiateTable';
とするとき、私はテーブルが移入されますクエリを選択ください古いデータ Als0では、選択カウント(*)が無期限に実行されます。
おすすめの解決方法
正確なシェルとHQL(Hive Query Language)コマンドを共有できますか? DROP文を使用したか、削除されたファイルのみを使用しましたか?データフォーマット、行数、ファイル数、合計サイズの特性も与えます。 Plusクラスタの基本的な詳細Hadoopモード、クラスタサイズ、ノードの特性この情報を質問に追加することができます。 –
問題のUPDATE 1を確認してください。@IvanGeorgiev –
HIVEでフォーマットされた従業員を記述し、ファイルパスを取得し、正しいファイルを削除していることを確認し、dfs -lsコマンドを実行してください。 –