Hadoop3.1.0集群环境搭建

Hadoop3.1.0集群环境搭建

系统环境:

主机系统:win10

虚拟机系统:VM14+CentOS7

前面的文章我使用的系统是CentOS 6.7 ,由于CentOS 7 与CentOS 6 有很大变化,不能落后了,所以这次我改用 CentOS 7 系统来学习了,以后的文章也都使用CentOS 7 系统来进行。

 

今天就写一下,Hadoop 集群搭建的过程吧,学习的开始先把环境搭建好。

 

如果没有安装虚拟机的可以参考我以前的文章:

虚拟机安装教程:虚拟机安装教程

关于虚拟机的网络配置以及JDK的安装也可以参考:虚拟机的网络配置及JDK安装

虚拟机安装后或者克隆后无法上网可参考:虚拟机克隆的方法

关于Hadoop安装包下载可以参考:Apache Hadoop 下载的方法

关于CentOS 6 和 CentOS 7 的一些不同配置命令:从CentOS 6 到 CentOS 7

 

 

准备好以上内容后就可以来学习Hadoop集群的搭建了,我使用的环境是:虚拟机 CentOS 7、宿主机 win10、虚拟机软件 VMware Workstation 14,所需软件及文件可从网络上下载,我的公众号后台『大数据专栏』回复 18904 获取下载链接。

 

1.启动虚拟机

启动我们安装好的虚拟机,虚拟机已安装 JDK 1.8 并配置好网络连接。

 

 

2.环境配置

我们先来配置一下系统环境:

由于后面需要用到主机名,所以我讲一下主机名修改的命令

在 root 账户下修改主机名:执行 vi /etc/hostname 此文件的内容即为主机名,重启后生效。我这里修改主机名为 centos71 

1.png

 

修改IP和主机名映射关系:

执行:vi /etc/hosts

2.png

 

3.准备三台虚拟机

搭建Hadoop集群环境我们需要 三台机器,也就是三台虚拟机。注意已安装 JDK,未安装JDK的课参考前面教程

我们可以通过克隆得到 三台配置以及系统环境 相同的机器,前面我使用CentOS6.7 克隆之后无法上网,这次使用CentOS 7 克隆后没有出现无法上网的问题,但是有时能行有时又不行,我不知道什么原因,为了能稳定连接网络后续少点烦恼,建议还是重新配置一下克隆后的虚拟机,建议参看我之前的网络配置(请从第四段开始看):

 

下面说明了使用root账户执行的请先执行 su 切换为 root 账户,返回 普通 账户 则执行 exit;

我们仍需要修改

 『主机名、IP、以及主机名 和 IP 的映射关系』 

root 账户下执行 vi /etc/sysconfig/network-scripts/ifcfg-ensXX

3.png

4.png

关于网络配置可参考前面的文章:

配置好后保存退出,执行重置网卡命令:service network restart

由于我的笔记本配置一般,我设置开机不启动图形化界面:

systemctl set-default multi-user.target (命令行界面)

systemctl set-default graphical.target (图形化界面)

我们有了三台机器并且网络没问题,就可以进行下面的Hadoop集群环境搭建了。

为了操作方便我使用 SecureCRT 连接三个虚拟机进行操作

14.gif

我三台机器的主机名 ip分别为:

centos71 192.168.91.119

centos72 192.168.91.120

centos73 192.168.91.121

 

建议:我的笔记本配置一般,运行三个虚拟机有点吃力,我们一般人的电脑配置可能都比较低,所以我建议和我一样,我将centos71 设置启动图形化界面配置;设置 2g 内存,因为后面可能在centos71上安装IDE编写代码;centos72 和 centos73 则分配 1g 内存,设置只启动命令行界面。

 

本次搭建 Hadoop 集群环境 我将centos71作为管理节点(NameNode),centos72 和 centos73 则作为 存储节点(DataNode),如果对NameNode及DataNode没有相关概念的后面我会再补充。

注意下面操作需要在三台机器上都操作

1.

网络配置

给三台机器配置IP和主机名映射,为了后面可以使用主机名代替IP在局域网内通过主机名访问服务器。我们需要给每台机器都配置这三台ip 主机名映射。

 

root账户下 执行 vi /etc/hosts

添加另外两台机器的 ip映射 三台机器都需要配置

7.png

然后我们可以直接使用主机名代替 IP 了

8.png

 

2.

关闭防火墙

systemctl stop firewalld.service  关闭 防火墙

systemctl disable firewalld.service  禁止防火墙开机自启

 

3.

配置 SSH 免密登录

SSH 登录是指 两台机器之间通过 SSH 登录无需用户名和密码。

在 home 目录下执行:ssh-keygen -t rsa  生成密钥

9.png

执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥),默认存放在 个人home/.ssh目录下

 

10.png

 

接下来需要 将公钥拷贝到要免密登陆的目标机器上,给本机也复制一份

这里我们需要分别复制到 centos72 centos73,本机也要复制

首先进入个人home/.ssh 目录下执行:

 

ssh-copy-id centos71

ssh-copy-id centos72

ssh-copy-id centos73

 

我以复制到centos73为例:

11.png

 

同样,我们还需要分别在 centos72,centos73 这两台机器上执行:ssh-keygen -t rsa 并复制到其他两台机器上及本机,这样就配置好 SSH 免密登录了。

 

4.

下载安装Hadoop

官网下载hadoop的方法可参考:

下载好之后我们需要上传到虚拟机:

我将软件存放在 /home/apps 目录下

如果和我一样使用SecureCRT 可按alt+p 进行sftp传输,使用 put命令将hadoop安装包上传至虚拟机:

注意:

下面操作仅在centos71上操作

put 要上传文件的路径

1gif.gif

我上传到了 home 目录下,接下来需要解压到安装目录里

执行:tar -zxvf hadoop-3.1.0.tar.gz -C apps/

2GIF.gif

 

接下来我们需要修改的配置文件在

/home/zran/apps/hadoop-3.1.0/etc/hadoop

我们需要修改的5个配置文件如图:

我这里下载的是hadoop3.1.0,

以前的版本:需要把 mapred.site.xml.template 改为 mapred.site.xml  此外 我发现以前的slaves 现在改名为 workers

15.png

接下来我们需要对这 6个 文件进行配置:

1.

hadoop-env.sh

需要指定 JAVA_HOME 的路径:

我们可以通过:echo $JAVA_HOME 查看已配置好的路径

我这里配置的路径是:/home/zran/apps/jdk1.8.0_181/

13.png

执行:vi hadoop-env.sh 进行修改

找到 export JAVA_HOME= .....这行改为我们实际配置的 JAVA_HOME 路径,并去掉 # 号注释

14.png

 

2.

core-site.xml

修改core-site.xml 文件

指定hadoop所使用的文件系统,以及将centos71作为namenode节点,设置hadoop运行时文件存储目录

我的配置如下:

<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://centos71:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/zran/hadoopdata</value>
</property>
</configuration>

3.

hdfs-site.xml

指定 HDFS 副本数量

注意:Hadoop3.1的namenode节点端口从50070改为9870端口了

<configuration>
<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>
</configuration>

 

 

4.

mapred-site.xml

指定 MapReduce运行在yarn上

<configuration> 
<property>  
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
</configuration>

 

5.

yarn-site.xml

指定  ResourceManager 服务节点

<configuration>

<property>
        <name>yarn.resourcemanger.hostname</name>
        <value>centos71</value>
</property>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

</configuration>

 

6.

workers

之前我使用hadoop-2.6 这个文件名为 slaves ,现在3.0版本为 workers

在此文件添加 我们作为DataNode节点的两台台机器的主机名,如果我们只将centos71 作为 namenode不做为datanode的话,就不用在此文件中添加centos71了,我这里三台机器都做为 DataNode 节点

centos71
centos72
centos73

 

5.

将Hadoop发到另外两台机器

配置文件修改好后,我们需要将 hadoop 复制到centos72和centos73

执行命令:

scp -r /home/用户名/apps/hadoop-3.1.0/  用户名@centos72:/home/用户名/apps/

 

scp -r /home/用户名/apps/hadoop-3.1.0/ 用户名@centos73:/home/用户名/apps/

 

x.gif

等待传输完毕.......

6.

配置Hadoop 环境变量

三台机器都需要配置

root 账户下执行:vi /etc/profile

#HADOOP_HOME
export HADOOP_HOME=/home/zran/apps/hadoop-3.1.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

然后保存退出

执行 source /etc/profile 使配置生效

 

7.

初始化操作

完成以上步骤后,需要先格式化文件系统

NameNode 节点上执行,我上面的配置是将 centos71 作为 NameNodde 节点,centos72,centos73 作为 DataNode 节点

在 centos71 下执行格式化

普通账户下 执行:hdfs namenode -format

格式化后卡伊看到成功的标志:

21.png

 

直接执行 hdfs 可查看 其命令和参数

16.png

8.

启动Hadoop

satrt-all.sh 启动Hadoop集群

stop-all.sh 关闭Hadoop集群

 

验证是否启动成功:

在centos71(NameNode节点)下执行:jps 可以看到如下进程

QQ截图20180904201802.png

 

在centos72和centos73下执行:jps 可看到如下进程

11.png

 

然后我们通过浏览器:访问

http://centos71:9870

在宿主机中可通过IP代替主机名访问

http://192.168.91.119:9870

就可以看到如下界面

 

QQ截图20180904205716.png

 

12.png

配置过程中遇到的问题:

    1.我配置好网络后于是执行 service network restart 报错:

Restart inge network (via sustemctl) : Job for network.service failed because the control process exited with error code……

 

于是从网上找到答案是 MAC 地址填错了,也就是HWADDR错了,修改后成功解决

 

    2.执行 start-all.sh 报错

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

ssh 免密登录配置可能出了点问题,我重新配置就可以了

 

    3.由于我英语较烂,没去看官方文档,不知道hadoop3.1.0 版本的 NameNode 节点的默认端口改为 9870 了,我仍然在浏览器中访问50070端口,怎样都无法访问,使用jps查看进程正常, 但无法访问 NameNode 节点,后来从网上搜索才知道 端口更改了,端口改了,端口改了。。。由于这个原因,我几乎想放弃。。。本以为是系统的原因重新安装系统好多次都没用,机器是不会出错的,出错的是人是人!!!英语太重要了。。。

 

附:

官方文档链接:http://hadoop.apache.org/docs/r3.1.0/hadoop-project-dist/hadoop-common/SingleCluster.html

 

好了,就到这里了。

 

原文链接

 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值