疯狂小鸡/ty 发表于 2015-11-11 11:34:23

hadoop集群的负载均衡配置与添加DataNode节点和TaskTracker节点

  这是在成功安装和配置hadoop的情况下,对hadoop集群的负载进行调整,我的hadoop集群有三台虚拟机,一台为master,另外两台分别为slave1和slave2。
  还没有进行负载均衡和添加DataNode节点和TaskTracker节点的时候,三台虚拟机的情况:
  master(NameNode、SecondaryNameNode、JobTracker、Jps)
  slave1(DataNode、TaskTracker、Jps)
  slave2( DataNode、TaskTracker、Jps)

  负载均衡和添加DataNode节点和TaskTracker节点之后,三台虚拟机的情况:
  master(NameNode、DataNode、TaskTracker,Jps)
slave1(SecondaryNameNode、DataNode、TaskTracker,Jps)
slave2(JobTracker 、DataNode、TaskTracker,Jps)

  1、hadoop集群的负载均衡配置
  (1)指定slave1为SecondaryNameNode。进入hadoop的安装目录下的conf目录,修改masters文件的内容为slave1;把hdfs-site.xml文件的内容修改为:(在三台虚拟机上都要修改)
  <configuration>
    <property>
       <name>dfs.name.dir</name>
       <value>/home/你的用户名/Hadoop/hadoop-1.2.1/dfs/filesystem/name</value>
    </property>
    <property>
       <name>dfs.data.dir</name>
       <value>/home/你的用户名/Hadoop/hadoop-1.2.1/dfs/filesystem/data</value>
    </property>
    <property>
      <name>dfs.replication</name>
      <value>3</value>
    </property>
    <property>
      <name>dfs.http.address</name>
      <value>master:50070</value>
    </property>
    <property>
      <name>dfs.secondary.http.address</name>
      <value>slave1:50090</value>
    </property>
</configuration>

  (2)指定slave2为JobTracker。进入hadoop的安装目录下的conf目录,把mapred-site.xml文件的内容修改为:(在三台虚拟机上都要修改)
  <configuration>
    <property>
      <name>mapred.job.tracker</name>
      <value>slave2:8021</value>
    </property>
    <property>
      <name>mapred.tasktracker.map.tasks.maximum</name>
      <value>4</value>
    </property>
    <property>
      <name>mapred.tasktracker.reduce.tasks.maximum</name>
      <value>4</value>
    </property>
    <property>
      <name>mapred.system.dir</name>
      <value>/home/你的用户名/Hadoop/hadoop-1.2.1/mapreduce/system</value>
    </property>
    <property>
      <name>mapred.local.dir</name>
      <value>/home/你的用户名/Hadoop/hadoop-1.2.1/mapreduce/local</value>
    </property>
</configuration>

  进入hadoop的安装目录下的conf目录,把core-site.xml文件的内容修改为:(在三台虚拟机上都要修改)
  <configuration>
    <property>
      <name>fs.default.name</name>
      <value>hdfs://master:8020</value>
    </property>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/你的用户名/Hadoop/hadoop-1.2.1/tmp</value>
    </property>
    <property>
      <name>fs.checkpoint.dir</name>
      <value>/home/你的用户名/Hadoop/hadoop-1.2.1/namesecondary</value>
    </property>
</configuration>

  2、向master节点添加DataNode节点和TaskTracker节点
  进入hadoop的安装目录下的conf目录,把slaves的内容修改为:(在三台虚拟机上都要修改)

  master
slave1
slave2

  3、完成上述配置后,删掉hadoop-1.2.1目录下的dfs、mapreduce、tmp和namesecondary目录,slave1和slave2节点的hadoop-1.2.1目录下只有个别的目录,反正hadoop-1.2.1目录下有fs、mapreduce、tmp和namesecondary目录的都要删掉(在三台虚拟机上都要修改)。
  4、在master节点下对HDFS进行格式化:hadoopnamenode-format
  5、格式化后,接下来不是执行start-all.sh文件,而是在master节点下执行start-dfs.sh,等hdfs启动完后,在slave2节点下执行start-mapred.sh,具体操作如下:
  master节点上:
  cy@master:~$ start-dfs.sh
starting namenode, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-namenode-master.out
slave2: starting datanode, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-datanode-slave2.out
slave1: starting datanode, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-datanode-slave1.out
master: starting datanode, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-datanode-master.out
slave1: starting secondarynamenode, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-secondarynamenode-slave1.out

  slave2节点上:
  cy@slave2:~$ start-mapred.sh
starting jobtracker, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-jobtracker-slave2.out
slave1: starting tasktracker, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-tasktracker-slave1.out
master: starting tasktracker, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-tasktracker-master.out
slave2: starting tasktracker, logging to /home/cy/Hadoop/hadoop-1.2.1/libexec/../logs/hadoop-cy-tasktracker-slave2.out

  6、完成上述步骤后,通过jps命令在三台虚拟机上查看进程:
  master节点上:
  cy@master:~$ jps
6432 Jps
6391 TaskTracker
6155 DataNode
5904 NameNode
  slave1节点上:
  cy@slave1:~$ jps
6208 Jps
5673 DataNode
6061 TaskTracker
5870 SecondaryNameNode

  slave2节点上:
  cy@slave2:~$ jps
5299 DataNode
5623 TaskTracker
5727 Jps
5394 JobTracker

  如果出现上述结果,就说明集群负载均衡配置成功,向master节点添加DataNode节点和TaskTracker节点也成功。
  7、集群的关闭。关闭hadoop集群的时候,要先在slave2上执行stop-mapred.sh,然后在master上执行stop-dfs.sh,具体操作如下:
  slave2节点上:
  cy@slave2:~$ stop-mapred.sh
stopping jobtracker
slave2: stopping tasktracker
slave1: stopping tasktracker
master: stopping tasktracker

  master节点上:
  cy@master:~$ stop-dfs.sh
stopping namenode
slave1: stopping datanode
master: stopping datanode
slave2: stopping datanode
slave1: stopping secondarynamenode

  

  上面都是本人亲自安装和配置成功的经历,跟大家分享一下,希望对大家有所帮助,谢谢!
         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: hadoop集群的负载均衡配置与添加DataNode节点和TaskTracker节点