Hadoop基于VMware的完全分布式环境搭建笔记

Hadoop完全分布模式环境搭建

Hadoop的环境搭建一共3种模式,单机模式,伪分布模式,完全分布模式,本次实验搭建采用完全分布模式+虚拟机对Hadoop基本环境进行搭建。

       本次环境搭建的配置如下:

Hadoop版本

Hadoop 2.10 | hadoop-2.10.0.tar.gz

Java 版本

JDK 1.8 | jdk-8u211-linux-x64.tar.gz

Linux 版本

CentOS7-1908 | CentOS-7-x86_64-DVD-1908.iso

虚拟机配置VMware15

本次实验一共3台虚拟机,采用NAT模式链接

虚拟机角色名

主机名

IP

CPU

内存

硬盘

Master

hadoop1

192.168.100.101

2

2G

20G

Slave

hadoop2

192.168.100.102

2

2G

20G

Slave

hadoop3

192.168.100.103

2

2G

20G

 

一、虚拟机创建

(1)虚拟网络配置

1、虚拟网络配置,修改VMnet8(NAT模式)子网为所需要的IP网段,这里修改为192.168.100.0

2、进行NAT设置,将网关设置为192.168.100.2

3、修改DHCP设置,将DHCP的可分配的IP池范围进行修改,也可以不使用DHCP服务

4、在Windows系统中配置网络适配器,在“控制面板\网络和 Internet\网络连接”中找到VMnet8,在其属性中进行如下修改:

(2)虚拟机创建

在虚拟机自定义硬件中

  • 内存为2G
  • 处理器为数量1,内核2
  • 网络适配器,选择自定义VMnet8(NAT模式)
  • 移除声卡,打印机等没必要的硬件配置

(3)安装CentOS7

1、在开始安装前,按TAB键,在quite前键入

net.ifnames=0 biosdevname=0

修改网络适配器名称为eth0

此步也可以跳过,后续需要先查看到网络适配器名称

2、为了快速搭建环境,CentOS的硬盘采用自动分配即可

语言选择为中文

 

开始安装并等待安装完成

(4)配置网络

1、配置IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

如果之前跳过了网络适配器名修改,需要先到相应目录下查找

根据下图进行修改:

其实前面安装的时候已经修改了一些,这里只需要修改BOOTPROTO=static即可

 

2、重启网络服务

service network restart

 

3、测试ping www.baidu.com

证明网络没有问题

 

4、如果ping不通

请查看windows的服务中的VMware NAT Service有没有运行

 

5.修改hosts

vi /etc/hosts

 

 

(5)安装JDK

这里先进行hadoop1的JDK安装,然后再进行克隆,不然直接克隆三台机器需要分别安装

1.将JDK安装包通过XFtp或者其他的文件传输器上传到虚拟机中

这里将jdk-8u211-linux-x64.tar.gz传到了/opt/目录下,其他目录也可以传输,看个人

2.解压压缩包

命令:tar -zxvf  jdk-8u211-linux-x64.tar.gz

3.重命名java

命令:mv jdk-8u211 java

4.配置系统变量

命令:vi /etc/profile

在最后插入如图

5.重新加载profile

命令:source /etc/profile

6.验证安装

命令:java -version

(6)克隆主机

这里通过克隆的方式创建出hadoop2和hadoop3两台虚拟主机

1、拍摄当前状态的快照

可以保留当前主机的一些状态和配置的副本

在VMware中找到hadoop1的主机,右键快照,创建一个快照

2、克隆主机

右键hadoop1的主机——管理——克隆——现有快照——完整克隆

接下来就是一些存储位置和硬件的配置,不做赘述。克隆完成后

(7) 修改克隆主机名和IP地址

这里的操作,两台克隆主机均执行

1.修改主机名

命令:hostnamectl set-hostname 新的主机名

2.查看修改后主机名是否生效

命令:hostname

3.修改IP地址

命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0

把地址改成相应的地址即可,然后重新启动网络服务

2.验证

当两台虚拟主机均修改完成后,进行网络互通测试

主要命令:ping 主机名

二、SSH免密登录

       Hadoop在节点之间进行通信通过是SSH协议,但每一次进行SSH协议通信过程,有两种验证模式,一是密码验证,二是选择免密验证,为了Hadoop运行期间没有密码验证,需要进行配置免密验证,SSH免密验证的原理在于非对称加密中的公钥与私钥的关系,具体的原理此处不做赘述,实际操作就是将主机的公钥保存到另一台主机上即可。

       这里以Hadoop1向hadoop2发送公钥,则hadoop1可以对hadoop2进行免密登录为例,后续三台机器操作重复,确保互相能够免密登录即可。

(1)生成密钥对

命令: ssh-keygen -t rsa
命令: cd /root/.ssh

打开 .ssh目录并查看刚生成的密钥对

Id_rsa 表示私钥

Id_rsa 表示公钥

起初文件夹内是没有authorized_keys文件的,这里是已经做过了所以有显示

(2)发送公钥到hadoop2

命令:scp id_rsa.pub hadoop2://opt/hadoop1_pub_key

这里通过SCP id_rsa.pub 公钥文件传输到hadoop2/opt目录下,并命名为hadoop1_pub_key

等待传输完成即可,期间需要进行一个ssh密码登录

进入Hadoop2进行查看

(3)在hadoop2中将刚传输的公钥进行注册

命令:cat Hadoop1_id_rsa /root/.ssh/authorized_keys

将上面的hadoop1的公钥内容追加到authorize_keys文件中

命令:cat /root/.ssh/authorized_keys

查看是否添加成功

这里显示添加成功了

(4)在Hadoop1中对hadoop2进行免密ssh登录

命令:ssh hadoop2

成功登录,接下来就是三台机器各自生成公钥发送给其他主机,然后其他主机再进行注册公钥即可。

命令:exit

登出ssh链接

 

三、Hadoop安装及配置

这里的Hadoop安装以hadoop1主机为例,安装配置完成后,直接通过SCP将hadoop文件进行分发传输到其他主机即可。

本文将hadoop安在了/opt目录下,其他目录也可以,看个人

(1)解压Hadoop压缩包并重命名

命令:tar -zxvf hadoop的压缩包名
命令: mv 解压后的hadoop名称 新的hadoop名称

(2)配置环境变量并验证

命令:vi /etc/profile

添加如下内容:

export HADOOP_HOME=/opt/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

命令:source /etc/profile

重新加载profile文件

命令:hadoop version

验证hadoop是否安装成功

(3)hadoop配置

1、进入到hadoop配置文件夹下查看要修改如下文件

命令:cd /opt/hadoop/etc/hadoop

依次进行标注的文件的修改:

Core-site.xml是配置Hadoop核心信息的配置文件

Hdfs-site.xml是配置HDFS文件系统的配置文件

Mapred-site.xml是配置MapReduce的配置文件,这里有一个.template文件,复制命名为mapred-site.xml 文件即可

Yarn-site.xml 是配置Yarn资源管理组件的配置文件

Slaves 是注册其他节点主机名的文件

这些文件统一都用 vi修改即可

1.Core-site.xml添加如下:

这里主要配置了哪台主机为namenode,程序主服务主机

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://namenode节点主机名:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:临时文件的存储路径</value>
    </property>
</configuration>

2.hdifs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:namenode目录存储路径 </value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:datanode目录存储路径</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>secondary-namenode主机名:9001</value>
    </property>
</configuration>

3.mapred-site.xml

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

4.yarn-site.xml

<configuration>
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>namenode主机名</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

5.slaves

添加两个datanode节点主机名即可

6.配置Hadoop的jdk环境

命令:vi hadoop-env.sh

找到下图的内容,进行修改为本机jdk的目录

(4)传输修改后Hadoop文件到其他机器

注意先退出hadoop目录

命令:scp -r /opt/hadoop @主机名:/存放目录

这里是将hadoop文件夹直接发送到hadoop3主机/opt/hadoop中

等待发送成功后,添加hadoop的环境变量

命令vi /etc/profile,此处不再赘述

(5)启动并验证

在Hadoop1中执行

命令:hadoop namenode -format

格式化hdfs文件系统

命令:start-all.sh

启动hadoop

命令:jps

三台机器分布输入jps命令查看hadoop是否启动成功

在浏览器输入:http://主机名:50070

至此hadoop安装结束,接着可以编写MapReduce程序,然后打成jar包进行测试运行即可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值