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

来源:互联网 发布:网络计划图关键线路 编辑:程序博客网 时间:2024/05/17 02:33

这是在成功安装和配置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进行格式化:hadoop  namenode  -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 0
原创粉丝点击