大家好,我在关注http://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm。在使用
运行程序之后hadoop jar units.jar hadoop.ProcessUnits input_dir output_dir
我得到以下错误:
16/09/04 20:32:14警告util。native ecodeloader:无法加载本机hadoop库为您的平台…使用内置java类如适用
16/09/04 20:32:15 INFO Configuration.deprecation: session。Id已弃用。相反,使用dfs.metrics。会话id
16/09/04 20:32:15信息jvm。JvmMetrics:使用processName=JobTracker, sessionId=
初始化JVM Metrics16/09/04 20:32:15信息jvm。JvmMetrics:无法初始化processName=JobTracker, sessionId= - already initialized
16/09/0420:32:15警告mapreduce。JobResourceUploader: Hadoop命令行未执行选项解析。实现工具接口并执行你的应用程序与ToolRunner来弥补这一点。
16/09/04 20:32:15信息mapreduce。JobSubmitter:清理暂存区文件:/app/hadoop/tmp/mapred/staging/hduser932260839/.staging/job_local932260839_0001线程"main"异常ExitCodeException exitCode=1: chmod:不能访问'/app/hadoop/tmp/mapred/临时/hduser932260839/.staging job_local932260839_0001":没有这样的文件或目录
你可以从错误的最后几行看到你正在运行的java程序无法访问文件夹/app/hadoop/...........
解决方案是改变文件夹/app/hadoop的所有权,像这样:
chown USER_NAME /app/hadoop
将"USER_NAME"替换为用户名。它工作得很好!