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

Ubuntu Hadoop 全分布式集群搭建

126次阅读
没有评论

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

1 集群介绍

1.1 Hadoop 简介

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 分布式集群的主要任务。

1.2 环境说明

测试环境一共 3 台:

192.168.75.67 master1

192.168.75.68 master2

192.168.75.69 master3

三台机器参数:4VCPU 8GB 内存 200G 硬盘

linux 操作系统版本:

Ubuntu Hadoop 全分布式集群搭建

1.3 网络配置

Hadoop 集群要按照 1.2 小节表格所示进行配置。下面的例子我们将以 Master 机器为例,即主机名为 ”master1″,IP 为 ”192.168.75.67″ 进行一些主机名配置的相关操作。其他的 Slave 机器以此为依据进行修改。

修改主机名

Ubuntu Hadoop 全分布式集群搭建

本例子将主机名定位 master1

Ubuntu Hadoop 全分布式集群搭建

配置 hosts 文件(必须)

“/etc/hosts” 这个文件是用来配置主机将用的 DNS 服务器信息,是记载 LAN 内接续的各主机的对应 [HostName 和 IP] 用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的 IP 地址。

Ubuntu Hadoop 全分布式集群搭建

进行连接测试:

Ubuntu Hadoop 全分布式集群搭建

master3 的连接测试与上述 master2 的测试一致。

2、SSH 无密码验证配置

Hadoop 运行过程中需要管理远端 Hadoop 守护进程,在 Hadoop 启动以后,NameNode 是通过 SSH(Secure Shell)来启动和停止各个 DataNode 上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置 SSH 运用 无密码公钥认证的形式,这样 NameNode 使用 SSH 无密码登录并启动 DataName 进程,同样原理,DataNode 上也能使用 SSH 无密码登录到 NameNode。

2.1 安装和启动 SSH 协议

安装 ssh、rsync。

安装 SSH 协议

apt-get install ssh

apt-get install rsync

(rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件); 确保所有的服务器都安装,上面命令执行完毕,各台机器之间可以通过密码验证相互登陆。

2.2 配置 Master 无密码登录所有 Salve

1)SSH 无密码原理

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

2)Master 机器上生成密码对

Ubuntu Hadoop 全分布式集群搭建

ssh-keygen -t rsa -P ‘ ‘ -f ~/.ssh/id_rsa

这条命令是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa 和 id_rsa.pub,默认存储在 ”~/.ssh” 目录下。接着在 Master 节点上做如下配置,把 id_rsa.pub 追加到授权的 key 里面去。

Ubuntu Hadoop 全分布式集群搭建

验证是否成功。

ssh localhost 

相关阅读

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

3) 设置 SSH 配置

把公钥复制所有的 Slave 机器上。使用下面的命令格式进行复制公钥:scp ~/.ssh/id_rsa.pub 远程用户名 @远程服务器 IP:~/

例如:Ubuntu Hadoop 全分布式集群搭建

这里要把公钥复制到所有的 slave 机器上(本例子就是 master2、master3)

2)追加到授权文件 ”authorized_keys”

到目前为止 Master.Hadoop 的公钥也有了,文件夹 ”.ssh” 也有了,且权限也修改了。这一步就是把 master1 的公钥追加到 master2 的授权文件 ”authorized_keys” 中去。使用下面命令进行追加并修改 ”authorized_keys” 文件权限:Ubuntu Hadoop 全分布式集群搭建

5)在 master1 使用 SSH 无密码登录 master2

Ubuntu Hadoop 全分布式集群搭建

3.1 安装 hadoop

下载并且解压 hadoop 压缩包(本文用到的 hadoop 版本是 hadoop-1.2.1),下载后进行解压,解压的命令是:

tar -zvxf hadoop-1.2.1.tar.gz

Hadoop 的安装路径添加到 ”/etc/profile” 中

Ubuntu Hadoop 全分布式集群搭建

运行 source /etc/profile

3.2 配置 hadoop

1)配置 hadoop-env.sh

Ubuntu Hadoop 全分布式集群搭建

Hadoop 配置文件在 conf 目录下,之前的版本的配置文件主要是 Hadoop-default.xml 和 Hadoop-site.xml。由于 Hadoop 发展迅速,代码量急剧增加,代码开发分为了 core,hdfs 和 map/reduce 三部分,配置文件也被分成了三个 core- site.xml、hdfs-site.xml、mapred-site.xml。core-site.xml 和 hdfs-site.xml 是站在 HDFS 角度上配置文件;core-site.xml 和 mapred-site.xml 是站在 MapReduce 角度上配置文件。

2)配置 core-site.xml 文件

首先在 hadoop 安装目录下创建 tmp 文件夹

Ubuntu Hadoop 全分布式集群搭建

修改 Hadoop 核心配置文件 core-site.xml,这里配置的是 HDFS 的地址和端口号。

 <?xml version=”1.0″?>
  <?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2014-02/configuration.xsl”?>
 
  <!– Put site-specific property overrides in this file. –>
 
  <configuration>
      <property>
          <name>hadoop.tmp.dir</name>
      <value>/root/gy/hadoop-1.2.1/tmp</value>
      </property>
      <property>
          <name>fs.default.name</name>
            <value>hdfs://master1:9000</value>
      </property>
 </configuration>

3)配置 hdfs-site.xml 文件

<?xml version=”1.0″?>
  <?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2014-02/configuration.xsl”?>
 
  <!– Put site-specific property overrides in this file. –>
 
  <configuration>
      <property>
          <name>dfs.replication</name>
          <value>2</value>
      </property>
  </configuration>

 4)配置 mapred-site.xml 文件

Ubuntu Hadoop 全分布式集群搭建

5)配置 masters 文件

Ubuntu Hadoop 全分布式集群搭建

将每台 hadoop 机器上的 masters 文件内容填入主节点名称

6)配置 slaves 文件

Ubuntu Hadoop 全分布式集群搭建

值得说明和注意的是:一定一定要把每台机器上的配置都是一样的,意思是说上述的 master1 master2 master3 的 core-site.xml、hdfs-site.xml、mapred-site.xml 必须是一样。

1 集群介绍

1.1 Hadoop 简介

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 分布式集群的主要任务。

1.2 环境说明

测试环境一共 3 台:

192.168.75.67 master1

192.168.75.68 master2

192.168.75.69 master3

三台机器参数:4VCPU 8GB 内存 200G 硬盘

linux 操作系统版本:

Ubuntu Hadoop 全分布式集群搭建

1.3 网络配置

Hadoop 集群要按照 1.2 小节表格所示进行配置。下面的例子我们将以 Master 机器为例,即主机名为 ”master1″,IP 为 ”192.168.75.67″ 进行一些主机名配置的相关操作。其他的 Slave 机器以此为依据进行修改。

修改主机名

Ubuntu Hadoop 全分布式集群搭建

本例子将主机名定位 master1

Ubuntu Hadoop 全分布式集群搭建

配置 hosts 文件(必须)

“/etc/hosts” 这个文件是用来配置主机将用的 DNS 服务器信息,是记载 LAN 内接续的各主机的对应 [HostName 和 IP] 用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的 IP 地址。

Ubuntu Hadoop 全分布式集群搭建

进行连接测试:

Ubuntu Hadoop 全分布式集群搭建

master3 的连接测试与上述 master2 的测试一致。

2、SSH 无密码验证配置

Hadoop 运行过程中需要管理远端 Hadoop 守护进程,在 Hadoop 启动以后,NameNode 是通过 SSH(Secure Shell)来启动和停止各个 DataNode 上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置 SSH 运用 无密码公钥认证的形式,这样 NameNode 使用 SSH 无密码登录并启动 DataName 进程,同样原理,DataNode 上也能使用 SSH 无密码登录到 NameNode。

2.1 安装和启动 SSH 协议

安装 ssh、rsync。

安装 SSH 协议

apt-get install ssh

apt-get install rsync

(rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件); 确保所有的服务器都安装,上面命令执行完毕,各台机器之间可以通过密码验证相互登陆。

2.2 配置 Master 无密码登录所有 Salve

1)SSH 无密码原理

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

2)Master 机器上生成密码对

Ubuntu Hadoop 全分布式集群搭建

ssh-keygen -t rsa -P ‘ ‘ -f ~/.ssh/id_rsa

这条命令是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa 和 id_rsa.pub,默认存储在 ”~/.ssh” 目录下。接着在 Master 节点上做如下配置,把 id_rsa.pub 追加到授权的 key 里面去。

Ubuntu Hadoop 全分布式集群搭建

验证是否成功。

ssh localhost 

相关阅读

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

4. 启动和验证

1)格式化 HDFS 文件系统

Ubuntu Hadoop 全分布式集群搭建

2)启动 Hadoop

关闭防火墙Ubuntu Hadoop 全分布式集群搭建

启动 hadoop

调用命令:start-all.sh

Ubuntu Hadoop 全分布式集群搭建

检查一下是否安装正确

Ubuntu Hadoop 全分布式集群搭建

主节点启动了 Namenode 和 JobTracker,说明安装正确了,大功告成!

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

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