一步一步学习hadoop(二)

来源:互联网 发布:淘宝小号买卖 编辑:程序博客网 时间:2024/04/25 22:16

要想真正发挥hadoop的威力,必须将hadoop在集群上部署,下面介绍hadoop集群的部署。hadoop的集群部署是建立在伪集群安装的基础上,现假设有三台机器,一台master,两台slave,分别为slave1和slave2(其实两台机器也可以实现集群,其中一台机器同时扮演master和slave的角色)。

1.首先分别在三台机器上安装好hadoop,使hadoop可以运行伪集群(参照我的文章一步一步学习hadoop(一) )
2.关掉三个单节点hadoop集群
3.使master机器可以无密码访问master,slave1和slave2机器,
   假设master,slave1,slave2的机器的ip地址分别为128.0.0.1,128.0.0.2,128.0.0.3
  1'在三台机器上修改/etc/hosts 文件,增加如下三行
    128.0.0.1 master
    128.0.0.2 slave1
    128.0.0.3 slave2
  2'修改三台机器的/etc/hostname文件,该文件一般只有一行。(如果不修改运行hadoop作业是可能会出错,报Too much fetch failure错误)
    将master机器改为master
    将slave1机器改为slave1
    将slave2机器改为slave2
  3'将hduser@master的公钥分发到slave1和slave2里去,这一次是需要输入密码的。
    ssh-copy-id -i ~/.ssh/id_rsa.pub hduser@slave1
    ssh-copy-id -i ~/.ssh/id_rsa.pub hduser@slave2
     完成后使用ssh命令测试一下,看是不是已经可以访问了
4.对hadoop进行配置
  1'在master机器上修改conf/masters文件和conf/slaves文件
    将masters里的localhost改为master,文件内容如下
    master
    将slaves的内容修改为
    slave1
    slave2
   解释一下这两个文件的作用,其实这两个文件是为了简化启动集群的工作量的,不要被它的名字误导了,其实NameNode和JobTracker总是你运行
   start-dfs.sh和start-mapred.sh脚本的机器,如果使用start-all.sh则NameNode和JobTracker会在同一台机器上。这个留待以后再详细介绍
  2'将所有机器的core-site.xml的修改为如下
<?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>

所有机器的mapred-site.xml修改为
<?xml version="1.0"?>
<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>master:54311</value>
  </property>
</configuration>

所有机器的hdfs-site.xml修改为,不能设为大于2的数字,不然日志中会有很多备份不足的错误,设为1的话就没有并行的优势了
<?xml version="1.0"?>
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
</configuration>

5.格式化HDFS,在master机器上执行
     hadoop namenode -format

6.启动hadoop集群
   start-dfs
   start-mapred
  通过jps命令看是否已经启动成功
7.运行hadoop作业
  1'将数据拷贝到HDFS文件系统中,使用如下命令将hadoop的配置文件拷贝到HDFS下的input目录下
    hadoop fs -put /usr/local/hadoop/conf /input
  2'运行hadoop作业
    hadoop jar /usr/local/hadoop/hadoop-examples-1.0.4.jar WordCount /input /output
   运行成功表示安装OK了
8.停止hadoop集群,和启动hadoop集群刚好相反
   stop-mapred
   stop-dfs
    
 


原创粉丝点击