手把手伪分布式hadoop环境搭建

准备文件:

jdk-8u65-linux-x64.rpm

CentOS-7-x86_64-DVD-1804.iso

Xshell-6.0.0101p.exe

Xftp-6.0.0095p.exe

VirtualBox-6.0.4-128413-Win.exe

hadoop-2.7.3.tar.gz     下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/

1、安装XShell,Xftp,下载地址:https://blog.csdn.net/qq_31362105/article/details/80706750

或者网盘:https://pan.baidu.com/s/1QLcVfSoFI2hRELc4yObCcw      提取码:w1kw

2、安装virtualBox,并在virtualBox中安装centos系统

           virtualBox中安装centos系统步骤:

点击“下一步”,点击“创建”,点击“下一步”

点击“下一步”,一般硬盘要很大,不过这里,直接点击“创建”

这样的话,虚拟机已经创建好,接下来,要修改些配置,首先修改显示,否则安装过程中看不到鼠标

修改网络中的连接方式为“仅主机(Host-Only)网络”,否则后面ping不通

接下来,将CentOS-7-x86_64-DVD-1804.iso的镜像加载进光盘中,这样虚拟机就会从这里安装了。

完成后,直接启动,启动后检查磁盘那一步可以按ESC跳过

点击安装位置,然后点击“完成”,然后点击“软件选择”,选择“基础设施服务器”,点击“完成”,等待一会儿,就可以开始安装了。

3、配置网关和ipv4地址,使得虚拟机能够与主机相连。

(1)查看ip:ifconfig

网卡:enp0s3

能在主机的控制面板上看到多了一个虚拟网卡:

 

这个网卡的IPv4地址:192.168.56.1(主机ip地址)           子网掩码:255.255.255.0

 

(2)设置、修改IP地址

1、让IP地址永久生效,需编辑网卡配置文件

2、vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

       说明一下这个文件:

              DEVICE=enp0s3 网卡对应的设备别名,如ifcfg-enp0s3为第一块网卡

              BOOTPROTO=static  网卡获得ip地址的方式

                     static  静态ip地址        dhcp  通过dhcp协议获取ip   

                     bootip  通过bootp协议获得的ip地址

              BROADCAST=192.168.0.255      子网广播地址

              GATEWAY=192.168.1.1      默认网关

              HWADDR=00:50:56:8E:47:EE      网卡物理地址

              IPADDR=192.168.1.117      网卡IP地址

              IPV6INIT=no      是否启用IPV6

              IPV6_AUTOCONF=no     

              NETMASK=255.255.255.0      网卡对应网络掩码

              NETWORK=192.168.1.0      网卡对应的网络地址,也就是所属网段

              ONBOOT=yes      系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备。默认设置为yes。

              TYPE和UUID就是网卡的类型。

              3、打开上面的文件后,删除里面的东西,添加:

                     IPADDR=192.168.56.100      虚拟机的IP地址

                     NETMASK=255.255.255.0

              保存退出。

(3)设置网关,打开文件 vim /etc/sysconfig/network,输入:

       NETWORKING=yes      表示系统是否使用网络,yes为是,no为否。

       GATEWAY=192.168.56.1      设置虚拟机连接的网关的IP地址

       保存退出。

(4)更改虚拟机名字为master,并重启网络服务。

       hostnamectl set-hostname master

       systemctl restart network  或者 service network restart

(5)查看网络是否设置好:先linux ping windows看看:ping 192.168.56.1;然后windows ping linux看看

       本人这里遇到过一个问题:就是ping不通。解决方法:关闭centos,然后点击设置,在网络中设置网卡1为如下,设置好后再开机,就能ping通了。可以看看这个博客https://blog.csdn.net/dkfajsldfsdfsd/article/details/79441874

如果windows能够ping通linux,而linux不能ping通windows,原因是windows的防火墙开启了,关闭防火墙即可。

4、利用XShell远程登录master

(1)运行xshell,点击文件—新建,按照如下设置

双击master,会自动连接,然后点击接受并保存

输入虚拟机master的登录用户名root

然后输入root用户的密码

如果发生了下图中蓝色方框的变化,则说明远程登录成功。

5、配置hadoop环境

(1)利用XShell中的Xftp将安装包jdk.rpm和hadoop-2.7.3.tar.gz放置到虚拟机master的/usr/local路径下。

(2)在xshell远程连接到的虚拟机master的root用户下,切换到/usr/local路径下,对两个安装包进行解压。

       rpm –ivh jdk.rpm

jdk解压后会在/usr/java路径下多一个jdk文件,或者输入命令java,如果出现帮助信息,则表明安装成功。

接下来,解压安装包hadoop-2.7.3.tar.gz,

tar –xvf hadoop-2.7.3.tar.gz

hadoop解压后会在/usr/local路径下多出一个hadoop-2.7.3的文件,更改文件名为hadoop,然后更改一下hadoop的配置文件hadoop-env.sh(配置hadoop的运行环境,告诉hadoop jdk的路径,因为hadoop是java开发出来的)

       cd hadoop/etc/hadoop/

       vim hadoop-env.sh    在里面将export JAVA_HOME=$(JAVA_HOME)改成export JAVA_HOME=/usr/java/default

然后将hadoop的执行环境添加到PATH中,vim /etc/profile,添加export PATH=$PATH:/usr/local/Hadoop/bin:/usr/local/Hadoop/sbin,保存关闭文件,运行一下这个文件确定hadoop设置好,source /etc/profile,然后运行命令hadoop,如果出现帮助信息,说明安装好。

(3)配置好后,在XShell中输入shutdown now关闭虚拟机master。

6、搭建另外3台服务器slave1、slave2和slave3

(1)在已创建的虚拟机master上直接复制就行。首先右键—复制,点下一步,然后选择完全复制,按照这个步骤复制3台。

(2)启动slave1、slave2和slave3,因为是从虚拟机master上复制来的,所以要更改主机名、IP地址

       hostnamectl set-hostname slave1

       vim /etc/sysconfig/network-scripts/ifcfg-enp0s3中修改IPADD=192.168.56.101

       service network restart  重启网络服务

       ping 192.168.56.1  如果能ping通,说明修改成功。

      如果ping不通的话(ping时碰到destination host unreachable的问题),可能是虚拟机网络设置的问题,看这个博客https://blog.csdn.net/mrhengbing/article/details/56015535

(3)在XShell中新建slave1、slave2和slave3,并实现远程登录。

7、配置名字解析,使得master、slave1、slave2和slave3之间互通。

(1)关闭4个机器的防火墙并停止。

       systemctl stop firewalld

       sytemctl disable firewalld

8、启动hadoop

       将机器master启动hadoop的namenode,其它机器启动hadoop的datanode。

       写一个配置文件,首先切换到 cd /usr/local/hadoop/etc/hadoop/,找到core-site.xml文件进行配置,这个文件告诉所有salve机器管理者master机器的配置信息。同样,在slave机器中也必须配置这个文件,因为slave机器必须得知道自己被谁管理。

       vim core-site.xml

       插入内容:

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

       保存并退出。

在master上启动namenode

格式化namenode:hdfs namenode –format   要注意namenode和datanode的一致性,即:格式化namenode之后也应该格式化datanode,否则会出错,具体做法是每次format前,清空一下/tmp下的所有目录。(有的博客说,只需要第一次开启namenode和datanode时进行格式化操作)

       如果格式化出错,发生master: unknow error。那么说明机器之间只认IP地址,为了认识之间的机器名字,master和slave中修改配置文件/etc/hosts

       vim /etc/hosts

       添加内容:

              192.168.56.100 master

192.168.56.101 slave1

192.168.56.102 slave2

192.168.56.103 slave3

       保存并退出。

启动namenode

       hadoop-daemon.sh start namenode      会出现日志输出路径

       jps 用于查看进程是否启动namenode

启动datanode

       hadoop-daemon.sh start datanode      会出现日志输出路径

       jps 用于查看进程是否启动datanode

在master上利用hdfs dfsadmin -report能够看到一些基本情况,除了这种方式外,通过netstat -nultp查看端口监听情况,根据这个打开http://192.168.56.100:50070也可以看到一些基本情况。

注意:如果发现datanode和namenode都启动了,但是master里通过hdfs dfsadmin -report的输出没有slave信息(http://192.168.56.100:50070里也能看出,如下图),出现这个问题是因为/etc/hosts中没有添加master和slave对应的地址名(和这个问题是一致的master: unknow error,如上述),只要配置完就可以了。

 

9、至此,伪分布式hadoop环境搭建完毕。

 

 

 

 

 

 

 

发布了97 篇原创文章 · 获赞 40 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/NOT_GUY/article/details/88068855