建立学习用小型Hadoop集群

系统安装完毕进行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错误。

推荐阅读文章

大数据工程师在阿里面试流程是什么?

学习大数据需要具备怎么样基础?

年薪30K的大数据开发工程师的工作经验总结?

建立学习用小型Hadoop集群