【发布时间】:2018-05-10 14:02:23
【问题描述】:
我有一个触发 R 脚本的 Oozie 作业。 R 脚本依次运行 Hive 查询以将单行插入 Hive 表。但问题是当我运行作业时,一条插入语句插入了 4 行。但是,如果我在没有 Oozie 作业的情况下单独运行 Rscript,它可以正常工作,并且只有一行插入到表中。
请注意: Oozie 作业在 Cloudera Hadoop Distribution 上运行。我怀疑问题出在 BigData 环境中,因为处理会在节点之间拆分。 以下是 R 脚本中的代码。
library(RHive)
Sys.setenv("HADOOP_HOME"="/opt/cloudera/parcels/CDH/lib/hadoop")
Sys.setenv("HIVE_HOME"="/opt/cloudera/parcels/CDH/lib/hive")
Sys.setenv("HADOOP_CMD"="/etc/hadoop")
library(rhdfs)
rhive.init()
rhive.connect(host="10.223.99.33", port="10000", defaultFS="hdfs://10.223.69.37:8020")
rhive.execute("insert into table apphalo.errorlogtable values ('2017-08-21 15:00:08','Sampling','3657','3658','1','3','112')
为了缓解该问题,我尝试将行写入 HDFS 中的 csv 文件,然后将 csv 文件加载到 hive 表中。这也返回了相同的结果(即插入 4 行以将单行插入 hive 表)
【问题讨论】: