2017-12-18 12 views
2

Cloudera VMを使用する場合、どのようにHDFSの情報にアクセスできますか?私はHDFSへの直接的な経路がないことを知っていますが、私はそれに動的にアクセスする方法も見ていません。Cloudera VMのHDFSからハイブテーブルにデータをロード

ハイブCLIを通じてハイブ表を作成した後、私はHDFSにあるファイルからいくつかのデータをロードしようとしました:

load data inpath '/test/student.txt' into table student; 

しかし、その後、私はちょうどこのエラーを取得する:

FAILED: SemanticException Line 1:17 Invalid path ''/test/student.txt'': No files matching path hdfs://quickstart.cloudera:8020/test/student.txt 

私は次のようにHDFSにないデータをハイブテーブルにロードしようとしました:

load data inpath '/home/cloudera/Desktop/student.txt' into table student; 

ただ生産このエラー:

FAILED: SemanticException Line 1:17 Invalid path ''/home/cloudera/Desktop/student.txt'': No files matching path hdfs://quickstart.cloudera:8020/home/cloudera/Desktop/student.txt 

もう一度、私はhdfs://quickstart.cloudera:8020のルートでデータにアクセスしようと見て、私はそれが何であるかわからないんだけど、HDFSのルートディレクトリではないようです。

私は何が間違っているのかわかりませんが、ファイルがHDFSにあることを確認したので、なぜこのエラーが発生しているのか、それを修正する方法がわかりません。

答えて

1

how can you access information in the HDFS

もちろん、ハイブを使用する必要はありません。 hdfs dfsコマンドは、HDFSとの対話方法です。

I'm not sure what that is, but it doesn't seem to be the root directory for the HDFS

これはHDFSのルートです。 quickstart.clouderaはVMのホスト名です。ポート8020はHDFSポートです。


例外は、LOCALキーワードの使用の違いに基づいています。何をやっている

LOAD DATA INPATH <hdfs location> 

VSあなたは


やファイルがHDFSにある場合、それはあなたがにファイルを入れているかは明らかではありません

LOAD DATA LOCAL INPATH <local file location> 
を望むように見えるものをしかし、HDFSには/ homeフォルダやデスクトップはありませんので、2番目のエラーは少なくとも意味があります。

とにかく、hdfs:///testフォルダが既に存在すると仮定すると、hdfs dfs -put /test/students.text /test/はファイルをアップロードする1つの方法です。それ以外の場合は、hdfs dfs -put /test/students.text /testは、HDFS上/test

注意をあなたのファイルの名前を変更します。あなたはHDFSのディレクトリ上で外部表を作成することができ、あなたはLOAD DATAコマンドを使用する必要はありません。

関連する問題