要想真正发挥hadoop的威力,必须将hadoop在集群上部署,下面介绍hadoop集群的部署。hadoop的集群部署是建立在伪集群安装的基础上,现假设有三台机器,一台master,两台slave,分别为slave1和slave2(其实两台机器也可以实现集群,其中一台机器同时扮演master和slave的角色)。
1.首先分别在三台机器上安装好hadoop,使hadoop可以运行伪集群(参照我的文章一步一步学习hadoop(一) )128.0.0.1 master2'修改三台机器的/etc/hostname文件,该文件一般只有一行。(如果不修改运行hadoop作业是可能会出错,报Too much fetch failure错误)
128.0.0.2 slave1
128.0.0.3 slave2
ssh-copy-id -i ~/.ssh/id_rsa.pub hduser@slave1完成后使用ssh命令测试一下,看是不是已经可以访问了
ssh-copy-id -i ~/.ssh/id_rsa.pub hduser@slave2
master将slaves的内容修改为
slave1解释一下这两个文件的作用,其实这两个文件是为了简化启动集群的工作量的,不要被它的名字误导了,其实NameNode和JobTracker总是你运行
slave2
<?xml version="1.0"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
</property>
<property>
<name>fs.tmp.dir</name>
<value>/usr/local/app/hadoop/tmp</value>
</property>
</configuration>
<?xml version="1.0"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>
<?xml version="1.0"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
hadoop namenode -format
start-dfs通过jps命令看是否已经启动成功
start-mapred
hadoop fs -put /usr/local/hadoop/conf /input2'运行hadoop作业
hadoop jar /usr/local/hadoop/hadoop-examples-1.0.4.jar WordCount /input /output运行成功表示安装OK了
stop-mapred
stop-dfs