使用简单的hiveql查询,如下所示:
SELECT event_type FROM {{table}} where dt=20140103 limit 10;
这个 {{table}}
零件只是通过运行程序代码im通过jinja2插入的。我正在使用 -e
在配置单元命令行上使用 subprocess.Popen
来自python。
由于某些原因,此安装程序正在尝试写入常规 /user
hdfs中的目录?执行命令无效。产生的误差如下:
Job Submission failed with exception:
org.apache.hadoop.security.AccessControlException(Permission denied:user=username, access=WRITE, inode="/user":hdfs:hadoop:drwxrwxr-x\n\tat org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:234)
为什么Hive会试图写信给 /users
? 另外,为什么像这样的select语句需要一个输出位置?
1条答案
按热度按时间2wnc66cl1#
hive是mapreduce的sql前端,因此需要编译和暂存java代码以供执行。它不是试图把输出放在那里,而是它将执行的程序。根据您的hadoop版本,这由以下变量控制:
在yarn/hadoop 2上:
这些设置在mapred-site.xml中。
您的运行程序需要通过集群的身份验证,并且有一个可以使用的可写目录。