频道栏目
首页 > 系统 > Linux > 正文
hadoop集群搭建HDFS、HA、 YARN
2016-05-13 09:09:22      个评论    来源:IT小生  
收藏   我要投稿

hadoop2.0已经发布了很多稳定版本,增加了很多特性,比如HDFS HA、YARN等。最新的hadoop-2.7.2又增加了YARN HA

1、环境准备

修改主机名、IP地址。这些在之前博客有提过就不再写了。
配置IP地址和主机名映射关系。
sudo vi /etc/hosts

这里写图片描述

集群规划:
主机名 IP 安装的软件 运行的进程
spark01 192.168.2.201 jdk、hadoop NameNode、 DFSZKFailoverController(zkfc)
spark02 192.168.2.202 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
spark03 192.168.2.203 jdk、hadoop ResourceManager
spark04 192.168.2.204 jdk、hadoop ResourceManager
spark05 192.168.2.205 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuZ喎"/kf/ware/vc/" target="_blank" class="keylink">vcnVtUGVlck1haW48YnIgLz4NCnNwYXJrMDYgMTkyLjE2OC4yLjIwNiBqZGuhomhhZG9vcKGiem9va2VlcGVyIERhdGFOb2RloaJOb2RlTWFuYWdlcqGiSm91cm5hbE5vZGWholF1b3J1bVBlZXJNYWluPGJyIC8+DQpzcGFyazA3IDE5Mi4xNjguMi4yMDcgamRroaJoYWRvb3Chonpvb2tlZXBlciBEYXRhTm9kZaGiTm9kZU1hbmFnZXKhokpvdXJuYWxOb2RloaJRdW9ydW1QZWVyTWFpbjwvcD4NCjxoMiBpZD0="2安装zookeeper集群在spark05-07上">2、安装zookeeper集群在spark05-07上

参考博客:https://blog.csdn.net/u013821825/article/details/51375860

3、安装配置hadoop集群(在spark01上操作)

3.1 解压
tar -zxvf hadoop-2.7.2.tar.gz -C /app/
这里写图片描述
3.2 配置HDFS(hadoop2.0所有的配置文件都在HADOOP_HOME/etc/hadoop目录下)
#将hadoop添加到环境变量中
sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91
export HADOOP_HOME=/home/hadoop/app/hadoop-2.7.2
export PATH=JAVA_HOME/bin:PATH:HADOOP_HOME/bin
export CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar

#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
        cd /home/hadoop/app/hadoop-2.7.2/etc/hadoop

要修改的配置文件

a、修改hadoo-env.sh
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91
这里写图片描述

b、修改core-site.xml

     
            
            
                fs.defaultFS
                hdfs://ns1/
            
            
            
                hadoop.tmp.dir
                /home/hadoop/app/hadoop-2.7.2/tmp
             
            
            
                ha.zookeeper.quorum
               spark05:2181,spark06:2181,spark07:2181
            
        

这里写图片描述

c、修改hdfs-site.xml


    
    
        dfs.nameservices
        ns1
    
    
    
        dfs.ha.namenodes.ns1
        nn1,nn2
    
    
    
        dfs.namenode.rpc-address.ns1.nn1
        spark01:9000
    
    
    
        dfs.namenode.http-address.ns1.nn1
        spark01:50070
    
    
    
        dfs.namenode.rpc-address.ns1.nn2
        spark02:9000
    
    
    
        dfs.namenode.http-address.ns1.nn2
        spark02:50070
    
    
    
        dfs.namenode.shared.edits.dir
    qjournal://spark05:8485;spark06:8485;spark07:8485/ns1
    
    
    
        dfs.journalnode.edits.dir
        /home/hadoop/app/hadoop-2.7.2/journaldata
    
    
    
        dfs.ha.automatic-failover.enabled
        true
    
    
                          dfs.client.failover.proxy.provider.ns1                     org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    
    
    
        dfs.ha.fencing.methods
        sshfence
                shell(/bin/true)
        
    
    
    
        dfs.ha.fencing.ssh.private-key-files
        /home/hadoop/.ssh/id_rsa
    
    
    
        dfs.ha.fencing.ssh.connect-timeout
        30000
    

这里写图片描述

d、修改mapred-site.xml

先执行:[hadoop@hadoop01 hadoop]$ mv mapred-site.xml.template mapred-site.xml


    
    
        mapreduce.framework.name
        yarn
    

这里写图片描述

e、修改yarn-site.xml


    
                          yarn.resourcemanager.ha.enabled
        true
    
    
    
        yarn.resourcemanager.cluster-id
        yrc
    
    
    
        yarn.resourcemanager.ha.rm-ids
        rm1,rm2
    
    
                             yarn.resourcemanager.hostname.rm1
       spark03
        
                         yarn.resourcemanager.hostname.rm2
         spark04
    
    
    
        yarn.resourcemanager.zk-address                           spark05:2181,spark06:2181,spark07:2181
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

这里写图片描述

f、修改slaves(slaves是指定子节点的位置,因为要在spark01上启动HDFS、在spark03启动yarn,所以spark01上的slaves文件指定的是datanode的位置,spark03上的slaves文件指定的是nodemanager的位置)
spark05
spark06
spark07
无密钥登录:
首先要配置spark01到spark02、spark03、spark04、spark05、spark06、spark07的免密码登陆
这里写图片描述

[hadoop@hadoop01 ~]ssh?keygen?trsa生成密钥[hadoop@hadoop01 ] ssh-copy-id spark01
[hadoop@hadoop01 ~]ssh?copy?idspark02[hadoop@hadoop01 ] ssh-copy-id spark05
[hadoop@hadoop01 ~]ssh?copy?idspark06[hadoop@hadoop01 ] ssh-copy-id spark07
我在这里就只截一张图了
这里写图片描述

配置spark03——》spark5-7的无密钥登录
同上述步骤在03中执行:ssh-keygen -t rsa
这里写图片描述

[hadoop@hadoop01 ~]ssh?copy?idspark05[hadoop@hadoop01 ] ssh-copy-id spark06
[hadoop@hadoop01 ~]$ ssh-copy-id spark07

g、再将spark01中配置好的hadoop环境拷贝到其他机器上
scp -r hadoop-2.7.2/ spark02:/home/hadoop/app/
自己依次拷贝2-7都要拷贝过去,这样整个hadoop集群环境就部署完成了。接下来就是启动与测试集群。

4、启动与测试

严格按照以下步骤完成启动任务:
1、启动zookeeper集群(分别在spark05、spark06、spark07上启动zk)
cd /weekend/zookeeper-3.4.8/bin/
./zkServer.sh start
#查看状态:一个leader,两个follower
./zkServer.sh status
2、启动journalnode(分别在在spark05、spark06、spark07上执行)
cd /weekend/hadoop-2.7.2/sbin
sbin/hadoop-daemon.sh start journalnode
#运行jps命令检验,weekend05、weekend06、weekend07上多了JournalNode进程
这里写图片描述
3、格式化HDFS
#在spark01上执行命令:
hdfs namenode -format
#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/hadoop/hadoop-2.7.2/tmp,然后将/weekend/hadoop-2.4.1/tmp拷贝到hadoop02的/weekend/hadoop-2.7.2/下。
scp -r tmp/ hadoop02:/home/hadoop/app/hadoop-2.7.2/
##也可以这样,建议hdfs namenode -bootstrapStandby
这里写图片描述
4、格式化ZKFC(在hadoop【spark】01上执行即可)
hdfs zkfc -formatZK

5、启动HDFS(在hadoop【spark】01上执行)
sbin/start-dfs.sh
这里写图片描述
6、启动YARN(#####注意#####:是在spark03上执行start-yarn.sh,把namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,所以把他们分开了,他们分开了就要分别在不同的机器上启动)
sbin/start-yarn.sh

7、在浏览器中查看nanenode
这里写图片描述
这里写图片描述

8、验证HDFS HA
首先向hdfs上传一个文件
hadoop fs -put /etc/profile /profile
hadoop fs -ls /
然后再kill掉active的NameNode
kill -9
通过浏览器访问:https://192.168.1.202:50070
NameNode ‘hadoop02:9000’ (active)
这个时候weekend02上的NameNode变成了active
这里写图片描述

在执行命令:
hadoop fs -ls /
-rw-r–r– 3 root supergroup 1926 2014-02-06 15:36 /profile
刚才上传的文件依然存在!!!
手动启动那个挂掉的NameNode
sbin/hadoop-daemon.sh start namenode
通过浏览器访问:https://192.168.1.201:50070
NameNode ‘hadoop01:9000’ (standby)
验证YARN:
运行一下hadoop提供的demo中的WordCount程序:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /profile /out

到此为止所有的配置都完成了!

点击复制链接 与好友分享!回本站首页
相关TAG标签 集群
上一篇:linux防火墙软件-itables使用方法
下一篇:计算机组成.计算机在计算啥.运算与ALU
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站