Hadoop CDH4.5 MapReduce MRv1部署

上一篇部署了HDFS集群,这一篇我们来部署MRv1版本的MapReduce集群,节点服务部署信息如下:

IP              Hostname      MRv1          HDFS        
192.168.1.10     U-1       Jobtracker      Namenode      
192.168.1.20     U-2       Tasktracker     Datanode     
192.168.1.30     U-3       Tasktracker     Datanode      
192.168.1.40     U-4       Tasktracker     Datanode     
192.168.1.50     U-5       Tasktracker     Datanode 

1   在NameNode节点配置关于MRv1的配置参数,/etc/hadoop/conf/mapred-site.xml

<property>
    <name>mapred.job.tracker</name>
    <value>jobtracker-host.company.com:8021</value>
</property>

<property>
    <name>mapred.local.dir</name>
    <value>/mapred/local</value>
</property>
            在每台DataNode上面,确保有以上目录,且权限正确,在(U-2/3/4/5)上执行:

mkdir -p /mapred/local 
chown -R mapred:hadoop /mapred/local 
3      Configure a health check script for DataNode processes

            在早期的版本中,mapred.local.dir存在单点故障,会引起tasktracker进程停掉。

4    配置JobTracker Recovery

            如果当前有MapReduce Job正在运行,而JobTracker突然down掉了,怎么办?由于JobTracker只是负责Job调度,记账,监控等工作,真正的任务执行在TaskTracker上,完全有可能重启JobTracker而不丢失之前的任务运行。JobTracker需要做的是将Job执行状态备份到文件,重启时读取文件以便恢复。

            在/etc/hadoop/conf/mapred-site.xml中追加如下配置:

<property>
   <name>mapreduce.jobtracker.restart.recover</name>
   <value>true</value>
</property>

            恢复的job有以下特性

            It will have the same job ID as when it was submitted.
            It will run under the same user as the original job.
            It will write to the same output directory as the original job, overwriting any previous output.
            It will show as RUNNING on the JobTracker web page after you restart the JobTracker.

5    把U-1的/etc/hadoop/conf/目录下的hdfs-site.xml和mapred-site.xml文件分发到集群的其他机器上(U-2/3/4/5)

scp hdfs-site.xml mapred-site.xml [email protected]:/etc/hadoop/conf/
scp hdfs-site.xml mapred-site.xml [email protected]:/etc/hadoop/conf/
scp hdfs-site.xml mapred-site.xml [email protected]:/etc/hadoop/conf/
scp hdfs-site.xml mapred-site.xml [email protected]:/etc/hadoop/conf/

6    启动HDFS

        1    在NameNode上操作

service hadoop-hdfs-namenode
         2     在DataNode上操作

service hadoop-hdfs-datanode start

7      创建HDFS的/tmp目录

            如果你没有正确的建立/tmp目录,并赋予正确的权限,后面你可能会遇到一些问题。在HDFS集群启动后建立/tmp目录并赋予1777权限:

sudo -u hdfs hadoop fs -mkdir /tmp
sudo -u hdfs hadoop fs -chmod -R 1777 /tmp
8      创建MapReduce的/var目录
sudo -u hdfs hadoop fs -mkdir -p /var/lib/hadoop-hdfs/cache/mapred/mapred/staging
sudo -u hdfs hadoop fs -chmod 1777 /var/lib/hadoop-hdfs/cache/mapred/mapred/staging
sudo -u hdfs hadoop fs -chown -R mapred /var/lib/hadoop-hdfs/cache/mapred
9       检查 HDFS的文件结构
sudo -u hdfs hadoop fs -ls -R /

10      在HDFS中创建并配置mapred.system.dir指定的目录

            在你启动HDFS并且建立/tmp目录之后,在你启动jobtracker之前,你必须在HDFS中创建mapred.system.dir指定的目录,默认是${hadoop.tmp.dir}/mapred/system目录,如果你的创建的mapred.system.dir目录在其他位置,你需要在mapred-site.xml中修改

sudo -u hdfs hadoop fs -mkdir /tmp/mapred/system
sudo -u hdfs hadoop fs -chown mapred:hadoop /tmp/mapred/system

11      Start MapReduce

            1    在tasktracker上执行

service hadoop-0.20-mapreduce-tasktracker start
              2      在jobtracker上执行
service hadoop-0.20-mapreduce-jobtracker start

12      Create a Home Directory for each MapReduce User

            针对每一个mapreduce用户创建他们自己的家目录,最好在namenode上操作,<user>是你linux用户

sudo -u hdfs hadoop fs -mkdir /user/<user>
sudo -u hdfs hadoop fs -chown <user> /user/<user>
13      Configure the Hadoop daemons to start at boot time


            参考:官方文档

你可能感兴趣的:(mapreduce)