2014-10-16
在http://www.carfab.com/apachesoftware/hadoop/common/stable2/下找了个稳定的hadoop2.4.1下载了。
我使用的操作系统:linux mint 16, 64位。
配置java和ssh
设置JAVA_HOME等,并配置ssh,使得执行下面的命令不需要确认和输入密码:
具体可以参考这篇文章 Hadoop1.2配置伪分布式
配置环境变量
将下载的hadoop-2.4.1移动到/home/letian/hadoop-2.4.1
中。在/home/letian/hadoop-env
建立目录2.4.1
,并在这个目录下建立目录namenode
和datanode
。
在/etc/profile
或者~/.zshrc
下添加下面的内容:
然后:
在/etc/sysctl.conf
中加入下面内容:
之后,重启网络:
如果重启失败,那么重启一下电脑吧。
修改hadoop配置文件
hadoop-2.4.1/etc/hadoop/hdfs-site.xml :
hadoop-2.4.1/etc/hadoop/core-site.xml:
hadoop-2.4.1/etc/hadoop/yarn-site.xml:
hadoop-2.4.1/etc/hadoop/mapred-site.xml.template : 首先:
然后编辑hadoop-2.4.1/etc/hadoop/mapred-site.xml
:
格式化hdfs
下面的命令已经废弃,不建议使用。
建议使用:
启动
然后:
查看运行的任务:
查看NameNode的状态,在浏览器中访问http://localhost:50070/
。
查看SecondaryNameNode的状态,在浏览器中访问http://localhost:50090/
。
查看正在运行的mapreduce任务,在浏览器中访问http://localhost:8088
。
可以通过下面的命令查看启动状态:
测试wordcount
假设目录input
下文件test1.txt
内容如下:
文件test2.txt
内容如下:
将该目录复制到hdfs下的/data
目录下:
进入目录hadoop-2.4.1
,运行:
删除hdfs下的/data
目录:
查看结果:
删除/data
和/output
目录:
遇到的问题
1、找不到JAVA_HOME
说是找不到java_home,没办法,明明已经设置了。 在hadoop-2.4.0/etc/hadoop/hadoop-env.sh
中设置即可。
2、Unable to load native-hadoop library for your platform
出现了一个WARN
,原因可见:http://stackoverflow.com/questions/19943766/hadoop-unable-to-load-native-hadoop-library-for-your-platform-error-on-centos。
3、SSH 拒绝连接
我这边是重启电脑后就没问题了。
4、无法访问http://localhost:50070/
5、jps的结果没有Datanode 清空namenode、datanode对应的目录,然后重启hadoop试一试。
参考
Hadoop MapReduce Next Generation - Setting up a Single Node Cluster.
Steps To Setup Hadoop 2.4.0 (Single Node Cluster) on CentOS/RHEL
Installing Hadoop 2.4 on Ubuntu 14.04
adoop 2.4 Installing on Ubuntu 14.04 (Single-Node Cluster) - 2014