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

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

102次阅读
没有评论

共计 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、短信等云产品特惠热卖中