首页 数据库 mysql教程 Hadoop2.2.0集群搭建过程

Hadoop2.2.0集群搭建过程

Jun 07, 2016 pm 03:08 PM
搭建 过程 集群

第一部分 Hadoop 2.2 下载 Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2。官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独下载src源码自行编译(10楼评论中提供了一个解决方法链接)。 下载地址:http://apache.c

第一部分 Hadoop 2.2 下载

          Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2。官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独下载src 源码自行编译(10楼评论中提供了一个解决方法链接)。

下载地址:http://apache.claz.org/hadoop/common/hadoop-2.2.0/

如下图所示,下载红色标记部分即可。如果要自行编译则下载src.tar.gz.

 Hadoop2.2.0集群搭建过程

第二部分 集群环境搭建

1、这里我们搭建一个由三台机器组成的集群:

192.168.0.1     hduser/passwd        cloud001       nn/snn/rm        CentOS6 64bit

192.168.0.2     hduser/passwd        cloud002        dn/nm             Ubuntu13.04 32bit

192.168.0.3     hduser/passwd        cloud003        dn/nm              Ubuntu13.0432bit

1.1 上面各列分别为IP、user/passwd、hostname、在cluster中充当的角色(namenode, secondary namenode, datanode , resourcemanager, nodemanager)

1.2   Hostname可以在/etc/hostname中修改(ubuntu是在这个路径下,redhat稍有不同)

1.3  这里我们为每台机器新建了一个账户hduser.这里需要给每个账户分配sudo的权限。(切换到root账户,修改/etc/sudoers文件,增加:hduser  ALL=(ALL) ALL )

2、修改/etc/hosts 文件,增加三台机器的ip和hostname的映射关系

                192.168.0.1     cloud001

                192.168.0.2     cloud002

                192.168.0.3     cloud003

3、打通cloud001到cloud002、cloud003的SSH无密码登陆

3.1 安装ssh

         一般系统是默认安装了ssh命令的。如果没有,或者版本比较老,则可以重新安装:

  sodu apt-get install ssh

3.2设置local无密码登陆

安装完成后会在~目录(当前用户主目录,即这里的/home/hduser)下产生一个隐藏文件夹.ssh(ls  -a 可以查看隐藏文件)。如果没有这个文件,自己新建即可(mkdir .ssh)。

具体步骤如下:

1、 进入.ssh文件夹

2、 ssh-keygen -t  rsa 之后一路回 车(产生秘钥)

3、 把id_rsa.pub 追加到授权的 key 里面去(cat id_rsa.pub >> authorized_keys)

4、 重启 SSH 服 务命令使其生效 :service sshd restart(这里RedHat下为sshdUbuntu下为ssh)

此时已经可以进行ssh localhost的无密码登陆

     【注意】:以上操作在每台机器上面都要进行。

3.3设置远程无密码登陆

这里只有cloud001是master,如果有多个namenode,或者rm的话则需要打通所有master都其他剩余节点的免密码登陆。(将001的authorized_keys追加到002和003的authorized_keys)

进入001的.ssh目录

scp authorized_keys hduser@cloud002:~/.ssh/ authorized_keys_from_cloud001

进入002的.ssh目录

cat authorized_keys_from_cloud001>> authorized_keys

至此,可以在001上面sshhduser@cloud002进行无密码登陆了。003的操作相同。

4、安装jdk(建议每台机器的JAVA_HOME路径信息相同)

注意:这里选择下载jdk并自行安装,而不是通过源直接安装(apt-get install)

4.1、下载jkd( http://www.oracle.com/technetwork/java/javase/downloads/index.html

4.1.1 对于32位的系统可以下载以下两个Linux x86版本(uname -a 查看系统版本)

4.1.2  64位系统下载Linux x64版本(即x64.rpm和x64.tar.gz)

 Hadoop2.2.0集群搭建过程

4.2、安装jdk(这里以.tar.gz版本,32位系统为例)

安装方法参考http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html 

4.2.1 选择要安装java的位置,如/usr/目录下,新建文件夹java(mkdirjava)

4.2.2 将文件jdk-7u40-linux-i586.tar.gz移动到/usr/java

4.2.3 解压:tar -zxvf jdk-7u40-linux-i586.tar.gz

4.2.4 删除jdk-7u40-linux-i586.tar.gz(为了节省空间)

至此,jkd安装完毕,下面配置环境变量

4.3、打开/etc/profile(vim /etc/profile)

在最后面添加如下内容:

JAVA_HOME=/usr/java/jdk1.7.0_40(这里的版本号1.7.40要根据具体下载情况修改)

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOMECLASSPATH PATH

4.4、source /etc/profile

4.5、验证是否安装成功:java–version

  【注意】每台机器执行相同操作,最后将java安装在相同路径下(不是必须的,但这样会使后面的配置方便很多)

5、关闭每台机器的防火墙

RedHat:

/etc/init.d/iptables stop 关闭防火墙。

chkconfig iptables off 关闭开机启动。

Ubuntu:

ufw disable (重启生效)

第三部分 Hadoop 2.2安装过程

        由于hadoop集群中每个机器上面的配置基本相同,所以我们先在namenode上面进行配置部署,然后再复制到其他节点。所以这里的安装过程相当于在每台机器上面都要执行。但需要注意的是集群中64位系统和32位系统的问题。

1、 解压文件

       将第一部分中下载的hadoop-2.2.tar.gz解压到/home/hduser路径下(或者将在64位机器上编译的结果存放在此路径下)。然后为了节省空间,可删除此压缩文件,或将其存放于其他地方进行备份。

注意:每台机器的安装路径要相同!!

2、 hadoop配置过程

配置之前,需要在cloud001本地文件系统创建以下文件夹:

~/dfs/name

~/dfs/data

~/temp

这里要涉及到的配置文件有7个:

~/hadoop-2.2.0/etc/hadoop/hadoop-env.sh

~/hadoop-2.2.0/etc/hadoop/yarn-env.sh

~/hadoop-2.2.0/etc/hadoop/slaves

~/hadoop-2.2.0/etc/hadoop/core-site.xml

~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

以上个别文件默认不存在的,可以复制相应的template文件获得。

配置文件1:hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_40)

配置文件2:yarn-env.sh

修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk1.7.0_40)

配置文件3:slaves (这个文件里面保存所有slave节点)

写入以下内容:

cloud002

cloud003

配置文件4:core-site.xml

               

                                fs.defaultFS

                                hdfs://cloud001:9000

               

       

                                io.file.buffer.size

                                131072

               

       

                                hadoop.tmp.dir

                                file:/home/hduser/tmp

                                Abase for other temporary directories.

               

        

               hadoop.proxyuser.hduser.hosts

               *

       

                 

               hadoop.proxyuser.hduser.groups

               *

       

配置文件5:hdfs-site.xml

       

                dfs.namenode.secondary.http-address

               cloud001:9001

       

         

                  dfs.namenode.name.dir

                 file:/home/hduser/dfs/name

           

           

                    dfs.datanode.data.dir

                    file:/home/hduser/dfs/data

           

           

                     dfs.replication

                     3

             

             

                     dfs.webhdfs.enabled

                     true

         

配置文件6:mapred-site.xml

               

                                mapreduce.framework.name

                                yarn

               

               

                                mapreduce.jobhistory.address

                                cloud001:10020

               

               

               mapreduce.jobhistory.webapp.address

               cloud001:19888

       

配置文件7:yarn-site.xml

                 

               yarn.nodemanager.aux-services

               mapreduce_shuffle

        

                 

               yarn.nodemanager.aux-services.mapreduce.shuffle.class

               org.apache.hadoop.mapred.ShuffleHandler

        

        

               yarn.resourcemanager.address

               cloud001:8032

       

               

               yarn.resourcemanager.scheduler.address

                cloud001:8030

               

               

                       yarn.resourcemanager.resource-tracker.address

                        cloud001:8031

               

               

                       yarn.resourcemanager.admin.address

                        cloud001:8033

               

               

               yarn.resourcemanager.webapp.address

                cloud001:8088

       

3、复制到其他节点

这里可以写一个shell脚本进行操作(有大量节点时比较方便)

cp2slave.sh

#!/bin/bash 

scp–r /home/hduser/hadoop-2.2.0 hduser@cloud002:~/

scp–r /home/hduser/hadoop-2.2.0 hduser@cloud003:~/

注意:由于我们集群里面001是64bit 而002和003是32bit的,所以不能直接复制,而采用单独安装hadoop,复制替换相关配置文件:

Cp2slave2.sh

#!/bin/bash

scp /home/hduser/hadoop-2.2.0/etc/hadoop/slaveshduser@cloud002:~/hadoop-2.2.0/etc/hadoop/slaves

scp /home/hduser/hadoop-2.2.0/etc/hadoop/slaveshduser@cloud003:~/hadoop-2.2.0/etc/hadoop/slaves

scp /home/hduser/hadoop-2.2.0/etc/hadoop/core-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/core-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/core-site.xml hduser@cloud003:~/hadoop-2.2.0/etc/hadoop/core-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/hdfs-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/hdfs-site.xmlhduser@cloud003:~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/mapred-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/mapred-site.xmlhduser@cloud003:~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/yarn-site.xmlhduser@cloud002:~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

scp /home/hduser/hadoop-2.2.0/etc/hadoop/yarn-site.xmlhduser@cloud003:~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

4、启动验证

4.1 启动hadoop

进入安装目录: cd  ~/hadoop-2.2.0/

格式化namenode:./bin/hdfs namenode –format

启动hdfs: ./sbin/start-dfs.sh

此时在001上面运行的进程有:namenode secondarynamenode

002和003上面运行的进程有:datanode

启动yarn: ./sbin/start-yarn.sh

此时在001上面运行的进程有:namenode secondarynamenoderesourcemanager

002和003上面运行的进程有:datanode nodemanaget

查看集群状态:./bin/hdfs dfsadmin –report

查看文件块组成:  ./bin/hdfsfsck / -files -blocks

查看HDFS:    http://16.187.94.161:50070

查看RM:    http:// 16.187.94.161:8088

4.2 运行示例程序:

先在hdfs上创建一个文件夹

./bin/hdfs dfs –mkdir /input

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter input

PS:dataNode 无法启动是配置过程中最常见的问题,主要原因是多次format namenode 造成namenode 和datanode的clusterID不一致。建议查看datanode上面的log信息。解决办法:修改每一个datanode上面的CID(位于dfs/data/current/VERSION文件夹中)使两者一致。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Vue框架下,如何快速搭建统计图表系统 Vue框架下,如何快速搭建统计图表系统 Aug 21, 2023 pm 05:48 PM

Vue框架下,如何快速搭建统计图表系统在现代网页应用中,统计图表是必不可少的组成部分。Vue.js作为一款流行的前端框架,提供了很多便捷的工具和组件,能够帮助我们快速搭建统计图表系统。本文将介绍如何利用Vue框架以及一些插件来搭建一个简单的统计图表系统。首先,我们需要准备一个Vue.js的开发环境,包括安装Vue脚手架以及一些相关的插件。在命令行中执行以下命

节点从Proxmox VE彻底撤离及再次加入集群 节点从Proxmox VE彻底撤离及再次加入集群 Feb 21, 2024 pm 12:40 PM

节点从ProxmoxVE彻底撤离及再次加入集群场景描述当ProxmoxVE集群中有节点损坏无法快速修复时,需要将故障节点干净的从集群踢出,并把残留信息清理干净。否则,新的节点用故障节点曾使用用的IP的地址将不能正常加入集群;同样,从集群中脱离出来的故障节点修复后,虽然与集群已经毫无关系,但访问此单节点的Web管理后台,将出现原ProxmoxVE集群其它节点的信息,非常恼火。从集群中驱逐节点如果ProxmoxVE是Ceph超融合集群,需要登录集群任意节点(欲删除节点除外)宿主系统Debian,命令

雾锁王国能野地搭建筑吗 雾锁王国能野地搭建筑吗 Mar 07, 2024 pm 08:28 PM

玩家在雾锁王国中进行游戏时可以收集不同的材料用来建造建筑,有很多玩家想知道野地搭建筑吗,雾锁王国能野地是不能搭建筑的,必须要在祭坛的范围内才可以搭建。雾锁王国能野地搭建筑吗答:不能。1、雾锁王国能野地是不能搭建筑的。2、建筑必须要在祭坛的范围内才可以搭建。3、玩家可以自行放置灵火祭坛,但一旦离开了范围,将无法进行建筑搭建。4、我们也可以直接在山上挖个洞当做我们的家,这样不用耗建筑材料。5、玩家自己搭建的建筑中,存在舒适度机制,也就是说,内饰越好,舒适度越高。6、高舒适度将为玩家带来属性加成,例如

PHP高并发环境下数据库的优化方法 PHP高并发环境下数据库的优化方法 Aug 11, 2023 pm 03:55 PM

PHP高并发环境下数据库的优化方法随着互联网的快速发展,越来越多的网站和应用程序需要面对高并发的挑战。在这种情况下,数据库的性能优化变得尤为重要,尤其是对于使用PHP作为后端开发语言的系统来说。本文将介绍一些在PHP高并发环境下数据库的优化方法,并给出相应的代码示例。使用连接池在高并发环境下,频繁地创建和销毁数据库连接可能会导致性能瓶颈。因此,使用连接池可以

如何使用Docker进行多节点集群的管理和扩容 如何使用Docker进行多节点集群的管理和扩容 Nov 07, 2023 am 10:06 AM

在当今云计算时代,容器化技术已经成为开源界最受欢迎的技术之一。Docker的出现使得云计算变得更加便捷、高效,成为了开发人员、运维人员不可或缺的工具。而多节点集群技术的应用更是在Docker的基础上被广泛使用。通过多节点集群部署,我们可以更加有效地利用资源,提高可靠性和可扩展性,同时也能更加灵活地进行部署和管理。接下来,我们将为大家介绍如何使用Docker进

php常见的集群有哪些 php常见的集群有哪些 Aug 31, 2023 pm 05:45 PM

php常见的集群有LAMP集群、Nginx集群、Memcached集群、Redis集群和Hadoop集群。详细介绍:1、LAMP集群,LAMP是指Linux、Apache、MySQL和PHP的组合,是一种常见的PHP开发环境,在LAMP集群中,多个服务器运行相同的应用程序,并通过负载均衡器将请求分发到不同的服务器上;2、Nginx集群,Nginx是一种高性能的Web服务器等等。

CentOS 7下搭建web服务器的网络安全加固技巧 CentOS 7下搭建web服务器的网络安全加固技巧 Aug 05, 2023 pm 01:12 PM

CentOS7下搭建web服务器的网络安全加固技巧web服务器是现代互联网的重要组成部分,因此保护web服务器的安全性非常重要。通过加固网络安全,可以减少风险和避免潜在的攻击。本文将介绍在CentOS7上搭建web服务器时常用的网络安全加固技巧,并提供相应的代码示例。更新系统和软件首先,确保你的系统和软件是最新版本。可以使用以下命令更

如何使用MongoDB实现数据的集群和负载均衡功能 如何使用MongoDB实现数据的集群和负载均衡功能 Sep 19, 2023 pm 01:22 PM

如何使用MongoDB实现数据的集群和负载均衡功能引言:在当今大数据时代,数据量的快速增长对数据库的性能提出了更高的要求。为了满足这些要求,数据的集群化和负载均衡成为了不可或缺的技术手段。MongoDB作为一种成熟的NoSQL数据库,提供了丰富的功能和工具来支持数据的集群和负载均衡。本文将介绍如何使用MongoDB实现数据的集群和负载均衡功能,并提供具体的代

See all articles