Hadoop 当UDF使用某些外部资源文件但在本机上正确运行时,为什么配置单元错误FileNotFoundException?

Hadoop 当UDF使用某些外部资源文件但在本机上正确运行时,为什么配置单元错误FileNotFoundException?,hadoop,user-defined-functions,hive,Hadoop,User Defined Functions,Hive,UDF使用了一些外部资源文件,然后出现错误: “java.io.FileNotFoundException:resource/placeMap.txt(没有这样的文件或目录)”, 这个函数在本机上正确运行,为什么在hive上错误,我如何解决它?多谢各位 hive的基本功能是将查询转换为hadoop map reduce作业。因此,它们在具有任务跟踪器的机器上执行。因此,如果您使用的是外部源,则需要确保该文件在每台计算机中都以完全相同的路径存在(最好使用fullpath),或者从hdfs获取该文件

UDF使用了一些外部资源文件,然后出现错误: “java.io.FileNotFoundException:resource/placeMap.txt(没有这样的文件或目录)”,
这个函数在本机上正确运行,为什么在hive上错误,我如何解决它?多谢各位

hive的基本功能是将查询转换为hadoop map reduce作业。因此,它们在具有任务跟踪器的机器上执行。因此,如果您使用的是外部源,则需要确保该文件在每台计算机中都以完全相同的路径存在(最好使用fullpath),或者从hdfs获取该文件,然后从hdfs加载源文件。(我更喜欢使用hdfs,这样更安全)

看看。您要做的是
添加文件
,以便可以将
添加到分布式缓存中


它可以像在可执行文件/jar的同一路径中一样访问,因此也可以检查您的相关路径。

我相信hive有一个add resource命令,它应该有助于外部文件的分发。我没有用过。