首页 \ 问答 \ Hive MapReduce作业提交失败“目标是一个目录”(Hive MapReduce Job Submission fails “Target is a directory”)

Hive MapReduce作业提交失败“目标是一个目录”(Hive MapReduce Job Submission fails “Target is a directory”)

我一直在玩Hadoop和它的姐妹项目,我一路上遇到了一些问题,但我终于遇到一个我找不到答案的问题:

我有一个存储在hdfs上的配置单元表作为制表符分隔的文本文件。 我可以在表上做一个基本的选择,但是一旦我使查询变得更复杂,hive就会把它变成一个map reduce工作,它会因为下面的堆栈跟踪而失败

13/11/29 08:31:00 ERROR security.UserGroupInformation:PriviledgedActionException as:hduser(auth:SIMPLE)cause:java.io.IOException:Target / tmp / hadoop- >> yarn / staging / hduser / .staging / job_1385633903169_0013 / libjars / lib / lib是一个目录13/11/29 08:31:00 ERROR security.UserGroupInformation:PriviledgedActionException as:hduser(auth:SIMPLE)cause:java.io.IOException:Target / tmp / hadoop-yarn / staging /hduser/.staging/job_1385633903169_0013/libjars/lib/lib是一个目录java.io.IOException:目标/tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib是org中的目录。位于org.apache.hadoop.fs.FileUtil.copy(FileUtil。)的org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:502)中的apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:500)。 java:348)org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289)atg.apache.hadoop.mapreduce org.apache.hadoop.mapr中的.JobSubmitter.copyRemoteFiles(JobSubmitter.java:139) 位于org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:300)的ordu.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:387)中的educe.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:212) at org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1268)at org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1265)at java.security.AccessController.doPrivileged(Native方法)在org.apache.hadoop.mapreduce.Job.submit的org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)的javax.security.auth.Subject.doAs(Subject.java:415) (Job.java:1265)org.apache.hadoop.mapred.JobClient $ 1.run(JobClient.java:562)at java的org.apache.hadoop.mapred.JobClient $ 1.run(JobClient.java:557)。位于org.apache的org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)的javax.security.auth.Subject.doAs(Subject.java:415)上的security.AccessController.doPrivileged(Native Method)。 hadoop.mapred.JobClient.submitJobInternal (JobClient.java:557)org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548)org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:425) )org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:144)at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151)at atg Org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65)位于org.apache.hadoop的org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414)。 hive.ql.Driver.execute(Driver.java:1192)atg.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020)org.apache.hadoop.hive.ql.Driver.run( Driver.java:888)org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259)org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216)at org位于org.apache.hadoop.hive.cli的org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:781)上的.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413) .CliDriver.run(CliDriver.java:675)at或 g.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun。在org.apache.hadoop.util.RunJar.main(RunJar.java:212)的java.lang.reflect.Method.invoke(Method.java:606)中反映.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)作业提交失败,异常'java.io.IOException(目标/tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib是一个目录)'13/11/29 08:31:00 ERROR exec。任务:作业提交失败,异常为'java.io.IOException(目标/tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib是目录)'java.io.IOException:Target / tmp /hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib是org.apache.hadoop.fs上的org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:500)中的目录。 FileUtil.checkDest(FileUtil.java :502)org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:348)org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)org.apache.hadoop.fs。 FileUtil.copy(FileUtil.java:289)org.apache.hadoop.mapreduce.JobSubmitter.copyRemoteFiles(JobSubmitter.java:139)org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:212)at org位于org.apache.hadoop.mapreduce.Job $ 10.run的org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:387)中的.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:300) Job.java:1268)atg.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1265)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject .java:415)org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)org.apache.hadoop.mapreduce.Job.submit(Job.java:1265)atg.apache.hadoop。 mapred.JobClient $ 1.run(JobClient.java:562)at org.apache.hadoop.mapred.JobClient $ 1.run(JobClient.java:557)位于org.apache.hadoop.security.UserGroupInformation的javax.security.auth.Subject.doAs(Subject.java:415)的java.security.AccessController.doPrivileged(Native Method)。在org.apache的org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557)org.apache的org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548)上的doAs(UserGroupInformation.java:1491) org.apache上的org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:144)中的.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:425) .hadoop.hive.ql.exec.Task.executeTask(Task.java:151)org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65)org.apache.hadoop.hive位于org.apache.hadoop.hive.ql.Driver.runInternal(驱动程序)的org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192)的.ql.Driver.launchTask(Driver.java:1414) .java:1020)org.apache.hadoop.hive.ql.Driver.run(Driver.java:888)org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259)a t org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216)org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413)org.apache.hadoop.hive .cli.CliDriver.executeDriver(CliDriver.java:781)org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)org.apache.hadoop.hive.cli.CliDriver.main(CliDriver) .java:614)在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java。 org.apache.hadoop.util.RunJar.main中的lang.reflect.Method.invoke(Method.java:606)(RunJar.java:212)

有问题的文件夹确实存在于dfs上,至少是“/ tmp / hadoop-yarn / staging”部分,无论我设置它的权限,hive或hadoop在作业提交时重置它们。 真正令人关注的部分是完整路径似乎是生成的文件夹名称,那么为什么软件有自己生成的东西有问题? 为什么路径是目录的问题? 那应该是什么呢?

编辑:这是我正在使用的表和我正在尝试运行的查询:查询: select * from hive_flow_details where node_id = 100 limit 10;

表:

col_name data_type comment id bigint无
flow_versions_id int无
node_id int无
node_name字符串无

请记住,这种情况发生在我试图拥有任何类型的where子句的任何uery上,因为hive会将其转换为MR作业。


I've been playing around with Hadoop and it's sister projects, and I've had a few problems along the way, but I've finally hit one that I can not find an answer to:

I have a hive table stored on hdfs as a tab-delimited text file. And I can do a basic select on the table, but as soon as I make the query a little more complicated, hive turns it into a map reduce job which fails with the following stack trace

13/11/29 08:31:00 ERROR security.UserGroupInformation: PriviledgedActionException as:hduser (auth:SIMPLE) cause:java.io.IOException: Target /tmp/hadoop-> > yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib is a directory 13/11/29 08:31:00 ERROR security.UserGroupInformation: PriviledgedActionException as:hduser (auth:SIMPLE) cause:java.io.IOException: Target /tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib is a directory java.io.IOException: Target /tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib is a directory at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:500) at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:502) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:348) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289) at org.apache.hadoop.mapreduce.JobSubmitter.copyRemoteFiles(JobSubmitter.java:139) at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:212) at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:300) at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:387) at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1268) at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1265) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) at org.apache.hadoop.mapreduce.Job.submit(Job.java:1265) at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:562) at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:557) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557) at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:425) at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:144) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:781) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.main(RunJar.java:212) Job Submission failed with exception 'java.io.IOException(Target /tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib is a directory)' 13/11/29 08:31:00 ERROR exec.Task: Job Submission failed with exception 'java.io.IOException(Target /tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib is a directory)' java.io.IOException: Target /tmp/hadoop-yarn/staging/hduser/.staging/job_1385633903169_0013/libjars/lib/lib is a directory at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:500) at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:502) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:348) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338) at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289) at org.apache.hadoop.mapreduce.JobSubmitter.copyRemoteFiles(JobSubmitter.java:139) at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:212) at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:300) at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:387) at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1268) at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1265) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) at org.apache.hadoop.mapreduce.Job.submit(Job.java:1265) at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:562) at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:557) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:557) at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:548) at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:425) at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:144) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:781) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:614) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

The folder in question does exist on the dfs, at least the "/tmp/hadoop-yarn/staging" part, and no matter what I set it's permissions to, hive or hadoop resets them on a job submission. The really concerning part is that the full path appears to be a generated folder name, so why does the software have a problem with something that it has generated on its own? Why is it a problem that the path is a directory? And what should it rather be?

Edit: Here is the table I'm working with and the query I'm trying to run: Query: select * from hive_flow_details where node_id = 100 limit 10;

Table:

col_name data_type comment id bigint None
flow_versions_id int None
node_id int None
node_name string None

Bear in mind, this happens to any uery that I attempt that has any kind of a where clause, as hive translates that into an MR job.


原文:https://stackoverflow.com/questions/20279809
更新时间:2021-08-26 15:08

最满意答案

看起来您运行了2个MYSQL服务器。

当您安装MYSQL Workbench时,它还安装了另一个MYSQL服务器。 两者都使用端口3306.一个MySQL服务器实例对任何人都足够了。

Workbench附带的MYSQL服务器设置为在启动时自动启动,但WAMPServer仅在启动WAMPServer时启动MYSQL Server。 所以在WAMPServer中的那个人说是其他人抓住了端口3306,我无法启动。

您只需要一个MYSQL服务器来运行100个数据库,因此我建议您卸载WorkBench附带的MYSQL服务器。

完全卸载WorkBench可能更容易。 然后重新安装它,但没有它附带的MYSQL Server实例。


It looks like you have 2 MYSQL Servers running.

When you installed MYSQL Workbench it has also installed another MYSQL Server. Both a re using port 3306. One MySQL Server instance is enough for anybody.

The MYSQL Server that came with Workbench is set to Automatically start on boot but WAMPServer only starts MYSQL Server when you start WAMPServer. So the one in WAMPServer is saying someone else has grabbed port 3306, I cannot start.

You only need one MYSQL Server to run 100's of databases, so I suggest you uninstall the MYSQL Server that came with WorkBench.

It may be easier to uninstall WorkBench completely. And then reinstall it, but without the MYSQL Server instance that comes with it.

相关问答

更多

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)