系统安装完毕进行Hadoop的简单配置:
1. hadoop-env.sh配置JAVA_HOME
2. masters文件指定备用namenode,slaves文件指定tasktracker
3. core-site.xml设置dfs.default.name为hdfs://namenode
4. hdfs-site.xml设置dfs.name.dir和dfs.data.dir目录
5. mapred-site.xml设置mapred.job.tracker为jobtracker机器名/ip,还有mapred.local.dir和mapred.system.dir目录
设置完毕再namenode上start-dfs.sh,在jobtracker上start-mapred.sh,遇到以下问题:datanode连不上namenode,org.apache.hadoop.ipc.Client: Retrying connect to server: namenode:8020。解决办法如下:
1. 关闭Ubuntu防火墙,sudo ufw disable,如果要再开启防火墙,注意允许22端口,ufw allow 22/tcp,参考/etc/ufw/ufw.conf
2. 在namenode上netstat -na | grep 8020,发现只绑定了127.0.0.1,在/etc/hosts里注释本地主机名和127.0.0.1的绑定,只绑定静态ip即可。
如果没进行上述设置,则dfshealth.jsp显示DFS Used 100%,而且Live Nodes为0。试图运行mapreduce也会出现File * could only be replicated to 0 nodes, instead of 1错误。
推荐阅读文章