之前根據(jù)網(wǎng)上相關(guān)教程搭建hive,一直沒什么問題整吆,最近新搭建 hive服務(wù)時出現(xiàn)了無法創(chuàng)建數(shù)據(jù)表的問題拱撵,從日志中發(fā)現(xiàn)報了一個,無法找到/user問題辉川,正常情況下創(chuàng)建一張數(shù)據(jù)表的時候會在hdfs中創(chuàng)建一個/user/hive/warehouse的文件夾,去hdfs中沒有這個目錄拴测,我就手動添加
hadoop fs -mkdir /user/hive/warehouse
顯示添加失敗乓旗,經(jīng)過嘗試要在目錄前添加-p函數(shù),并且添加namenode的域名(機(jī)器名)和端口.
hadoop fs -mkdir -p hdfs://host1:port1/user/hive/warehouse
創(chuàng)建成功后昼扛,重新打開hive使用,創(chuàng)建hive表寸齐,依然失敗,一樣的報錯,無法找到/user目錄抄谐。依據(jù)上次手動創(chuàng)建目錄的經(jīng)驗我認(rèn)為應(yīng)該是沒找到對應(yīng)的hdfs服務(wù)渺鹦。
修改hive-site.xml文件
<property>
<name>hive.metastore.warehouse.dir</name>
<value> hdfs://<Federation name>/user/hive/warehouse</value>
</property>
重新啟動hive, 可以創(chuàng)建hive表了。對于之前使用hive無需過多配置蛹含,這次卻需要修改warehouse毅厚,也找到了合理的解釋,之前配置hive都是安裝在Hadoop namenode的機(jī)器上直接可以通過/user/hive/warehouse創(chuàng)建hdfs目錄浦箱,但是這次為了分散壓力我把hive安裝到了別的服務(wù)器上吸耿,導(dǎo)致無法找到正確的namenode,所以需要在hive.metastore.warehouse.dir酷窥,添加hdfs聯(lián)邦的地址咽安。