Hadoop 简单转储函数

Hadoop 简单转储函数,hadoop,apache-pig,Hadoop,Apache Pig,我的输入文件如下。我正在尝试转储有关的已加载数据。我用的是猪0.12 a,t1,1000,100 a,t1,2000,200 b,t2,1000,200 b,t2,5000,100 我通过输入pig进入HDFS模式 myinput = LOAD 'file' AS(a1:chararray,a2:chararray,amt:int,rate:int); 如果我确实转储了我的输入,那么它会显示以下错误 很好地描述、说明作品 所以 我一输入dump命令,就会收到下面的错误消息 ERROR org

我的输入文件如下。我正在尝试转储有关的已加载数据。我用的是猪0.12

a,t1,1000,100
a,t1,2000,200
b,t2,1000,200
b,t2,5000,100
我通过输入pig进入HDFS模式

myinput = LOAD 'file' AS(a1:chararray,a2:chararray,amt:int,rate:int);
如果我确实转储了我的输入,那么它会显示以下错误

很好地描述、说明作品

所以

我一输入dump命令,就会收到下面的错误消息

ERROR org.apache.hadoop.ipc.RPC - FailoverProxy: Failing this Call: submitJob for error   (RemoteException): org.apache.hadoop.ipc.RemoteException:  org.apache.hadoop.security.AccessControlException: User 'myid' cannot perform operation SUBMIT_JOB on queue default.
Please run "hadoop queue -showacls" command to find the queues you have access to .
    at org.apache.hadoop.mapred.ACLsManager.checkAccess(ACLsManager.java:179)
    at org.apache.hadoop.mapred.ACLsManager.checkAccess(ACLsManager.java:136)
    at org.apache.hadoop.mapred.ACLsManager.checkAccess(ACLsManager.java:113)
    at org.apache.hadoop.mapred.JobTracker.submitJob(JobTracker.java:4541)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:993)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1326)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1322)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1320)



ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1066: Unable to open iterator for alias myinput
这是访问问题吗?什么样的特权问题?
有人能帮我吗

您可以描述一下您的输入数据(分隔符),以逗号为例: 请尝试此代码:

myinput = LOAD 'file'  USING PigStorage(',') AS (a1:chararray,a2:chararray,amt:int,rate:int);

如果您没有提到任何
加载函数,比如PigStorage('\t')
,那么默认情况下,它会使用列分隔符作为选项卡(\t)读取数据

在数据中,列分隔符是逗号(,)

试试这个

myinput = LOAD 'file' using PigStorage(',') AS(a1:chararray,a2:chararray,amt:int,rate:int);

希望它能工作。

您能描述一下您的设置吗?这似乎是与hadoop queue.MY_queue=demo有关的问题,我刚刚尝试使用Pig-DMapred.local.job.queue.name=demo..然后它成功了。。。是..这是队列问题..请尝试%hadoop queue-showacls,它应该显示允许提交的队列。对于在查找此帖子时发现此帖子的人,请参阅。
myinput = LOAD 'file' using PigStorage(',') AS(a1:chararray,a2:chararray,amt:int,rate:int);