三种模式:
-单机模式
-伪分布式模式
-完全分布式模式
单机模式:
默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助。
以下是官方描述:链接http://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html(中文版的)
下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录。
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
$ cat output/*
配置hadoop环境参照:虚拟机安装hadoop;
别忘了运行前提:安装ssh 、rsync
没安装的运行
sudo
apt-get install ssh
sudo apt-get install rsync
sudo apt-get install rsync
ssh
远程登录
现在确认能否不输入口令就用ssh登录localhost:
$ ssh localhost
如果不输入口令就无法用ssh登陆localhost,执行下面的命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
生成密匙
把公匙加入到authorized_keys
中 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
SSH无密码登录
在配置完环境后;输入hadoop
version 会显示版本号:
接下来运行:单机模式的例子,计算单词
cp HADOOP_HOME/README.TXT ~/input (把文件拷贝到输入文件夹)
output文件夹不要键(有博客先新建,针对(2.7.3版本)但是运行会报错,说已存在文件夹)
对于java程序员来说,这个命令是不是很熟悉的赶脚:
命令输入和官方有些出入:bin/hadoop(官方的;这个在hadoop主目录下调用的写法:即在HADOOP_HOME目录下) 我的 直接调用 hadoop(这个是
因为环境变量;看第一个图的查看版本的命令,执行成功了,表示环境变量配置成功,系统能够找到hadoop
命令;如果在用户主目录调用
bin/hadoop
反而会找不到;) 看第三个,指明运行java包;要带路径、因为java包在目录还是挺深的,系统并不知道在哪里,要么进入到
mapreduce目录下,可以直接写java包名,不然请带上全路劲、或相对路径,让系统知道在哪里
;
看运行结果:
读取结果文件:
如期看到统计结果……………………………………