Question One:运行没有显示日志信息
解决方法:在hadoop的安装目录下的share目录下搜索log4j.properties(注意有两个log4j.properties,选择小的那个),把它放入工程的src下,即可。
如图:
Question Two: Exception in thread "main" org.apache.hadoop.security. AccessControlException: Permission denied: user=Administrator, access=EXECUTE, inode="/tmp/hadoop-yarn/staging/Administrator/. staging":michael:supergroup:drwxrwx---
解决方法:有以下几种解决方案
1、把用户名改成和集群中用户名一致-----更改用户名
2、在环境变量里面加上HADOOP_USER_NAME值是集群中用户名(需要重启)
3、右键-》run as -》run Configurations -》选中要运行的工程 -》 第二个选项卡Arguments -》 VM arguments下加上-DHADOOP_USER_NAME=你的集群上的用户名
4、去掉权限验证
hdfs-site.xml下加入下面配置<property> <name>dfs.permissions.enabled</name> <value>false</value> <description> If "true", enable permission checking in HDFS. If "false", permission checking is turned off, but all other behavior is unchanged. Switching from one parameter value to the other does not change the mode, owner or group of files or directories. </description> </property>
Question Tree:warn Unable to load native-hadoop library for your platform(控制台中出现这个警告)
解决方法:
首先下载hadoop.dll,将hadoop.dll加入C盘下windows---system32--再次运行程序,不会出现该警告
为了避免不必要的错误,希望可以在windows下配置HADOOP_HOME和PATH
Question Four:0.0.0.0:10020连接不上
解决方法:
修改mapred-site.xml配置文件mapreduce.jobhistory.address修改成当前主节点主机名: <property> <name>mapreduce.jobhistory.address</name> <value>当前主节点主机名</value> <description>MapReduce JobHistory Server IPC host:port</description> </property>
启动历史服务
mr-jobhistory-daemon.sh start historyserver
Question Five:null\bin\winutil.exe
解决方法:
设置环境变量
HADOOP_HOME 设置你的hadoop的安装路径
在path里面加上%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin
Question Six:null chmod 0700
解决方法:
hadoop.dll考到c:/windows/system32/
把hadoop.dll和winutile.exe放到hadoop的bin文件夹里
Question Seven :在本地运行mr任务时,可能部分机器可能只能输入路径为文件,如果想要输入文件夹请使用通配符(*)
解决方法:
d:/wc/{input/*}
HA中namenode有时候起不来,有时候起来一会又消失了。
第一种解决方法:
手动启动各个节点的journalnode
然后在start-dfs.sh
第二种解决方法:
修改配置文件如下:$ vim /home/betty/soft/hadoop/sbin/start-dfs.sh
找journalnode启动部分,复制粘贴到namenode启动之前,删除下面journalnode启动部分,保存退出。