2017-01-04 3 views
0

Drill.Inを使用してHIVEテーブルとHBaseテーブルを正常に照会しました。私の使用状況私はHive構造を作成し、HiveとDrillを使用してそのデータをクエリしています。そのディレクトリに、我々はストップ書いているならば、ドリルがそのクエリすることができますドリルは開いているHDFSディレクトリでクエリできますか?

Failed with exception java.io.IOException:java.io.IOException: Cannot obtain block length for LocatedBlock{BP-517438351-192.168.1.136-1475035616867:blk_1073793923_53182; getBlockSize()=0; corrupt=false; offset=0; locs=[127.0.0.1:50010]; storageIDs=[DS-be58a5f4-58d9-4c3c-8138-ce18ffa10ef8]; storageTypes=[DISK]} 

、その後、ドリルは、それがようなエラーを与えている、そのハイブテーブルを照会することができません(ディレクトリが開かれ、HDFSへのデータ書き込み手段)どちらの場合も、ハイブは正常に動作しています。原因を見つけることができません。

DrillはHDFSファイルやディレクトリを開いたかどうかを問い合わせることができますか?私はたくさん試しましたが、それについては何も得ていません。

+0

誰でも私を共有してください................. – user6608138

+0

ドリルを使用してそのストリーミングHDFSディレクトリを照会する方法。 – user6608138

答えて

0

技術的には、ファイルシステム(ext2、ext3、またはhdfs)はすべて読み書きに一貫している必要があります。ディレクトリにデータを書き込むとき、ファイルシステムは1つのプロセスによって書き込みモードに設定され、別のプロセスに読み込みアクセスを与えることはできません。データを読み込むように強制しても、読み込みのプロセスでは一貫性のないデータが得られます。 これは、ファイル/ディレクトリが書き込みモードになっているときに読み取りアクセス権が得られない可能性があるためです。私の意見では、hdfsでは、別のプロセスが同じファイルに書き込んでいるときに、読み込みクエリを実行しないことがあります。

+0

あなたのエラーでは、hdfsがApacheのドリルのメモリブロックへのアクセスを許可していないことは明らかです。ストームがデータの書き込みを停止するときに同じクエリを試してください。 – testtech

+0

私は私のusecaseで一度に両方を使用することはできません。 – user6608138

+0

私はApacheのドリルの専門家ではありませんが、私の理解によれば、開かれたファイルにApacheのドリルを使用することはできません... – testtech

関連する問題