【发布时间】:2015-08-19 00:53:10
【问题描述】:
我有十几个 Web 服务器,每个服务器都将数据写入日志文件。每小时开始时,使用运行命令的 cron 脚本将前一小时的数据加载到 hive:
hive -e "LOAD DATA LOCAL INPATH 'myfile.log' INTO TABLE my_table PARTITION(dt='2015-08-17-05')"
在某些情况下,命令会失败并以非 0 的代码退出,在这种情况下,我们的脚本会等待并重试。问题是,在某些失败的情况下,数据加载不会失败,即使它显示了失败消息。如何确定数据是否已加载?
加载数据的“失败”示例:
加载数据到表 default.my_table 分区 (dt=2015-08-17-05) 异常失败 org.apache.hadoop.hive.ql.metadata.HiveException:无法更改 分割。失败:执行错误,返回代码 1 从 org.apache.hadoop.hive.ql.exec.MoveTask
编辑:
或者,有没有办法查询 hive 中加载的文件名?我可以使用DESCRIBE 查看文件数量。我能知道他们的名字吗?
【问题讨论】: