问题描述
本地登录到HiveServcer2服务器,从本地导入数据到Hive表中,执行以下语句出现错误:load data local inpath 'FILE_PATH' into table TABLE_NAME
。
错误原因
数据导入语句本身没有问题,我们在搭建的伪分布式集群中也是这么导入的,但是,生产环境下,HiveServer2的节点和我们登录的节点并不是一个节点,所以当我们登录了HiveServer2时,实际上操控的是另一台主机(服务器),所以Hive执行导入语句时,会从HiveServer2所在的节点找数据,自然就找不到了所以,Hive使用LOAD LOCAL DATA时,数据文件必须与HiveServer2服务在同一个节点,否则就会报“Invalid path ‘/path’:No files matching path file”异常。
解决办法
将数据放到HDFS上,然后从HDFS上导入数据到Hive表中,执行以下语句存入HDFS:hdfs dfs -put 'FILE_PATH\FILE_NAME' HDFS_PATH
,然后执行以下语句导入到Hive表中:load data local inpath 'HDFS_PATH' into table TABLE_NAME
。
问题解决!!!