hadoop20集群搭建详解.docx

上传人:b****6 文档编号:7567690 上传时间:2023-01-25 格式:DOCX 页数:10 大小:35.67KB
下载 相关 举报
hadoop20集群搭建详解.docx_第1页
第1页 / 共10页
hadoop20集群搭建详解.docx_第2页
第2页 / 共10页
hadoop20集群搭建详解.docx_第3页
第3页 / 共10页
hadoop20集群搭建详解.docx_第4页
第4页 / 共10页
hadoop20集群搭建详解.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

hadoop20集群搭建详解.docx

《hadoop20集群搭建详解.docx》由会员分享,可在线阅读,更多相关《hadoop20集群搭建详解.docx(10页珍藏版)》请在冰豆网上搜索。

hadoop20集群搭建详解.docx

hadoop20集群搭建详解

hadoop2.2.0集群搭建

    PS:

apache提供的hadoop-2.2.0的安装包是在32位操作系统编译的,

          因为hadoop依赖一些C++的本地库,所以如果在64位的操作上安装

           hadoop-2.2.0就需要重新在64操作系统上重新编译

1.准备工作:

(参考伪分布式搭建)

        1.1修改Linux主机名

        1.2修改IP

      1.3修改主机名和IP的映射关系

      1.4关闭防火墙

      1.5ssh免登陆

      1.6.安装JDK,配置环境变量等

2.集群规划:

            PS:

            在hadoop2.0中通常由两个NameNode组成,一个处于active状态,

                    另一个处于standby状态。

ActiveNameNode对外提供服务,

                    而StandbyNameNode则不对外提供服务,仅同步activenamenode

                    的状态,以便能够在它失败时快速进行切换。

            hadoop2.0官方提供了两种HDFSHA的解决方案,一种是NFS,

                    另一种是QJM。

这里我们使用简单的QJM。

在该方案中,

                    主备NameNode之间通过一组JournalNode同步元数据信息,

                    一条数据只要成功写入多数JournalNode即认为写入成功。

                    通常配置奇数个JournalNode

            这里还配置了一个zookeeper集群,用于ZKFC

                    (DFSZKFailoverController)故障转移,当ActiveNameNode挂

                     掉了,会自动切换StandbyNameNode为standby状态

3.安装步骤:

    3.1.安装配置zooekeeper集群

        3.1.1解压

        tar-zxvfzookeeper-3.4.5.tar.gz-C/cloud/

    3.1.2修改配置

        cd/cloud/zookeeper-3.4.5/conf/

        cpzoo_sample.cfgzoo.cfg

        vimzoo.cfg

        修改:

dataDir=/cloud/zookeeper-3.4.5/tmp

        在最后添加:

            server.1=hadoop01:

2888:

3888

            server.2=hadoop02:

2888:

3888

            server.3=hadoop03:

2888:

3888

        保存退出

        然后创建一个tmp文件夹

            mkdir/cloud/zookeeper-3.4.5/tmp

        再创建一个空文件

            touch/cloud/zookeeper-3.4.5/tmp/myid

        最后向该文件写入ID

            echo1>/cloud/zookeeper-3.4.5/tmp/myid

    3.1.3将配置好的zookeeper拷贝到其他节点(首先分别在hadoop02、

        hadoop03根目录下创建一个cloud目录:

mkdir/cloud)

            scp-r/cloud/zookeeper-3.4.5/hadoop02:

/cloud/

            scp-r/cloud/zookeeper-3.4.5/hadoop03:

/cloud/

    

    注意:

修改hadoop02、hadoop03对应

          /cloud/zookeeper-3.4.5/tmp/myid内容

        hadoop02:

            echo2>/cloud/zookeeper-3.4.5/tmp/myid

        hadoop03:

            echo3>/cloud/zookeeper-3.4.5/tmp/myid

    3.2.安装配置hadoop集群

        3.2.1解压

        tar-zxvfhadoop-2.2.0.tar.gz-C/cloud/

    3.2.2配置HDFS(hadoop2.0所有的配置文件都在

        $HADOOP_HOME/etc/hadoop目录下)

    将hadoop添加到环境变量中

        vim/etc/profile

        exportJAVA_HOME=/usr/java/jdk1.6.0_45

        exportHADOOP_HOME=/cloud/hadoop-2.2.0

        exportPATH=$PATH:

$JAVA_HOME/bin:

$HADOOP_HOME/bin

        cd/cloud/hadoop-2.2.0/etc/hadoop

    3.2.2.1修改hadoo-env.sh

        exportJAVA_HOME=/usr/java/jdk1.6.0_45

3,2.2.2修改core-site.xml

    

        

--指定hdfs的nameservice为ns1-->

        

            fs.defaultFS

            hdfs:

//ns1

        

    

--指定hadoop临时目录-->

        

            hadoop.tmp.dir

            /cloud/hadoop-2.2.0/tmp

        

        

--指定zookeeper地址-->

        

            ha.zookeeper.quorum

            

                 hadoop01:

2181,hadoop02:

2181,hadoop03:

2181

            

        

    

3,2.2.3修改hdfs-site.xml

    

        

--指定hdfs的nameservice为ns1,

         需要和core-site.xml中的保持一致-->

        

            dfs.nameservices

            ns1

        

        

--ns1下面有两个NameNode,分别是nn1,nn2-->

        

            dfs.ha.namenodes.ns1

            nn1,nn2

        

        

--nn1的RPC通信地址-->

        

            

                 dfs.namenode.rpc-address.ns1.nn1

             

            hadoop01:

9000

        

        

--nn1的http通信地址-->

        

            

                 dfs.namenode.http-address.ns1.nn1

             

            hadoop01:

50070

        

        

--nn2的RPC通信地址-->

        

            

                 dfs.namenode.rpc-address.ns1.nn2

             

            hadoop02:

9000

        

        

--nn2的http通信地址-->

        

            

                 dfs.namenode.http-address.ns1.nn2

             

            hadoop02:

50070

        

        

--指定NameNode的元数据在

                JournalNode上的存放位置-->

        

            

                 dfs.namenode.shared.edits.dir

            

            

                 qjournal:

//hadoop01:

8485;hadoop02:

8485;hadoop03:

8485/ns1

             

        

        

--指定JournalNode在本地磁盘存放数据的位置-->

        

            dfs.journalnode.edits.dir

            /cloud/hadoop-2.2.0/journal

        

        

--开启NameNode失败自动切换-->

        

            

                 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

        

        

--使用隔离机制时需要ssh免登陆-->

        

            

                 dfs.ha.fencing.ssh.private-key-files

             

            /root/.ssh/id_rsa

        

    

    3.2.2.4修改slaves

    hadoop01

    hadoop02

    hadoop03

    3.2.3配置YARN

        3.2.3.1修改yarn-site.xml

    

        

--指定resourcemanager地址-->

        

            

                 yarn.resourcemanager.hostname

             

            hadoop01

        

        

--指定nodemanager启动时加载

               server的方式为shuffleserver-->

        

            

                 yarn.nodemanager.aux-services

             

            mapreduce_shuffle

        

    

    3.2.3.2修改mapred-site.xml

        

            

--指定mr框架为yarn方式-->

            

                

                     mapreduce.framework.name

                 

                yarn

            

        

    3.2.4将配置好的hadoop拷贝到其他节点

        scp-r/cloud/hadoop-2.2.0/hadoo02:

/cloud/

        scp-r/cloud/hadoop-2.2.0/hadoo03:

/cloud/

    3.2.5启动zookeeper集群

        (分别在hadoop01、hadoop02、hadoop03上启动zk)

        cd/cloud/zookeeper-3.4.5/bin/

        ./zkServer.shstart

        查看状态:

        ./zkServer.shstatus

        (一个leader,两个follower)

    3.2.6启动journalnode(在hadoop01上启动所有journalnode)

        cd/cloud/hadoop-2.2.0

        sbin/hadoop-daemons.shstartjournalnode

        (运行jps命令检验,多了JournalNode进程)

    3.2.7格式化HDFS

        在hadoop01上执行命令:

        hadoopnamenode-format

        格式化后会在根据core-site.xml中的hadoop.tmp.dir

         配置生成个文件,这里我配置的是/cloud/hadoop-2.2.0/tmp,

         然后将/cloud/hadoop-2.2.0/tmp拷贝到hadoop02的

         /cloud/hadoop-2.2.0/下。

        scp-rtmp/hadoop02:

/cloud/hadoop-2.2.0/

    3.2.8格式化ZK(在hadoop01上执行即可)

        hdfszkfc-formatZK

    3.2.9启动HDFS(在hadoop01上执行)

        sbin/start-dfs.sh

    3.3.10启动YARN(在hadoop01上执行)

        sbin/start-yarn.sh

    到此,hadoop2.2.0配置完毕,可以统计浏览器访问:

        

        NameNode'hadoop01:

9000'(active)

        

        NameNode'hadoop02:

9000'(standby)

    验证HDFSHA

        首先向hdfs上传一个文件

            hadoopfs-put/etc/pro

            hadoopfs-ls/

        然后再kill掉active的NameNode

            kill-9

        通过浏览器访问:

            NameNode'hadoop02:

9000'(active)

            这个时候hadoop02上的NameNode变成了active

        在执行命令:

            hadoopfs-ls/

            -rw-r--r-- 3rootsupergroup   19262014-02-0615:

36/profile

    刚才上传的文件依然存在!

        手动启动那个挂掉的NameNode

        sbin/hadoop-daemon.shstartnamenode

        通过浏览器访问:

        NameNode'hadoop01:

9000'(standby)

    验证YARN:

        运行一下hadoop提供的demo中的WordCount程序:

            hadoopjarshare/hadoop/mapreduce/hadoop-mapreduce

            -examples-2.2.0.jarwordcount/pro

    

OK,大功告成!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1