一、软件准备

  1. 安装VMware
  2. 下载ubuntu镜像(阿里源ubuntu下载地址)选择自己适合的版本,以下我使用的是18.04-server版就是没有桌面的。安装桌面版如果自己电脑配置不行的话启动集群容易卡死。

(说明一下哈就是桌面版和服务器版没什么太大的区别,桌面版为个人电脑所配置,预装了图形界面和一些其他软件,比如LibreOffice,音乐播放器,游戏等等,而服务器版没有这些东西,服务器版启动之后只有一个黑屏+光标,所有的操作都是命令形式的)


  1. 下载Hadoop和jdk(链接:https://pan.baidu.com/s/1QL4flw5_XRhVrGouZyPhjg

    提取码:a0z6 )也可以去官网下载。
  2. 准备xshell和xftp后期要使用xftp网虚拟机上上传文件(链接:https://pan.baidu.com/s/1nkMCSxuVPFKO6wiLdAB7cA

    提取码:mbb6 )

二、安装过程

  1. 首先在VMware里创建一个名为master的虚拟机(在已经安装完VMware的前提下)
  • 打开VMware点击-----创建新的虚拟机弹出窗口选择典型安装即可----下一步:

  • 弹出以下窗口 选择 稍后安装操作系统----下一步:

  • 选择需要安装的操作系统----下一步:

  • 这里设置虚拟机的名字和要安装的位置----下一步:

  • 设置磁盘容量----下一步:

  • 这里先不要点击完成选择自定义硬件

  • 这里指定自己ISO镜像的位置----关闭

  • 点击完成

  • 可以看到VMware下生成了一个名为master的虚拟机----点击开启此虚拟机。

现在虚拟机还不能使用,现在就相当于一个没有安装操作系统的空电脑,只有躯体没有灵魂

  • 点开之后会一阵加载文件,等一会会出现下面界面:

  • 这里选择继续而不更新----摁回车

  • 这里是设置键盘默认就可以了----摁回车

  • 这里也是直接默认就可以了----摁回车

  • 这里是设置代理服务器的,不用填写直接回车就可以了

  • 设置下载源

  • 选择Done直接回车就可以了

  • 这里也是默认直接回车

  • 上一步回车之后会弹出一个对话框如下图:----选择Continue回车

  • 设置用户名和主机名设置完之后选在Done进行下一步

  • 选择安装OpenSSH 服务

  • 直接选择Done进行下一步

  • 安装页面

  • 更新包和重启虚拟机,选择完之后还要等一会

  • 经过漫长的等待出现下面界面直接按回车继续执行

  • 出现下面界面摁回车就可以

  • 执行上一步的话会出现下面界面使用用户密码登录

  • 使用用户名登陆上去就说明这台虚拟机已经可以工作了

三、环境基础配置

节点 IP地址 主机名
master 192.168.100.100 master
slave1 192.168.100.101 slave1
slave2 192.168.100.102 slave2

1.配置静态IP、hosts文件、克隆虚拟机、更改主机名

在配置静态IP之前要看一下VMware虚拟网卡的网段

  • 配置静态IP
cd /etc/netplan
ls

  • 查看完配置文件,使用 vi 进入配置文件
sudo vi 00-installer-config.yaml

  • 进行配置

vi 编辑器刚进入的时候默认是命令模式,要按一下 i 进入编辑模式。如果编辑完成想要退出,首先先按一下Esc到命令模式然后输如 :wq!

保存退出,如果不想保存退出就使用:q!命令。

  • 退出之后启动网卡
sudo netplan apply
ip a 查看IP的命令

  • 配置hosts文件

hosts文件是本地域名解析,一个本地的DNS。它将IP地址和主机名相互解析

也是使用vi 编辑器进行编辑
vi /etc/hosts

  • 克隆虚拟机

先关闭master虚拟机然后点击虚拟机-----管理----克隆----下一步----下一步----选择创建完全克隆----下一步----更改虚拟机名称为slave1,位置自己选择即可。点击完成。即可看到VMware里多了一台名为slave1的虚拟机。slave2操作相同,就是虚拟机名称改为slave2即可。创建完如下图:

  • 配置slave1和slave2

注意此时slave1和slave2虚拟机是克隆的,所以说配置文件和master是完全相同的,登录的话也是master的用户和密码(用户:hadoop 密码:你自己设置的)登录上咱们要给他更改一下主机名和IP地址。打开slave1、slave2虚拟机进行以下操作:

对slave1虚拟机进行操作的命令,操作的时候会让你输入密码

就输入hadoop用户的密码

hostnamectl set-hostname slave1          这个命令是永久更改主机名
sudo login 执行完这个命令会让你重新登录以下直接hadoop用户登录

对slave2虚拟机进行相同操作

hostnamectl set-hostname slave2          注意这里是slave2
sudo login

更改slave1的IP地址

vi /etc/netplan/00-installer-config.yaml
sudo netplan apply 配置完启动一下网络服务
ip a 查看一下是否配置成功

  • 更改slave2的IP地址

操作跟slave1命令一样,把 0 改成 2 保存退出即可,也要使用sudo netplan apply

命令启动一下网络服务。使用ip a查看一下是否配置成功

2.配置ssh免密登录

ssh-keygen -t rsa    每台机器都要执行这个命令,一路回车就可以了
  • 执行完上面的命令,会发现用户目录下有一个.ssh的目录,使用下面的命令查看一下
cd ~/.ssh/
ls

现在在master节点touch一个名为authorized_keys的文件然后使用cat命令将master的公钥追加到这个文件里。命令如下:

touch authorized_keys
cat id_rsa.pub >> authorized_keys

然后将slave1的公钥使用scp命令复制到master节点上

scp ~/.ssh/id_rsa.pub hadoop@msater:~/

  • 可以看到master节点用户命令下多了一个id_rsa_pub的文件

  • 同样使用cat命令将slave1的公钥追加到authorized_keys文件里

cat id_rsa_pub >> .ssh/authorized_keys
cat .ssh/authorized_keys

使用相同的命令将slave2的公钥传到master节点里并写入authorized_keys文件里

scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/ 在slave2里执行

(这里说明一下执行完上面这个命令会把之前咱们传的slave1的公钥文件覆盖掉,没什么影响。在master节点里执行下面的命令)

cat id_rsa_pub >> .ssh/authorized_keys
cat .ssh/authorized_keys

然后使用scp命令将master节点里的authorized_keys文件分别上传到slave1和slave2节点的.ssh/目录下

scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:~/.ssh/
scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:~/.ssh/
  • 验证ssh免密登录
ssh slave1   远程登录slave1命令,如果想登录其他节点,将slave1改成其他主机的主机名即可
exit 这个是退出命令

3.上传并解压JDK、Hadoop压缩包

  • 使用Xftp软件进行上传

注意:使用Xftp之前要确保宿主机(就是自己的电脑)和虚拟机相互通信。

  • 点击【连接】会出现下面界面

出现下面界面,咱们可以直接把左面电脑里的文件拖到右面的虚拟机里。当然虚拟机里的文件也可以直接拖到自己电脑里。

  • 将hadoop、jdk压缩文件拖到虚拟机里

  • 也可以到master用户目录下查看

  • 解压hadoop、jdk

sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/    -C参数是指定解压到哪个目录下
sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
cd /usr/local/ 到这个目录下
ls 查看一下

  • 给这两个权限,归hadoop用户所有
sudo chown -R hadoop hadoop-2.7.7/
sudo chown -R hadoop jdk1.8.0_251
ll 查看一下

4.添加环境变量

vi .bashrc        在这个文件最后添加如下内容,三台机器都需要添加。
source .bashrc 添加完成之后执行这个条命令,让其生效。

  • 验证一下是否添加成功
java -version

四、配置Hadoop文件

  • 首先进入存放Hadoop配置文件的目录
cd /usr/local/hadoop-2.7.7/etc/hadoop/      进入此目录
ls 查看一下

1.配置核心组件core-site.xml

vi core-site.xml    打开文件,添加以下内容

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

2.配置hadoop-env.sh

vi hadoop-env.sh   添加JDK的安装目录

export JAVA_HOME=/usr/local/jdk1.8.0_251

3.配置hdfs-site.xml

vi hdfs-site.xml

<property>
<name>dfs.replication</name>
<value>3</value>
</property>

4.配置yarn-site.xml

vi yarn-site.xml

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.100.100:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.100.100:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.100.100:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.100.100:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.100.100:18088</value>
</property>

5.配置mapred-site.xml

使用cp命令复制mapred-site.xml.template文件为mapred-site.xml

cp mapred-site.xml.template  mapred-site.xml     使用cp命令进行复制

vi mapred-site.xml   添加以下内容

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

6.配置yarn-env.sh

vi yarn-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_251

五、复制文件

1.使用scp命令将hadoop、jdk文件复制到slave1和slave2节点上。

在master节点执行下面命令

sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave1:~/
sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave2:~/
sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave1:~/
sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave2:~/
此时已经将这两个文件复制到slave1、slave2节点的用户目录下

2.移动文件

在slave1、slave2节点执行下面命令
sudo mv /home/hadoop/hadoop-2.7.7/ /usr/local/
sudo mv /home/hadoop/jdk1.8.0_251/ /usr/local/ source .bashrc 生效一下环境变量,每台节点都要执行。

六、启动集群

1.在master节点格式化namenode

hdfs namenode -format       进行格式化

2.start-all.sh启动集群

start-all.sh

  • 查看slave1节点的进程

  • 查看slave2节点的进程

3.通过浏览器访问UI 集群信息图

4.通过浏览器访问Yarn web 信息图

至此Hadoop完全分布式搭建完成

超级无敌详细使用ubuntu搭建hadoop完全分布式集群的更多相关文章

  1. Hadoop(三)手把手教你搭建Hadoop全分布式集群

    前言 上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的.接下来我将给大家分享一下全分布式集群的搭建! 其实搭建最基本的全分布式集群和伪分布式集群 ...

  2. Hadoop(三)搭建Hadoop全分布式集群

    原文地址:http://www.cnblogs.com/zhangyinhua/p/7652686.html 阅读目录(Content) 一.搭建Hadoop全分布式集群前提 1.1.网络 1.2.安 ...

  3. 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现

    『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...

  4. VM+CentOS+hadoop2.7搭建hadoop完全分布式集群

    写在前边的话: 最近找了一个云计算开发的工作,本以为来了会直接做一些敲代码,处理数据的活,没想到师父给了我一个课题“基于质量数据的大数据分析”,那么问题来了首先要做的就是搭建这样一个平台,毫无疑问,底 ...

  5. Hadoop伪分布式集群环境搭建

    本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识. 首先安装Hadoop之前需要准备安装环境. 安装Centos6.5(64位).(操作系统再次不做过多描 ...

  6. Hadoop学习---CentOS中hadoop伪分布式集群安装

    注意:此次搭建是在ssh无密码配置.jdk环境已经配置好的情况下进行的 可以参考: Hadoop完全分布式安装教程 CentOS环境下搭建hadoop伪分布式集群 1.更改主机名 执行命令:vi  / ...

  7. hadoop伪分布式集群搭建与安装(ubuntu系统)

    1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...

  8. Hadoop完全分布式集群环境搭建

    1. 在Apache官网下载Hadoop 下载地址:http://hadoop.apache.org/releases.html 选择对应版本的二进制文件进行下载 2.解压配置 以hadoop-2.6 ...

  9. hadoop完全分布式集群的搭建

    集群配置: jdk1.8.0_161 hadoop-2.6.1 linux系统环境:Centos6.5 创建普通用户  dummy 准备三台虚拟机master,slave01,slave02 hado ...

随机推荐

  1. socket php

    $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_bind($socket,'0.0.0.0',6666); while(tru ...

  2. Linux运维学习第四周记

    古木阴中系短篷 杖藜扶我过桥东 沾衣欲湿杏花雨 吹面不寒杨柳风 *不要辜负绵绵春意 第四周学记 第四周主要学习了文件查找和打包压缩的相关工具,以及软件包管理工具 文件查找相关命令 1.locate 在 ...

  3. POI样式设置详细解析

    ````````由于看到网上对poi做报告合成的内容不是很全面, ````````自己最近又有新的需求, 作为勉励, 会慢慢补充详细的样式设置, 希望也能帮到各位 设置段落方向 (默认是纵向, 这里可 ...

  4. 微信小程序学习心得

    我们写小程序时都要跳转页面的,也会有底部导航来进行切换 这个时候就要介绍下窗口是怎样配置的 要在app.json文件里写一个tabBer对象 里面在定义一个list数组里面放我们定义的几个需要切换的页 ...

  5. Nacos注册中心使用

    创建两个工程,一个是nacos-provider, 另一个是naocos-consumer: 添加nacos-provider的依赖 <parent> <groupId>org ...

  6. Java 中的 Lambda 表达式

    Lambda表达式 Lambda 表达式是 JDK1.8 的一个新特性,又称特殊的匿名内部类,可以取代大部分的匿名内部类,语法更简洁,可以写出更优雅的 Java 代码,可以极大地优化代码结构. Lam ...

  7. D. Generating Sets 解析(思維)

    Codeforce 722 D. Generating Sets 解析(思維) 今天我們來看看CF722D 題目連結 題目 略,請直接看原題 前言 真的是沒想到... @copyright petje ...

  8. Dev中配置graphcis.h

    下载地址:http://winbgim.codecutter.org/ 搞得自己有点奔溃 没成功 尝试了全网的所以的方法都没成功

  9. Java入门(5)

    阅读书目:Java入门经典(第7版) 作者:罗格斯·卡登海德 protected变量只能在其所在的类,该类的子类,以及同一个包里的其他类中使用.包是一组用于完成相同目标的相关类. private变量只 ...

  10. NOIP 2013 P1967 货车运输

    倍增求LCA+最大生成树 题目给出的是一张图,在图上有很多算法无法实现,所以要将其转化为树 题中可以发现货车的最后的载重量是由权值最小的一条边决定的,所以我们求最大生成树 求完最大生成树后我们得到一个 ...