一、先安装jdk:

官网下载linux版本jdk:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlhtml
本机与linux虚拟机之间文件传输可以用xftp7来实现会更方便一点。Xftp7的下载可以直接官网有免费版本,输入名字和邮箱就可以获得下载网址,这里直接贴出网址:https://www.netsarang.com/zh/downloading/?token=cWhOZzk1SGI1Rmx1MlVPVEo4SzRZUUBWUGlXNmFobzlQTlp1MXo1SV9aX0pR(不一定有效,无效的话按步骤获取就行)Xshell效果和Xftp7差不多这里一并贴出下载网址:https://www.netsarang.com/zh/downloading/?token=Nm9yQXAyc1lvbmNXbHA4MVdGMlI3UUBWUGlXNmFobzlQTlp1MXo1SV9aX0pR
Xftp7与linux的连接由linux的ip地址以及用户密码来完成,网上有直接的方法,这里不做说明。

1.先利用Xftp7将jdk压缩包复制到linux中/opt/java文件夹下(直接拖就好,java文件夹是自己新建的,也可以建别的)在这里插入图片描述
进入/opt/java解压压缩包:

cd /opt/java
tar -zxvf jdk-8u311-linux-x64.tar.gz

接下来配置环境变量:ls查看安装路径名字

ls

在这里插入图片描述
修改文件:vim /etc/profile在文档结尾加上:

export JAVA_HOME=/opt/java/jdk1.8.0_311
export PATH=$PATH:$JAVA_HOME/bin

更新环境变量,使配置生效:

source /etc/profile

查看java版本:java -version
在这里插入图片描述

二、克隆两台虚拟机分别设置节点

先克隆两台虚拟机为节点机:
在这里插入图片描述
安装步骤克隆出两个节点,克隆过程没有坑这里不再贴图。

分别在三台虚拟机查看三台虚拟机的ip地址ifconfig
在这里插入图片描述
若出现下面的情况,去系统工具中的设置把以太网打开:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来修改机器名称,将主机改成master:
修改主机名命令:hostname 主机名;hostname查看当前主机名

hostname master   

在这里插入图片描述
检查并修改3台虚拟机IP地址和名称,三台机器具体参数如下:

ip地址主机名
192.168.225.128master
192.168.225.130slave
192.168.225.131slave2

修改vim /etc/hosts文件,将三台机器的ip地址和主机命写进去(三台机器都要分别写入):
在这里插入图片描述

在这里插入图片描述
接着检查三台虚拟机是否ping通,以master为例,都能ping通.ping -c 3 slave
在这里插入图片描述

三、给三台机器配置秘钥

生成秘钥文件ssh-keygen -t rsa -P ''
在这里插入图片描述
查看生成的秘钥文件ls /root/.ssh
在这里插入图片描述
查看并保存其中的id_rsa.pub文件(可以先保存在一个文档里,因为要等会要合并在一个文件里):cat /root/.ssh/id_rsa.pub
在这里插入图片描述
搭建过程中三台机器最好同时开启,我不小心关了其他机器,重新打开后发现主机名没改过去,重新来了一遍,而且再开slave机器时发现网络不能正常连接出现下面的情况:
在这里插入图片描述
这种情况下,进入cd /etc/sysconfig/network-scripts/修改文件vim ifcfg-ens33,将最后一行的no改为yes
在这里插入图片描述
发现还是不行,后来发现一个帖子中有一个方法试了一下,虽然设置那里还是不行,但是可以正常联网,ip地址也正常查到了:

systemctl stop NetworkManager
systemctl disable NetworkManager

重新启动网络:

systemctl start network.service

在这里插入图片描述
然后就继续配置秘钥文件。突然想起来在终端从用户到root用户的切换用su
在这里插入图片描述
秘钥文件配置完成后新建authorized_keys 文件(三台虚拟机都要操作)touch /root/.ssh/authorized_keys编辑文件:vim /root/.ssh/authorized_keys将之前保存的id_rsa.pub文件内容合并在一起:
在这里插入图片描述
其他两个节点的文件可以借用Xftp完成(粘贴复制就行):
在这里插入图片描述
测试免密登录:ssh slaveslave为节点名根据需要更改。登录别的节点后不用的时候一定要exit退出,不然就是在别的节点操作。
在这里插入图片描述在这里插入图片描述

四、安装hadoop:

新建hadoo文件夹(三台虚拟机都需要新建hadoop文件夹):mkdir /usr/hadoop
在这里插入图片描述

用XFTP新建也可以,建完直接将hadoop文件拖进虚拟机里:
在这里插入图片描述
将hadoop压缩包复制到linux中:在这里插入图片描述
然后解压压缩包(三台机器都要解压):cd /usr/hadoop

tar -zxvf hadoop-2.10.1.tar.gz

在这里插入图片描述

接着新建几个文件,只需在master节点新建:

mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data

在这里插入图片描述
修改hadoop配置文件:
1.先进入cd /usr/hadoop/hadoop-2.10.1/etc/hadoop/修改vim core-site.xml
在这里插入图片描述

<configuration>
 <property>
  
 <name>mapred.job.tracker</name>
  
 <value>master:49001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>

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

<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>

在这里插入图片描述
2.修改hadoop-env.sh(三台都需要操作)

vim hadoop-env.sh

将export JAVA_HOME=${JAVA_HOME}改成下面的红框jdk路径(这个jdk路径就是之前安装jdk的路径)

在这里插入图片描述
3.修改hdfs-site.xml:vim hdfs-site.xml:

<configuration>
<property>
   <name>dfs.name.dir</name>
   <value>/root/hadoop/dfs/name</value>
   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/root/hadoop/dfs/data</value>
   <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>

<property>
      <name>dfs.permissions</name>
      <value>true</value>
      <description>need not permissions</description>
</property>
<configuration>

在这里插入图片描述4./新建并且修改mapred-site.xml

vim mapred-site.xml.template
vim mapred-site.xml

在/usr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template文件中的内容添加以下代码后复制到mapred-site.xml

<configuration>
 <property>
  
 <name>mapred.job.tracker</name>
  
 <value>master:49001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>

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

在这里插入图片描述

5.修改slave文件,删去原本的内容,改成slave;slave2。
在这里插入图片描述
6.修改配置文件:vim yarn-site.xml

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
   </property>
   <property>
        <description>The address of the applications manager interface in the RM.</description>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
   </property>
   <property>
        <description>The address of the scheduler interface.</description>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
   </property>
   <property>
        <description>The http address of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
   </property>
   <property>
        <description>The https adddress of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
   </property>
   <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
   </property>
   <property>
        <description>The address of the RM admin interface.</description>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
   <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>2048</value>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
   </property>
   <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
   </property>
   <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
</property>
 
   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>

五、启动Hadoop

1.初始化
进入到master这台机器的/usr/hadoop/hadoop-2.10.1/bin目录,

cd /usr/hadoop/hadoop-2.10.1/bin 切换到指定目录

./hadoop namenode -format 格式化hadoop
格式化成功标志:(不要格式化两次!)
在这里插入图片描述2. 启动hadoop

进入到master这台机器的/usr/hadoop/hadoop-2.10.1/sbin目录,

cd /usr/hadoop/hadoop-2.10.1/sbin 切换到指定目录

./start-all.sh 执行命令
执行之后一直报alave2找不到,然后想到hadoop环境好像还没加,加了之后发现还是不行,后来看着看着发现,嗯,,,好像哪里不对,,,,alave2???好像不对,是slave2才对吧,想到之前配置文件时好像打错了
在这里插入图片描述
重新进去文件夹改文件:

cd /usr/hadoop/hadoop-2.10.1/etc/hadoop
vim slaves 

在这里插入图片描述
然后再重新启动成功:
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐