Bootstrap

83.Hive Load本地数据文件异常解决

83.1 问题情况

  • beeline登录HiveServer2向my_table表Load本地数据文件时报如下异常:
    • 命令:
LOAD DATA INPATH '/data/a.txt' OVERWRITE INTO TABLE my_table;

问题信息如下:

Error: Error while compiling statement: FAILED: SemanticException Line 1:23 Invalid path ''/data/a.txt'': No files matching path file:/data/a.txt (state=42000,code=40000)

83.2 解决方法

在HiveServer2服务所在的ip-186-31-5-190.fayson.com服务器/data目录下创建a.txt数据文件

[root@ip-186-31-5-190 ~]# mkdir /data
[root@ip-186-31-5-190 ~]# vim /data/a.txt
1,test
2,fayson
3,zhangsan

在cdh04服务器上使用beeline连接ip-186-31-5-190.fayson.com的HiveServer2服务,执行Load命令

[root@cdh04 ~]# beeline
beeline> !connect jdbc:hive2://ip-186-31-5-190.fayson.com:10000/
...
0: jdbc:hive2://ip-186-31-5-190.fayson.com:10> LOAD DATA LOCAL INPATH '/data/a.txt' OVERWRITE INTO TABLE my_table;
No rows affected (1.042 seconds)
0: jdbc:hive2://ip-186-31-5-190.fayson.com:10> select * from my_table;
+---------------+-----------------+--+
| my_table.key  | my_table.value  |
+---------------+-----------------+--+
| 1             | test            |
| 2             | fayson          |
| 3             | zhangsan        |
+---------------+-----------------+--+
3 rows selected (0.389 seconds)
0: jdbc:hive2://ip-186-31-5-190.fayson.com:10>

总结

  • Hive使用LOAD LOCAL DATA时,数据文件必须与HiveServer2服务在同一个节点,否则会报“Invalid path ‘/path’:No files matching path file”异常
  • 可以使用LOAD DATA方式加载HDFS上的数据,就不会有这样的限制

大数据视频推荐:
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

;