可以将pig.temp.dir设置为/user/username/tmp/pig吗?

kjthegm6  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(498)

配置单元可以配置为

hive.exec.scratchdir=/user/${user.name}/tmp/hive

我能用Pig做类似的事吗?我尝试过修改pig.properties文件,但似乎没有任何效果。

pig.temp.dir=/user/${user.name}/tmp/pig <- Doesn't work
pig.temp.dir=/user/`whoami`/tmp/pig     <- Doesn't work
pig.temp.dir=/user/${user}/tmp/pig      <- Doesn't work
pig.temp.dir=/user/${username}/tmp/pig  <- Doesn't work

我可以用一个别名替换pig命令,但是我希望在配置文件中包含这个更改。

pig -Dpig.temp.dir=/user/`whoami`/tmp/pig

谢谢!
更新:我们决定在生产系统中使用/tmp/。这是一个问题的原因是因为我们正在运行mapr,它似乎试图将temp目录放到用户目录中,并在hive中成功,但在pig中没有成功。

r1wp621o

r1wp621o1#

不是配置文件解决方案,但您可以将其烘焙到$pig\u home/bin/pig脚本中:

PIG_OPTS="$PIG_OPTS -Dpig.temp.dir=/user/`whoami`/tmp/pig"
pbossiut

pbossiut2#

您还可以在pig脚本中设置pig temp dir,如下所示: set pig.temp.dir /user/foo/tmp/pig; 对于小的输出,我认为使用/tmp目录是可以的,但是对于大的输出,我建议用户写入他们的个人目录。

相关问题