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

Hadoop2.7完全分布式集群搭建以及任务测试

372次阅读
没有评论

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

要想深入的学习 Hadoop 数据分析技术,首要的任务是必须要将 Hadoop 集群环境搭建起来,本文主要讲述如何搭建一套 Hadoop 完全分布式集群环境。

环境配置:2 台 64 位的 RedHat6.5 +  1 台 64 位 CentOS6.9 + Hadoop2.7 + java7

一、先配置服务器的主机名

Namenode 节点对应的主机名为 master

Datanode 节点对应的主机名分别为 node1、node2

1、在每一台服务器上执行 vim /etc/hosts,先删除 hosts 里面的内容,然后追加以下内容:

192.168.15.135  master
172.30.25.165  node1
172.30.25.166  node2

2、在每一台服务器上执行 vim  /etc/sysconfig/network,修改红色部分的内容,对应上面所说的 hostname,对于 master 节点那么 hostname 就为 master

NETWORKING=yes
HOSTNAME= master
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no

类似的,在 node1 服务器节点上应该为:

NETWORKING=yes
HOSTNAME= node1
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no

类似的,在 node2 服务器节点上应该为:

NETWORKING=yes
HOSTNAME= node2
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no

这两步的作用很关键,如果配置不成功,进行分布式计算的时候有可能找不到主机名

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

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

二、安装 SSH,并让 master 免验证登陆自身服务器、节点服务器

1、执行下面命令,让 master 节点能够免验证登陆自身服务器

ssh-keygen -t dsa -P” -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys
exportHADOOP\_PREFIX=/usr/local/hadoop

HADOOP_PREFIX 表示自己安装的 hadoop 路径

2、让主结点 (master) 能通过 SSH 免密码登录两个子结点(slave)

为了实现这个功能,两个 slave 结点的公钥文件中必须要包含主结点的公钥信息,这样当 master 就可以顺利安全地访问这两个 slave 结点了。操作过程如下:

在 node1 上执行

 scp root@master:~/.ssh/id_dsa.pub  ~/.ssh/master_dsa.pub
cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys

在 node2 上执行

scp root@master:~/.ssh/id_dsa.pub  ~/.ssh/master_dsa.pub
cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys

如上过程显示了 node1 结点通过 scp 命令远程登录 master 结点,并复制 master 的公钥文件到当前的目录下,这一过程需要密码验证。接着,将 master 结点的公

钥文件追加至 authorized_keys 文件中,通过这步操作,如果不出问题,master 结点就可以通过 ssh 远程免密码连接 node1 结点了。在 master 结点中操作如:

Hadoop2.7 完全分布式集群搭建以及任务测试

当然值得注意的是:首次登陆是需要确认的,node1 结点首次连接时需要,“YES”确认连接,这意味着 master 结点连接 node1 结点时需要人工询问,无法自动连接,输入 yes 后成功接入,紧接着注销退出至 master 结点。要实现 ssh 免密码连接至其它结点,还差一步,只需要再执行一遍 ssh node1,如果没有要求你输入”yes”,就算成功了

三、下载并解压 hadoop 安装包,配置 hadoop

1、关于安装包的下载就不多说了,不过可以提一下目前我使用的版本为 hadoop-2.7.1

2、配置 namenode, 修改 site 文件

下面开始修改 hadoop 的配置文件了,即各种 site 文件,文件存放在 etc/Hadoop/ 下,主要配置 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 这三个文件。

这里我只把我的实例贴出来,经供参考,更多详细配置请参照官方文档

core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
    </property>
</configuration>

hdfs-site.xml:

<configuration>
    <property>
      <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
</configuration>

mapred-site.xml:

<configuration>
    <property>
      <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

yarn-site.xml:

<configuration>
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
    <property>                                                             
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
      <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
      <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
      <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

3、配置 namenode, 修改 env 环境变量文件

配置之前要说的话:你必须确保你已经安装了 java6 或者 java7,并且 java 的环境变量已经配置好,由于本文的重点不在此,故不详细说明,我系统 java 的环境变量为 /usr/java/jdk1.7.0_71

所以讲 hadoop-env.sh、mapred-env.sh、yarn-env.sh 这几个文件中的 JAVA_HOME 改为 /usr/java/jdk1.7.0_71,如下图所示:

Hadoop2.7 完全分布式集群搭建以及任务测试

文件中的其他一些配置项,请参考官方文档

4、slaves 文件配置, 增加如下两行内容:

node1
node2

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-02/128730p2.htm

四、向节点服务器 node1、node2 复制我们刚刚在 master 服务器上配置好的 Hadoop

scp–r hadoop  root@node1:/usr/local/hadoop
scp–r hadoop  root@node2:/usr/local/hadoop

五、格式化 namenode,在 master 节点上执行如下命令:

bin/hdfs namenode-format

Hadoop2.7 完全分布式集群搭建以及任务测试

只要出现“successfully formatted”就表示成功了。

六、启动 hadoop

这一步也在主结点 master 上进行操作:

Hadoop2.7 完全分布式集群搭建以及任务测试

七、用 jps 检验各后台进程是否成功启动

master

Hadoop2.7 完全分布式集群搭建以及任务测试

node1

Hadoop2.7 完全分布式集群搭建以及任务测试

node2

Hadoop2.7 完全分布式集群搭建以及任务测试

八、向 hadoop 集群系统提交第一个 mapreduce 任务

到这里为止我们已经完成了一个真正意义上的 hadoop 完全分布式环境搭建,下面我们要像这个集群系统提交第一个 mapreduce 任务

1、bin/hdfs dfs -mkdir /tmp 在虚拟分布式文件系统上创建一个测试目录 tmp

2、bin/hdfs dfs -copyFromLocal ./ LICENSE.txt /tmp 将当前目录下的 LICENSE 文件复制到虚拟分布式文件系统中

3、bin/hdfs dfs-ls /tmp 查看文件系统中是否存在我们所复制的文件

下面这张图显示了一系列的操作过程

Hadoop2.7 完全分布式集群搭建以及任务测试

3、运行如下命令向 hadoop 提交单词统计任务

bin/hadoop jar./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount/tmp/LICENSE.txt /tmp-output

最后会显示一个运算结果:

Hadoop2.7 完全分布式集群搭建以及任务测试

到这里为止,你已经完成了第一个任务的分布式计算

注意:在你重新格式化分布式文件系统之前,需要将文件系统中的数据先清除,否则,datanode 将创建不成功,这一点很重要

关于一些常见的端口

master:8088 能显示你的集群状态

master: 50070 能进行一些节点的管理

除此之外,还有很多有用的端口,当然这也是和你的配置文件相关的,最后,贴上两张图片:

Hadoop2.7 完全分布式集群搭建以及任务测试Hadoop2.7 完全分布式集群搭建以及任务测试

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

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-02/128730.htm

要想深入的学习 Hadoop 数据分析技术,首要的任务是必须要将 Hadoop 集群环境搭建起来,本文主要讲述如何搭建一套 Hadoop 完全分布式集群环境。

环境配置:2 台 64 位的 RedHat6.5 +  1 台 64 位 CentOS6.9 + Hadoop2.7 + java7

一、先配置服务器的主机名

Namenode 节点对应的主机名为 master

Datanode 节点对应的主机名分别为 node1、node2

1、在每一台服务器上执行 vim /etc/hosts,先删除 hosts 里面的内容,然后追加以下内容:

192.168.15.135  master
172.30.25.165  node1
172.30.25.166  node2

2、在每一台服务器上执行 vim  /etc/sysconfig/network,修改红色部分的内容,对应上面所说的 hostname,对于 master 节点那么 hostname 就为 master

NETWORKING=yes
HOSTNAME= master
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no

类似的,在 node1 服务器节点上应该为:

NETWORKING=yes
HOSTNAME= node1
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no

类似的,在 node2 服务器节点上应该为:

NETWORKING=yes
HOSTNAME= node2
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no

这两步的作用很关键,如果配置不成功,进行分布式计算的时候有可能找不到主机名

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

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

二、安装 SSH,并让 master 免验证登陆自身服务器、节点服务器

1、执行下面命令,让 master 节点能够免验证登陆自身服务器

ssh-keygen -t dsa -P” -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub>> ~/.ssh/authorized_keys
exportHADOOP\_PREFIX=/usr/local/hadoop

HADOOP_PREFIX 表示自己安装的 hadoop 路径

2、让主结点 (master) 能通过 SSH 免密码登录两个子结点(slave)

为了实现这个功能,两个 slave 结点的公钥文件中必须要包含主结点的公钥信息,这样当 master 就可以顺利安全地访问这两个 slave 结点了。操作过程如下:

在 node1 上执行

 scp root@master:~/.ssh/id_dsa.pub  ~/.ssh/master_dsa.pub
cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys

在 node2 上执行

scp root@master:~/.ssh/id_dsa.pub  ~/.ssh/master_dsa.pub
cat~/.ssh/master_dsa.pub >> ~/.ssh/authorized_keys

如上过程显示了 node1 结点通过 scp 命令远程登录 master 结点,并复制 master 的公钥文件到当前的目录下,这一过程需要密码验证。接着,将 master 结点的公

钥文件追加至 authorized_keys 文件中,通过这步操作,如果不出问题,master 结点就可以通过 ssh 远程免密码连接 node1 结点了。在 master 结点中操作如:

Hadoop2.7 完全分布式集群搭建以及任务测试

当然值得注意的是:首次登陆是需要确认的,node1 结点首次连接时需要,“YES”确认连接,这意味着 master 结点连接 node1 结点时需要人工询问,无法自动连接,输入 yes 后成功接入,紧接着注销退出至 master 结点。要实现 ssh 免密码连接至其它结点,还差一步,只需要再执行一遍 ssh node1,如果没有要求你输入”yes”,就算成功了

三、下载并解压 hadoop 安装包,配置 hadoop

1、关于安装包的下载就不多说了,不过可以提一下目前我使用的版本为 hadoop-2.7.1

2、配置 namenode, 修改 site 文件

下面开始修改 hadoop 的配置文件了,即各种 site 文件,文件存放在 etc/Hadoop/ 下,主要配置 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 这三个文件。

这里我只把我的实例贴出来,经供参考,更多详细配置请参照官方文档

core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
    </property>
</configuration>

hdfs-site.xml:

<configuration>
    <property>
      <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
</configuration>

mapred-site.xml:

<configuration>
    <property>
      <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

yarn-site.xml:

<configuration>
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
    <property>                                                             
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
      <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
      <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
      <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

3、配置 namenode, 修改 env 环境变量文件

配置之前要说的话:你必须确保你已经安装了 java6 或者 java7,并且 java 的环境变量已经配置好,由于本文的重点不在此,故不详细说明,我系统 java 的环境变量为 /usr/java/jdk1.7.0_71

所以讲 hadoop-env.sh、mapred-env.sh、yarn-env.sh 这几个文件中的 JAVA_HOME 改为 /usr/java/jdk1.7.0_71,如下图所示:

Hadoop2.7 完全分布式集群搭建以及任务测试

文件中的其他一些配置项,请参考官方文档

4、slaves 文件配置, 增加如下两行内容:

node1
node2

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-02/128730p2.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7959280
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...