hdfs写入导致“createsymboliclink错误(1314):客户端没有持有所需的权限”

zbsbpyhn  于 2021-05-30  发布在  Hadoop
关注(0)|答案(7)|浏览(627)

尝试从ApacheHadoop执行示例MapReduce程序。运行map reduce作业时出现以下异常。尝试 hdfs dfs -chmod 777 / 但这并没有解决问题。

15/03/10 13:13:10 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with
ToolRunner to remedy this.
15/03/10 13:13:10 WARN mapreduce.JobSubmitter: No job jar file set.  User classes may not be found. See Job or Job#setJar(String).
15/03/10 13:13:10 INFO input.FileInputFormat: Total input paths to process : 2
15/03/10 13:13:11 INFO mapreduce.JobSubmitter: number of splits:2
15/03/10 13:13:11 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1425973278169_0001
15/03/10 13:13:12 INFO mapred.YARNRunner: Job jar is not present. Not adding any jar to the list of resources.
15/03/10 13:13:12 INFO impl.YarnClientImpl: Submitted application application_1425973278169_0001
15/03/10 13:13:12 INFO mapreduce.Job: The url to track the job: http://B2ML10803:8088/proxy/application_1425973278169_0001/
15/03/10 13:13:12 INFO mapreduce.Job: Running job: job_1425973278169_0001
15/03/10 13:13:18 INFO mapreduce.Job: Job job_1425973278169_0001 running in uber mode : false
15/03/10 13:13:18 INFO mapreduce.Job:  map 0% reduce 0%
15/03/10 13:13:18 INFO mapreduce.Job: Job job_1425973278169_0001 failed with state FAILED due to: Application application_1425973278169_0001 failed 2 times due
to AM Container for appattempt_1425973278169_0001_000002 exited with  exitCode: 1
For more detailed output, check application tracking page:http://B2ML10803:8088/proxy/application_1425973278169_0001/Then, click on links to logs of each attemp
t.
Diagnostics: Exception from container-launch.
Container id: container_1425973278169_0001_02_000001
Exit code: 1
Exception message: CreateSymbolicLink error (1314): A required privilege is not held by the client.

堆栈跟踪:

ExitCodeException exitCode=1: CreateSymbolicLink error (1314): A required privilege is not held by the client.

    at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
    at org.apache.hadoop.util.Shell.run(Shell.java:455)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    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)

外壳输出:

1 file(s) moved.

Container exited with a non-zero exit code 1
Failing this attempt. Failing the application.
15/03/10 13:13:18 INFO mapreduce.Job: Counters: 0
hs1ihplo

hs1ihplo1#

我遇到了和你一样的问题。我们通过检查java环境解决了这个问题。
检查 java version 以及 javac version .
确保集群中的每台计算机都具有相同的java环境。

o7jaxewo

o7jaxewo2#

我不知道错误的原因,但是重新格式化namenode可以帮助我在windows8中解决这个问题。
删除所有旧日志。清理文件夹c:\hadoop\logs和c:\hadoop\logs\userlogs
清理文件夹c:\hadoop\data\dfs\datanode和c:\hadoop\data\dfs\namenode。
在管理员模式下使用调用命令重新格式化namenode: c:\hadoop\bin>hdfs namenode -format

webghufk

webghufk3#

win 8.1+hadoop 2.7.0(源代码构建)
在管理模式下运行命令提示符
执行etc\hadoop\hadoop-env.cmd
运行sbin\start-dfs.cmd
运行sbin\start-yarn.cmd
现在试着执行你的任务

r6vfmomb

r6vfmomb4#

我最近遇到了完全相同的问题。我试图重新格式化namenode,但它不工作,我相信这不能永久解决问题。通过@aoetalks的引用,我在WindowsServer2012 r2上通过查看本地组策略解决了这个问题。
总之,请尝试以下步骤:
打开本地组策略(按 Win+R 要打开“运行…”-键入 gpedit.msc )
展开“计算机配置”-“windows设置”-“安全设置”-“本地策略”-“用户权限分配”
在右边找到“createsymboliclinks”,看看是否包含您的用户。如果没有,请将您的用户添加到其中。
这将在下次登录后生效,因此请注销并登录。
如果这仍然不起作用,可能是因为您使用的是管理员帐户。在这种情况下,你必须禁用 User Account Control: Run all administrators in Admin Approval Mode 在同一目录中(即组策略中的用户权限分配),然后重新启动计算机使其生效。
参考文献:https://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7

hxzsmxv2

hxzsmxv25#

请参阅此以获取解决方案,并参阅此以获取解释。基本上,符号链接可能存在安全风险,uac的设计会阻止用户(甚至是属于administrators组的用户)创建符号链接,除非他们在提升模式下运行。
长话短说,请尝试重新格式化名称节点,并从提升的命令提示符启动hadoop和所有hadoop作业。

enyaitl3

enyaitl36#

我解决了同样的问题。运行“命令提示符”时,让我们“以管理员身份运行”。

x3naxklr

x3naxklr7#

在windows中,将hdfs-site.xml中的配置更改为

<configuration>
   <property>
       <name>dfs.replication</name>
       <value>1</value>
   </property>
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:///C:/hadoop-2.7.2/data/namenode</value>
   </property>
   <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:///C:/hadoop-2.7.2/data/datanode</value>
   </property>
</configuration>

在管理模式下打开cmd并运行command:-
stop-all.cmd命令
hdfs namenode–格式
全部启动.cmd
然后在管理模式下运行最后一个jar hadoop jar c:\hadoop\u demo\wordcount\target\wordcount-0.0.1-snapshot.jar文件:///c:/hadoop/input.txt文件:///c:/hadoop/output

相关问题