hvie加载load本地数据失败分析记录
hive load本地数据由于用户问题找不到文件
1. 问题背景
使用cloudera-cdh5平台下的hive命令行
登录centos的普通用户为xhwl,在~目录下创建了一个文件:waning_case_info
hive中数据库与表均已创建:masi_warning_case.warning_type_info
sudosu进入root用户
s
u
d
o
s
u
进
入
r
o
o
t
用
户
su hdfs
进入hdfs用户
$ hive
进入hive
2. 出错
hive>load data local inpath '/home/xhwl/warning_type_info' into table masi_warning_case.warning_type_info;
FAILED: SemanticException Line 1:23 Invalid path ''/home/xhwl/warning_type_info'': No files matching path file:/home/xhwl/warning_type_info
3. 出错分析
根据上述提示得知:找不到文件
实际上文件是存在的,那为什么找不到?因为文件waning_case_info不是hdfs用户创建的,hdfs访问不到,最终导致load数据到hive表出错
4. 解决
使用xhwl这个普通用户进入hive,执行load数据操作load data local inpath ‘/home/xhwl/warning_type_info’ into table masi_warning_case.warning_type_info;即可
或者使用sudo chown hdfs:hdfs warning_type_info
将这个文件的属主和属组改成hdfs用户,也可以使用hdfs用户进入hive成功load该数据。