hive Invalid path xxxx: No files matching path file: xxxx

背景:在本地執行代碼遠程連接hiveserver2,操作hive中的數據

問題1:從本地load文件到hive遇到一個問題,代碼中執行load語句報錯:Invalid path xxxx: No files matching path file: xxxx

最後發現是這裏的本地是相對於HDFS來說的本地,也就是說本地也得位於hiveserver2所在的節點上,但是不在HDFS中,使用LOAD DATA LOCAL INPATH xxxx可以load本地的文件到hive,不帶LOCAL可以load HDFS中的文件到hive。

問題2:當寫數據的任務和hiveserver2位於不同的節點上時,需要將數據先通過hdfs upload把數據文件上傳到hiveserver2的節點上,然後使用LOAD DATA INPATH xxxx的方式加載數據到hive,在hdfs_client.upload文件到hdfs的過程中可能遇到連接超,但是卻可以執行hdfs_client.list的問題,這裏需要在/etc/hosts文件中配置hdfs節點名稱和ip地址的映射,參考:python hdfs遠程上傳文件到hdfs

問題3:當寫數據的任務是位於容器中而hiveserver2位於同一個節點上時,可以通過共享目錄的方式使用LOAD DATA LOCAL INPATH xxxx來加載文件,此處的目錄是宿主機中的目錄,當容器和hiveserver2位於不同節點上時,只能使用問題2描述的方法。

問題4:當hive有多個namenode節點實現ha時,需要先判斷那個節點爲active(活動的),然後才能上傳文件數據到這個節點。
參考:hive No files matching path file and file Exists

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章