Hadoop Sqoop导出Oozie工作流失败,未找到文件,从控制台运行时工作

Hadoop Sqoop导出Oozie工作流失败,未找到文件,从控制台运行时工作,hadoop,hive,oozie,sqoop,hue,Hadoop,Hive,Oozie,Sqoop,Hue,我有一个有6个节点的hadoop集群。我从MSSQL中提取数据,然后通过Sqoop返回MSSQL。Sqoop导入命令工作正常,我可以从控制台(在一个hadoop节点上)运行Sqoop导出命令。下面是我运行的shell脚本: SQLHOST=sqlservermaster.local SQLDBNAME=db1 HIVEDBNAME=db1 BATCHID= USERNAME="sqlusername" PASSWORD="password" sqoop export --connect 'j

我有一个有6个节点的hadoop集群。我从MSSQL中提取数据,然后通过Sqoop返回MSSQL。Sqoop导入命令工作正常,我可以从控制台(在一个hadoop节点上)运行Sqoop导出命令。下面是我运行的shell脚本:

SQLHOST=sqlservermaster.local
SQLDBNAME=db1
HIVEDBNAME=db1
BATCHID=
USERNAME="sqlusername"
PASSWORD="password"


sqoop export --connect 'jdbc:sqlserver://'$SQLHOST';username='$USERNAME';password='$PASSWORD';database='$SQLDBNAME'' --table ExportFromHive --columns col1,col2,col3 --export-dir /apps/hive/warehouse/$HIVEDBNAME.db/hivetablename    
当我从oozie工作流运行此命令,并且它传递了相同的参数时,我收到了错误(当从Thread scheduler屏幕挖掘实际作业运行日志时):

有没有人见过这种情况并能够排除故障?它只发生在oozie工作流中。有类似的话题,但似乎没有人解决这个具体问题


谢谢

我可以通过将oozie工作流的job.properties文件中的user.name属性设置为user属性来解决这个问题

user.name=yarn

我认为问题在于它没有在/user/root下创建临时文件的权限。一旦我将正在运行的用户修改为thread,就在/user/thread下创建了staging文件,该文件具有适当的权限

我有完全相同的问题,但这不起作用,它仍然在root的.staging目录下创建作业目录。我正在以“root”的身份运行oozie WF作业,我应该用“Thread”吗?在我的例子中,我以用户root的身份启动作业,但将job.properties文件中的user.name设置为Thread,然后在Thread下创建staging目录并解决了我看到的问题。嗯,如果我从Oozie CLI以“纱线”的形式运行作业,这对我来说是有效的,因为它一直在/user/root/下创建.staging目录。无论如何,谢谢!
user.name=yarn