阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop1.1.2分布式环境搭建

113次阅读
没有评论

共计 8673 个字符,预计需要花费 22 分钟才能阅读完成。

Hadoop 是 Apache 软件基金会旗下的一个开源分布式计算平台。以 Hadoop 分布式文件系统(HDFS,Hadoop Distributed Filesystem)和 MapReduce(Google MapReduce 的开源实现)为核心的 Hadoop 为用户提供了系统底层细节透明的分布式基础架构。

对于 Hadoop 的集群来讲,可以分成两大类角色:Master 和 Salve。一个 HDFS 集群是由一个 NameNode 和若干个 DataNode 组成的。其中 NameNode 作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的 DataNode 管理存储的数据。MapReduce 框架是由一个单独运行在主节点上的 JobTracker 和运行在每个集群从节点的 TaskTracker 共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个 Job 被提交时,JobTracker 接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控 TaskTracker 的执行。

从上面的介绍可以看出,HDFS 和 MapReduce 共同组成了 Hadoop 分布式系统体系结构的核心。HDFS 在集群上实现分布式文件系统,MapReduce 在集群上实现了分布式计算和任务处理。HDFS 在 MapReduce 任务处理过程中提供了文件操作和存储等支持,MapReduce 在 HDFS 的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了 Hadoop 分布式集群的主要任务。

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

环境说明

集群规划

集群中包括 3 个节点:1 个 Master,2 个 Slave,节点之间局域网连接,可以相互 ping 通,

机器名称

IP地址

节点说明

icity0

192.16.39.141

Master

icity1

192.16.39.174

Slave

icity2

192.16.39.175

Slave

3 个节点上均是 RedHat6 系统,并且有一个相同的用户 hadoop。Master 机器主要配置 NameNode 和 JobTracker 的角色,负责总管分布式数据和分解任务的执行;2 个 Salve 机器配置 DataNode 和 TaskTracker 的角色,负责分布式数据存储以及任务的执行。

 

Linux 服务器配置信息

 

[root@localhost ~]# uname -a

Linux localhost.localdomain2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64GNU/Linux

[root@localhost ~]# free

total used free shared buffers cached

Mem: 2054828 1928908 125920 0 67940 95796

-/+ buffers/cache: 1765172 289656

Swap: 6291448 511492 5779956

 

创建 hadoop 用户

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.32-220.el6.x86_64#1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost ~]# free

total used free shared buffers cached

Mem: 2054828 1928908 125920 0 67940 95796

-/+ buffers/cache: 1765172 289656

Swap: 6291448 511492 5779956

 

 

1.3:创建 hadoop 用户

 

[root@localhost ~]# useradd hadoop

[root@localhost ~]# pwd hadoop

/root

[root@localhost ~]# passwd hadoop

Changing password for user hadoop.

New password:

BAD PASSWORD: it is WAY too short

BAD PASSWORD: is a palindrome

Retype new password:

Sorry, passwords do not match.

New password:

BAD PASSWORD: it is toosimplistic/systematic

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updatedsuccessfully.

[root@localhost ~]# su – hadoop

[hadoop@localhost ~]$ pwd

/home/hadoop 

这里面我设置的密码是 123456,所以比较简单,有提示,不用管,在另外两台服务器上按照这个操作创建 hadoop 用户。

修改网关

将 141 服务器的 hostname 设置为 icity0

vi /etc/sysconfig/network

Hadoop1.1.2 分布式环境搭建 

依此操作将另外两台服务器修改为 icity1 和 icity2;将此文件 scp 到另外两台服务器覆盖其上面的文件也可以。

设置完此部分,重启服务器。reboot

配置 hosts 文件

将 ip 与 hostname 对应的信息写入 hosts 文件,如图所示:

vi /etc/hosts

 

Hadoop1.1.2 分布式环境搭建

依此操作将另外两台服务器修改为 icity1 和 icity2;将此文件 scp 到另外两台服务器覆盖其上面的文件也可以。

 

配置完成后重启网卡:

service network restart

 

关闭防火墙

service iptables stop

 

建议将服务器按如下设置:

chkconfig iptables off – 关闭防火墙开机启动

chkconfig iptables –list – 查看状态

如图所示:

Hadoop1.1.2 分布式环境搭建

 

依此操作另外两台服务器 icity1 icity2

 

环境测试

每台服务器上操作,如图所示:

Hadoop1.1.2 分布式环境搭建

 

ping icity0

ping icity1

ping icity2

 

 

配置 SSH 无密码登录

SSH 无密码原理

Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器 Salve(DataNode | Tasktracker)上时,需要在 Master 上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的 Slave 上。当 Master 通过 SSH 连接 Salve 时,Salve 就会生成一个随机数并用 Master 的公钥对随机数进行加密,并发送给 Master。Master 收到加密数之后再用私钥解密,并将解密数回传给 Slave,Slave 确认解密数无误之后就允许 Master 进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端 Master 复制到 Slave 上。

 

生成密钥

首先登陆 141,切换到 Hadoop 用户:

su – hadoop

执行:

ssh-keygen -t rsa

命令是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa 和 id_rsa.pub,默认存储在 ”/home/hadoop/.ssh” 目录下。

如图所示:

Hadoop1.1.2 分布式环境搭建

 

查看 ”/home/hadoop/” 下是否有 ”.ssh” 文件夹,且 ”.ssh” 文件下是否有两个刚生产的无密码密钥对。

Hadoop1.1.2 分布式环境搭建

 

依此操作另外两台服务器 icity1 icity2

 

Icity1

Hadoop1.1.2 分布式环境搭建

 

Icity2

Hadoop1.1.2 分布式环境搭建

 

 

回到 icity0 服务器,切换到 hadoop 用户

 

cd /home/hadoop/.ssh

cp id_rsa.pub authorized_keys

Hadoop1.1.2 分布式环境搭建

 

回到 hadoop 目录,建立 sshkey 目录:

 

Hadoop1.1.2 分布式环境搭建

操作 icity1icity2服务器,将刚才生成的密钥文件 scpsshkey目录下面;

Icity1

Hadoop1.1.2 分布式环境搭建

 

Icity2

Hadoop1.1.2 分布式环境搭建

 

回到 icity0 服务器的 hadoop 用户 , 查看 sshkey 文件夹:

Hadoop1.1.2 分布式环境搭建

 

icity1icity2的密钥放入 authorized_keys 文件中,如图操作:

 

Hadoop1.1.2 分布式环境搭建

查看 authorized_keys 文件:

 

Hadoop1.1.2 分布式环境搭建

测试 icity0 无密码登录:

Hadoop1.1.2 分布式环境搭建

 

确实没有要求输入密码;

 

icity0.ssh 目录下面的 authorized_keys 文件 scpicity1icity2 .ssh 目录下面;

scp authorized_keys hadoop@icity1:/home/hadoop/.ssh/

scp authorized_keys hadoop@icity2:/home/hadoop/.ssh/

如图所示:

Hadoop1.1.2 分布式环境搭建

 

登录 icity1icity2hadoop 用户,查看文件:

 

Hadoop1.1.2 分布式环境搭建

 

Hadoop1.1.2 分布式环境搭建

回到 icity0hadoop用户,测试 icity1icity2的无密码登录验证:

 

Hadoop1.1.2 分布式环境搭建

Hadoop1.1.2 分布式环境搭建

 

Hadoop1.1.2 分布式环境搭建

 

 

至此,无密码验证配置完成。

Hadoop 是 Apache 软件基金会旗下的一个开源分布式计算平台。以 Hadoop 分布式文件系统(HDFS,Hadoop Distributed Filesystem)和 MapReduce(Google MapReduce 的开源实现)为核心的 Hadoop 为用户提供了系统底层细节透明的分布式基础架构。

对于 Hadoop 的集群来讲,可以分成两大类角色:Master 和 Salve。一个 HDFS 集群是由一个 NameNode 和若干个 DataNode 组成的。其中 NameNode 作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的 DataNode 管理存储的数据。MapReduce 框架是由一个单独运行在主节点上的 JobTracker 和运行在每个集群从节点的 TaskTracker 共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个 Job 被提交时,JobTracker 接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控 TaskTracker 的执行。

从上面的介绍可以看出,HDFS 和 MapReduce 共同组成了 Hadoop 分布式系统体系结构的核心。HDFS 在集群上实现分布式文件系统,MapReduce 在集群上实现了分布式计算和任务处理。HDFS 在 MapReduce 任务处理过程中提供了文件操作和存储等支持,MapReduce 在 HDFS 的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了 Hadoop 分布式集群的主要任务。

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

环境说明

集群规划

集群中包括 3 个节点:1 个 Master,2 个 Slave,节点之间局域网连接,可以相互 ping 通,

机器名称

IP地址

节点说明

icity0

192.16.39.141

Master

icity1

192.16.39.174

Slave

icity2

192.16.39.175

Slave

3 个节点上均是 RedHat6 系统,并且有一个相同的用户 hadoop。Master 机器主要配置 NameNode 和 JobTracker 的角色,负责总管分布式数据和分解任务的执行;2 个 Salve 机器配置 DataNode 和 TaskTracker 的角色,负责分布式数据存储以及任务的执行。

 

Linux 服务器配置信息

 

[root@localhost ~]# uname -a

Linux localhost.localdomain2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64GNU/Linux

[root@localhost ~]# free

total used free shared buffers cached

Mem: 2054828 1928908 125920 0 67940 95796

-/+ buffers/cache: 1765172 289656

Swap: 6291448 511492 5779956

 

创建 hadoop 用户

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.32-220.el6.x86_64#1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost ~]# free

total used free shared buffers cached

Mem: 2054828 1928908 125920 0 67940 95796

-/+ buffers/cache: 1765172 289656

Swap: 6291448 511492 5779956

 

 

1.3:创建 hadoop 用户

 

[root@localhost ~]# useradd hadoop

[root@localhost ~]# pwd hadoop

/root

[root@localhost ~]# passwd hadoop

Changing password for user hadoop.

New password:

BAD PASSWORD: it is WAY too short

BAD PASSWORD: is a palindrome

Retype new password:

Sorry, passwords do not match.

New password:

BAD PASSWORD: it is toosimplistic/systematic

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updatedsuccessfully.

[root@localhost ~]# su – hadoop

[hadoop@localhost ~]$ pwd

/home/hadoop 

这里面我设置的密码是 123456,所以比较简单,有提示,不用管,在另外两台服务器上按照这个操作创建 hadoop 用户。

修改网关

将 141 服务器的 hostname 设置为 icity0

vi /etc/sysconfig/network

Hadoop1.1.2 分布式环境搭建 

依此操作将另外两台服务器修改为 icity1 和 icity2;将此文件 scp 到另外两台服务器覆盖其上面的文件也可以。

设置完此部分,重启服务器。reboot

软件安装

Jdk 安装配置

将 jdk1.7 上传到 icity0 服务器的 /usr/java/ 目录下面,解压后如图所示:

Hadoop1.1.2 分布式环境搭建

 

解压完成后,将其 scp 到 icity1 和 icity2 服务器的 /usr/java/ 目录下面,如果不存在 java 目录,先创建此 java 目录;

执行如下命令:

su – Hadoop

scp -r /usr/java/jdk1.7.0_09hadoop@icity1:/usr/java/

scp -r /usr/java/jdk1.7.0_09 hadoop@icity2:/usr/java/

 

由于之前已经配置了无密码加密,故无需输入密码,直接执行命令即可。

 

配置 jdk 环境变量

 

在 ictiy0 服务器的 hadoop 用户下面,

su – haoop

vi .bash_profile

 

Hadoop1.1.2 分布式环境搭建

输入红圈中的内容即可。

依此操作另外两台服务器 icity1 icity2

 

使配置生效

保存并退出,执行下面命令使其配置立即生效。

source .bash_profile

依此操作另外两台服务器 icity1 icity2

 

“配置 jdk 环境变量”和“使配置生效”可以合为一步,将 icity0 配置好的 .bash_profile 文件 scpicity1icity2 /home/haoop/ 目录下面,然后 ssh icity1ssh icity2上,执行

source .bash_profile 即可。

至此,jdk配置完成。

 

Hadoop 安装

将 hadoop1.1.2 上传到 icity0 服务器的 hadoop 用户目录下面,如图所示:

Hadoop1.1.2 分布式环境搭建

 

解压并重命名为 hadoop,如图所示:

tar -zxvf hadoop-1.1.2.tar.gz

mv hadoop-1.1.2 hadoop

 

Hadoop1.1.2 分布式环境搭建

修改 Hadoop 的配置

修改 conf/hadoop-env.sh

vi hadoop-env.sh

Hadoop1.1.2 分布式环境搭建

 

保存退出。

 

 

配置 conf/core-site.xml

vi core-site.xml

增加如下内容:如图所示:

 

Hadoop1.1.2 分布式环境搭建

配置 conf/hdfs-site.xml

vi hdfs-site.xml 增加如下内容,如图所示:

 

Hadoop1.1.2 分布式环境搭建

配置 conf/mapred-site.xml

vi mapred-site.xml 增加如下内容,如图所示:

 

Hadoop1.1.2 分布式环境搭建

配置 conf/masters

vi masters 增加如下内容,如图所示:

 

Hadoop1.1.2 分布式环境搭建

配置 conf/slaves

vi slaves 增加如下内容,如图所示:

 

Hadoop1.1.2 分布式环境搭建

至此,hadoop 配置完成。

配置 Hadoop 环境变量

切换到 icity0 服务器,切换到 hadoop 用户,

配置.bash_profile 文件,增加如下内容:

vi .bash_profile

Hadoop1.1.2 分布式环境搭建

 

保存退出。

使配置生效:

source .bash_profile

 

scp hadoop 目录和文件到 slave 节点

将 icity0 上面的 hadoop 安装目录和文件 scp 到 icity1 和 icity2 服务器上面。

scp -r hadoop hadoop@icity1:/home/hadoop/

scp -r hadoop hadoop@icity2:/home/hadoop/

 

scp .bash_profile 文件到 slave 节点

.bash_profile 配置文件 scpicity1icity2hadoop /home/hadoop/目录下面,然后 ssh icity1ssh icity2上,执行 source .bash_profile 即可。具体见图:

 

Hadoop1.1.2 分布式环境搭建

自此,所有配置工作完成,下面开始启动hadoop

 

启动 / 停止 Hadoop 集群

启动 hadoop 集群

格式化

在 icity0 上 第一次启动 Hadoop, 必须先格式化 namenode

cd $HADOOP_HOME /bin

hadoop namenode –format

如图所示:

Hadoop1.1.2 分布式环境搭建

 

启动 Hadoop

cd $HADOOP_HOME/bin

./start-all.sh

如果启动过程,报错 safemode 相关的Exception

执行命令

#hadoop dfsadmin -safemode leave

然后再启动Hadoop

Hadoop1.1.2 分布式环境搭建

 

启动没有报错。启动完成。

 

 

停止 Hadoop

cd $HADOOP_HOME/bin

./stop-all.sh

 

进程检查

在 master icity0 服务器上执行 jps:存在 3 大进程:

NameNode

SecondaryNameNode

JobTracker

 

Hadoop1.1.2 分布式环境搭建

在 slave 上执行 jps:存在进程:

DataNode

TaskTracker

 

Hadoop1.1.2 分布式环境搭建

Hadoop1.1.2 分布式环境搭建

 

 

终端查看集群状态

执行命令:

hadoop dfsadmin –report

如图所示:

 

Hadoop1.1.2 分布式环境搭建

到此,整个 hadoop 的分布式安装完成。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计8673字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中