如何将数据本地inpath加载到远程hiveserver

0vvn1miw  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(410)

我想使用“load data local inpath..”在本地计算机上导入文件
但是,我不能导入

$ beeline -u jdbc:hive2://example:10000 -e "LOAD DATA LOCAL INPATH 'tmp/file_20161024.dat' OVERWRITE INTO TABLE some_table PARTITION(dt=20161024);"

Connecting to jdbc:hive2://example:10000
Connected to: Apache Hive (version 2.1.0)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Error: Error while compiling statement: FAILED: SemanticException Line 1:23 Invalid path ''tmp/file_20161024.dat'': No files matching path file:/opt/hive/bin/tmp/file_20161024.dat (state=42000,code=40000)
Closing: 0: jdbc:hive2://example:10000

也许,因为文件在本地机器中,我认为它没有被导入。
如何使用本地文件作为导入文件
我使用直线(1.2.1)。
virtualmachine上有hiveserver(示例)。
谢谢!
更新
我试过以下方法。

beeline -u jdbc:hive2://example:10000 -e "LOAD DATA LOCAL INPATH '/Users/asari/workspace/tmp/file_20161024.dat' OVERWRITE INTO TABLE some_table PARTITION(dt=20161024);" 

Connecting to jdbc:hive2://example:10000
Connected to: Apache Hive (version 2.1.0)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Error: Error while compiling statement: FAILED: SemanticException Line 1:23 Invalid path ''/Users/asari/workspace/tmp/file_20161024.dat'': No files matching path file:/Users/asari/workspace/tmp/file_20161024.dat (state=42000,code=40000)
Closing: 0: jdbc:hive2://example:10000
3gtaxfhh

3gtaxfhh1#

只是猜测,但根据你的描述,我想说你指错地方了。
大概你有一个'正常'本地目录中的文件。在这种情况下,您可能需要像以下两个示例中的一个那样引用它:

/tmp/file_20161024.dat

/home/asari/tmp/file_20161024.dat

注意开始 / 如果您的文件实际位于您现在尝试的位置

/opt/hive/bin/tmp/file_20161024.dat

然后请检查文件是否有任何行,以及访问此文件的权限(如果您不确定需要哪些权限,请将权限完全打开,然后查看这是否有帮助,但请确保将其设置回原来的位置!)

相关问题