export PATH=$HADOOP_HOME/bin:$PATH
接下来需要修改hadoop/conf/目录下的配置文件,共有6个文件需要修改,分别是masters、slaves、core-site.xml、mapred-site.xml、hdfs-site.xml、hadoop-env.sh,修改如下
文件masters
UB01
文件slaves
UB02
UB03
文件core-site.xml
hadoop.tmp.dir
/home/vbox/tmp
As you like
fs.default.name
hdfs://UB01:9000
文件mapred-site.xml
mapred.job.tracker
UB01:9001
文件hdfs-site.xml
dfs.replication
1
文件hadoop-env.sh在末尾添加
export JAVA_HOME=/home/vbox/jdk1.6.0_25
说明几个地方,以上几个文件中具体的版本号、路径与ip地址要根据各自虚拟机信息区别配置,不要把我的ip抄到你的文件里,没用的。注意hdfs-site.xml中设定为1的value是最小节点数,之前为3,会出现2个slave运行不能的情况,以上配置信息对UB01、UB02和UB03完全一致。
执行wordcount例程
进入/home/vbox/hadoop/目录,格式化文件系统并启动所有服务
hadoop namenode -format;
start-all.sh
编写输入文件,建立input输入并将文件写入input
echo “It is such a boring thing” > input_test_01;
echo “But I like it” > input_test_02;
hadoop fs -mkdir input;
hadoop fs -copyFormatLocal input_test_0* input;
执行wordcount并察看计数结果
hadoop jar hadoop-0.20.2-examples.jar wordcount input output;
hadoop fs -cat output/part-r-00000;
会在Terminal中看到如下wordcount信息
5 1
Damn! 1
NAT 1
...
注意,在第一次执行wordcount后,input和output文件依旧存在,若再次执行wordcount会出现无法响应的错误,需要通过以下的命令删除input与output,系统才会正常工作。使用xxxxxx命令关闭防火墙。
hadoop dfs -rmr input output
观察运行结果,有三种方式
通过web方式 http://UB01:50070
通过java方式Terminal输入jps
监测HDFS方式 Terminal输入hadoop dfsadmin -report
过程截图
略
常用hadoop命令
hadoop namenode -format 格式化节点
start-all.sh 开启所有服务
hadoop dfsadmin -report 察看报告
hadoop fs -mkdire input 新建输入目录
hadoop fs -ls/ 列出文件系统
hadoopfs -put conf input 将conf目录put到input目录
hadoop fs -rmr output 删除output目录
hadoop jar hadoop-0.20.2-examples.jar wordcount input output 运行wordcount
hadoop fs -get ouput /home/output 拷贝到本地
home/cat otuput/* 显示
hadoop fs -copyToLocal input /home/vbox 拷贝,同fs -get
Some tips
Q:datanode个数为0或者小于预设值
A:删除各个/home/vbox/tmp文件夹
Q:将各个节点的id_rsa.pub相互追加后无法实现ssh无密码互访
A:先搞二个互访,再一个一个加上去
Q:3台Ubuntu 11.04的虚拟机慢死了
A:换成10.04