分享

sqoop2 1.99.7 job执行报错 hdfs失败的输入输出目录,求大神指点。。。。

dsy198816 发表于 2017-4-5 16:51:58 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 9 22261
启动时候的错误:
sqoop:000> start job --name FirstJob
Exception has occurred during processing command
Exception: org.apache.sqoop.common.SqoopException Message: GENERIC_HDFS_CONNECTOR_0007:Invalid input/output directory - Unexpected exception

任务信息:

sqoop:000> show job -all
1 job(s) to show:
Job with name FirstJob (Enabled: true, Created by hadoop at 17-4-5 下午4:08, Updated by hadoop at 17-4-5 下午4:08)
  Throttling resources
    Extractors:
    Loaders:
  Classpath configuration
    Extra mapper jars:
From link: HDFS
  Input configuration
    Input directory: /toMysql
    Override null value:
    Null value:
  Incremental import
    Incremental type: NONE
    Last imported date:
To link: MYSQL
  Database target
    Schema name: test
    Table name: people
    Column names:
    Staging table:
    Clear stage table:


我的hdfs输入目录也没有任何问题啊:
[hadoop@namenode @LOGDIR@]$ hadoop fs -ls /toMysql/people.csv
-rw-r--r--   2 hadoop supergroup         52 2017-04-05 09:32 /toMysql/people.csv


下面是错误日志:
2017-04-05 16:34:17,172 ERROR [org.apache.sqoop.server.SqoopProtocolServlet.doPut(SqoopProtocolServlet.java:86)] Exception in PUT http://localhost:12000/sqoop/v1/job/FirstJob/start
org.apache.sqoop.common.SqoopException: GENERIC_HDFS_CONNECTOR_0007:Invalid input/output directory - Unexpected exception
        at org.apache.sqoop.connector.hdfs.HdfsFromInitializer.initialize(HdfsFromInitializer.java:99)
        at org.apache.sqoop.connector.hdfs.HdfsFromInitializer.initialize(HdfsFromInitializer.java:38)
        at org.apache.sqoop.driver.JobManager$1.call(JobManager.java:520)
        at org.apache.sqoop.driver.JobManager$1.call(JobManager.java:517)
        at org.apache.sqoop.utils.ClassUtils.executeWithClassLoader(ClassUtils.java:281)
        at org.apache.sqoop.driver.JobManager.initializeConnector(JobManager.java:516)
        at org.apache.sqoop.driver.JobManager.createJobRequest(JobManager.java:423)
        at org.apache.sqoop.driver.JobManager.start(JobManager.java:317)
        at org.apache.sqoop.handler.JobRequestHandler.startJob(JobRequestHandler.java:353)
        at org.apache.sqoop.handler.JobRequestHandler.handleEvent(JobRequestHandler.java:114)
        at org.apache.sqoop.server.v1.JobServlet.handlePutRequest(JobServlet.java:84)
        at org.apache.sqoop.server.SqoopProtocolServlet.doPut(SqoopProtocolServlet.java:81)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
        at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:572)
        at org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticationFilter.doFilter(DelegationTokenAuthenticationFilter.java:269)
        at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:542)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
        at org.eclipse.jetty.server.Server.handle(Server.java:499)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate hadoop
        at org.apache.hadoop.ipc.Client.call(Client.java:1468)
                                                                                                            

已有(9)人评论

跳转到指定楼层
SuperDove 发表于 2017-4-5 17:29:28
tanxl 发表于 2017-4-5 17:16
刚也在学sqoop2 页运行job遇到这个问题 我是把link中的mysql的password填错了,现在不知道怎么修改link

update link --lid 1 对应的link编号
回复

使用道具 举报

tanxl 发表于 2017-4-5 17:16:50
刚也在学sqoop2 页运行job遇到这个问题 我是把link中的mysql的password填错了,现在不知道怎么修改link
回复

使用道具 举报

desehawk 发表于 2017-4-5 17:38:12
在$HADOOP_HOME/etc/hadoop/core-site.xml 检查默认端口为 9000,重新修改连到HDFS的Link配置,重新执行job
回复

使用道具 举报

tanxl 发表于 2017-4-5 18:56:48
我和你遇到一样的问题:解决如下
安装配置参考的:http://www.cnblogs.com/duking1991/p/6081118.html
hadoop的用户代理机制:http://blog.csdn.net/u012948976/article/details/49904675
我配置的代理访问:
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>

回复

使用道具 举报

tanxl 发表于 2017-4-5 19:05:24

安装配置:http://www.cnblogs.com/duking1991/p/6081118.html

<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>

简单使用:http://blog.csdn.net/m_signals/article/details/53190965

这样做的没问题,今天刚做过一遍。

回复

使用道具 举报

恋枫缩影 发表于 2017-4-6 00:48:54
hdfs输入的路径选一个空的或者找一个新的
回复

使用道具 举报

恋枫缩影 发表于 2017-4-6 00:52:56
5楼6楼正解,把代理
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>
主要就是用户设置问题,我犯错误时候配的好像是$SERVER_USER,这样是有问题的直接改成登录的用户就行了
回复

使用道具 举报

dsy198816 发表于 2017-4-6 17:53:18
<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.hadoop.groups</name>
  <value>*</value>
</property>
回复

使用道具 举报

dsy198816 发表于 2017-4-6 17:55:13
解决啦感谢各位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条