深入浅出学大数据Hadoop简介及Apache Hadoop三种搭建方式

Posted 不温卜火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入浅出学大数据Hadoop简介及Apache Hadoop三种搭建方式相关的知识,希望对你有一定的参考价值。

  大家好,我是不温卜火,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!博客主页:https://buwenbuhuo.blog.csdn.net/

目录


前言

此系列主要为我的学弟学妹们所创作,在某些方面可能偏基础。如果读者感觉较为简单,还望见谅!如果文中出现错误,欢迎指正~

本文主要介绍了Hadoop简介及Apache Hadoop完全分布式集群搭建,包括大数据简介、Hadoop简介、Hadoop的重要组成和Apache Hadoop 完全分布式集群搭建。

一、Hadoop概述

1.1 Hadoop是什么

🔎Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构

🔎Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中

🔎Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce

🔎Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力,主要解决海量数据的存储和海量数据的分析计算问题。

🔎几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、雅虎、微软、思科、淘宝等,都支持Hadoop

🔎狭义上说Hadoop就是一个框架平台,广义上讲Hadoop代表大数据的一个技术生态圈,包括很多其他软件框架,如下:

1.2 Hadoop的发展历程


🔍Hadoop最初是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库。Hadoop源自始于2002年的Apache Nutch项目——一个开源的网络搜索引擎并且也是Lucene项目的一部分。Nutch 是一个开源 Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

🔍 在2003年,Nutch项目也模仿GFS开发了自己的分布式文件系统NDFS(Nutch Distributed File System),也就是HDFS的前身

🔍 2004年,谷歌公司又发表了另一篇具有深远影响的论文Google MapReduce,阐述了MapReduce分布式编程思想

💡你需要知道的三驾马车Google的三篇论文(三驾马车)分别是:

  • GFS:Google的分布式文件系统(Google File System)
  • MapReduce:Google的分布式计算框架
  • BigTable:大型分布式数据库

💡发展演变关系::

  • GFS —> HDFS
  • Google MapReduce —> Hadoop MapReduce
  • BigTable —> HBase

🔍2005年,Nutch开源实现了谷歌的MapReduce

🔍到了2006年2月,Nutch中的NDFS和MapReduce开始独立出来,成为Lucene项目的一个子项目,称为Hadoop,同时,Doug Cutting加盟雅虎

🔍 2008年1月,Hadoop正式成为Apache顶级项目,Hadoop也逐渐开始被雅虎之外的其他公司使用

🔍2008年4月,Hadoop打破世界纪录,成为最快排序1TB数据的系统,它采用一个由910个节点构成的集群进行运算,排序时间只用了209秒

🔍在2009年5月,Hadoop更是把1TB数据排序时间缩短到62秒。Hadoop从此名声大震,迅速发展成为大数据时代最具影响力的开源分布式开发平台,并成为事实上的大数据处理标准

📢Hadoop名字来源于Hadoop之父Doug Cutting儿子的毛绒玩具象:

1.3 Hadoop的特点

🔉Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:

🔍1.高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失

🔍2.高拓展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

🔍3. 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

🔍4.高容错性:能够自动将失败的任务重新分配。

🔍5.低成本:Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据。以至于成本很低

1.4 Hadoop的应用现状

🔉Hadoop在企业中的应用架构

1.5 Hadoop三大发行版本

目前Hadoop发行版非常多,有Cloudera发行版(CDH)、Hortonworks发行版、华为发行版、Intel发行版等,所有这些发行版均是基于Apache Hadoop衍生出来的,之所以有这么多的版本,是由Apache Hadoop的开源协议决定的(任何人可以对其进行修改,并作为开源或商业产品发布/销售)。

企业中主要用到的三个版本分别是:Apache Hadoop版本(最原始的,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”)。

分别如下:

🔍Apache Hadoop

原始版本,学习环境使用。
    
    官网地址:http://hadoop.apache.org/
    
    优点:拥有全世界的开源贡献,代码更新版本比较快,学习非常方便
    
    缺点:版本的升级,版本的维护,以及版本之间的兼容性
    
    Apache所有软件的下载地址(包括各种历史版本): http://archive.apache.org/dist/

🔍ClouderaManager(收费,部分开源)

CDH版本,生产环境使用。
    
    官网地址:https://www.cloudera.com/
    
    Cloudera主要是美国一家大数据公司,在Apache开源Hadoop的版本上,通过自己公司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困难,版本兼容性等各种问题,生产环境强烈推荐使用。

🔍HortonWorks(免费开源)

HDP版本,生产环境使用。
    
    官网地址:https://hortonworks.com/
    
    web管理界面软件HDF网址:http://ambari.apache.org/
    
    Hortonworks主要是雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks,核心产品软件HDP(ambari),HDF免费开源,并且提供一整套的web管理界面,供我们可以通过web界面管理我们的集群状态。因为HortonWorks已经被Cloudera收购,所以HDP的使用也可能会逐渐减少,商用以CDH为主。

1.6 ApacheHadoop版本变化及组成架构变化

Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0

第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则增加了NameNode HA等新的重大特性

第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性

Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,于是Hadoop社区基于JDK1.8重新发布一个新的Hadoop版本,也就是Hadoop3.0

🔍下图为Hadoop1.x与Hadoop2.x的组成:

🔎在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。

🔎在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算。

🔎Hadoop3.x在组成上没有变化。

1.6 Hadoop的重要组成

狭义的Hadoop由四部分组成:

  • HDFS(分布式文件系统)
  • MapReduce(分布式计算框架)
  • Yarn(资源协调框架)
  • Common模块

1.6.1 HDFS(Hadoop Distribute File System )——高可靠、高吞吐量的分布式文件系统

HDFS的思想是分而治之,主要功能如下:

  • 数据切割
        将海量数据进行拆分,以保证可以在单台机器上进行保存。
        例如100T数据拆分为10G一个数据块由一个电脑节点存储这个数据块。

  • 制作副本
        由于电脑可能出现宕机的情况,所以需要制作副本,让另外的电脑也保存相同的数据。

  • 分散储存
        将数据切割后,分散存储在不同的机器上,同时在另外的机器上有相同数据的副本。

如下图所示:

HDFS属于Master/Slave(主从架构):

NameNode(nn):

属于Master节点,主要负责管理和维护元数据:存储文件的元数据,元数据记录了文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode节点信息等。
    
SecondaryNameNode(2nn)

辅助NameNode管理和维护元数据,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照,对NameNode元数据备份。

DataNode(dn)

属于Slave节点,负责存储文件数据块:在本地文件系统存储文件块数据,以及块数据的校验
    
其中,NN、2NN、DN既是角色名称、进程名称,也代指电脑节点名称。

HDFS写入文件过程:

对于大数据进行拆分(切割)得到数据块,可能得到多个数据块,由多个DataNode进行存储。具体流程如下图所示:

HDFS读取文件过程:

向NameNode请求获取到之前存入文件的块以及块所在的DataNode的信息,分别下载并最终合并,就得到之前的文件。具体流程如下图所示:

1.6.2 Hadoop MapReduce——一个分布式的离线并行计算框架

MapReduce的思想也是分而治之,主要功能如下:

  • 拆解任务
    将数据进行切分,得到切片。
  • 分散处理
  • 汇整结果

如下图所示:

MapReduce将计算过程分为两个阶段:Map和Reduce

  • Map阶段就是“分”的阶段
    将数据切分到多个节点后,多个节点并行处理 输入数据,即每个节点负责一份数据的计算,并得到部分结果。

  • Reduce阶段就是“合”的阶段
    对Map阶段的输出结果进行汇总,得到全局的结果。

1.6.3 Hadoop Yarn——作业调度与集群资源管理的框架

Yarn负责集群中计算资源的分配和作业任务的调度:

Yarn架构也是主从架构主要角色如下:

  • ResourceManager(rm)
    是Master,处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度。

  • NodeManager(nm)
    是Slave,单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令。

  • ApplicationMaster(am)
    是计算任务专员,数据切分、为应用程序(任务)申请资源,并分配给内部任务、任务监控与容错。

  • Container
    对任务运行环境的抽象,一个Container负责一个Task,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息,可以理解为虚拟资源集合或小型计算机。

1.6.4 HDFS、YARN、MapReduce三者之间的关系

1.6.5 Hadoop Common——支持其他模块的工具模块

包括以下几部分:

  • Configuration
    公共的配置,包括集群节点、节点资源、IP、主机名、参数等配置项
  • RPC
    远程过程调用,是分布式框架中多个节点之间进行网络通讯的首选方式,高效、稳定、安全,Hadoop中实现了Hadoop RPC框架。
  • 序列化机制
  • 日志操作

1.7 大数据技术生态体系


图中所设计的技术名词解释如下:

大数据技术生态体系
Hadoop(HDFS + MapReduce + Yarn)
Hive 数据仓库
HBase Hadoop上的非关系型的分布式数据库
Sqoop 一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(mysql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop 用于在Hadoop与传统数据库之间进行数据传递
Oozie Hadoop上的工作流管理系统
Zookeeper 提供分布式协调一致性服务
Kafka 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据
Ambari Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控
Flink 当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
… …

1.8 常见大数据项目所使用的技术分类

根据项目可以划分为实时流和离线流,如下图所示:

1.9 推荐系统结构图

下图为传统的推荐系统的架构:

二、前提准备

2.1 虚拟机环境准备

2.1.1 下载安装虚拟机

由于本校使用Ubuntu作为操作系统,因此本系列教程采用Ubuntu 16.04 64位作为系统环境(或者Ubuntu 14.04,Ubuntu18.04 也行,32位、64位均可)。

在此给出系统镜像下载地址(Kylin 此处不推荐):
Ubuntu 历史版本下载

Ubuntu Kylin 下载地址

如何下载,以下载Ubuntu历史版本为例:

🔎1.打开网址

🔎2.选择想要下载的历史版本,在此以Ubuntu 16.04.1 LTS (Xenial Xerus)为例

🔎3. 选择镜像进行下载

下载完成后,下面就是安装了。但是由于此部分主要讲解环境搭建,所以安装这一过程在此省略。下面直接从装好Ubuntu系统开始讲解。

2.1.2 创建Hadoop用户

如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :

# 创建可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell
buwenbuhuo@ubuntu:/opt/moudle$ sudo useradd -m hadoop -s /bin/bash

📣你需要知道的一些知识:

🔎sudo命令

本文中会大量使用到sudo命令。sudo是ubuntu中一种权限管理机制,管理员可以授权给一些普通用户去执行一些需要root权限执行的操作。当使用sudo命令时,就需要输入您当前用户的密码.

🔎密码

在Linux的终端中输入密码,终端是不会显示任何你当前输入的密码,也不会提示你已经输入了多少字符密码。而在windows系统中,输入密码一般都会以“*”表示你输入的密码字符

🔎Ubuntu终端复制粘贴快捷键

在Ubuntu终端窗口中,复制粘贴的快捷键需要加上 shift,即粘贴是 ctrl+shift+v。

# 使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码
buwenbuhuo@ubuntu:/opt/moudle$ sudo passwd hadoop


# 如下命令可为hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题
buwenbuhuo@ubuntu:/opt/moudle$ sudo adduser hadoop sudo

最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。

2.1.3 重置root密码并配置免密登录

Ubuntu安装完成后,一般默认密码你是不知道的,这个时候我们可以通过重置root密码进行解决。

🔍1. 修改密码

hadoop@ubuntu:~$ sudo passwd root     # 重置root密码
输入新的 UNIX 密码:                  # 一般密码都不显示,直接输入回车即可
重新输入新的 UNIX 密码: 
passwd: password updated successfully # 提示你修改成功

🔍2. 切换成root账户

hadoop@ubuntu:~$ su root              # 切换到root账户
密码: 								  # 输入密码,一会进行配置免密登录就可不用再次输入
root@ubuntu:/home/hadoop#             # 成功切换到root账户

🔍3. 修改/etc/sudoers配置文件

root@ubuntu:/home/hadoop# vim /etc/sudoers

...
# User privilege specification
root    ALL=(ALL:ALL) ALL
hadoop    ALL=(ALL)    NOPASSWD:ALL    # 此处为要修改部分,hadoop为你自己的账户名
...

🔍4. 测试免密

2.1.4 更新apt

用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 ctrl+alt+t 打开终端窗口,执行如下命令:

hadoop@ubuntu:~$ sudo apt-get update


若出现如下 “Hash校验和不符” 的提示,可通过更改软件源来解决。若没有该问题,则不需要更改。从软件源下载某些软件的过程中,可能由于网络方面的原因出现没法下载的情况,那么建议更改软件源。在学习Hadoop过程中,即使出现“Hash校验和不符”的提示,也不会影响Hadoop的安装。

关于如何更改软件源,林子雨老师的博客已经给出答案。如有兴趣可自行查看。

后续需要更改一些配置文件,我比较喜欢用的是 vim(vi增强版,基本用法相同),建议安装一下(如果你实在还不会用 vi/vim 的,请将后面用到 vim 的地方改为 gedit,这样可以使用文本编辑器进行修改,并且每次文件更改完成后请关闭整个 gedit 程序,否则会占用终端):

hadoop@ubuntu:~$ sudo apt-get install vim

安装软件时若需要确认,在提示处输入 y 即可。

2.1.5 安装SSH、配置SSH无密码登陆

🌟在进行免密登录配置之前,我们需要先了解免密登录的原理,如下图所示:

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

hadoop@ubuntu:~$ sudo apt-get install openssh-server


安装后,可以使用如下命令登陆本机:

hadoop@ubuntu:~$ ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

hadoop@ubuntu:~$ exit 				# 退出刚才的 ssh localhost	 
hadoop@ubuntu:~$ cd ~/.ssh/  		# 若没有该目录,请先执行一次ssh localhost
hadoop@ubuntu:~$ ssh-keygen -t rsa	# 会有提示,都按回车就可以,三个回车
hadoop@ubuntu:~$ cat ./id_rsa.pub >> ./authorized_keys	# 加入授权

🌟.ssh文件夹下~/.ssh的文件功能解释

名称含义
authorized_keys存放授权过的无密登录服务器公钥
id_rsa生成的私钥
id_rsa.pub生成的公钥
known_hosts记录ssh访问过计算机的公钥(public key)

📣~的含义
在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释,只需要输入前面命令即可。

此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。

2.1.6 安装WMware Tools

VMware Tools是一套可以提高虚拟机客户机操作系统性能并改善虚拟机管理的实用工具。如果你还对安装WMware Tools有什么疑惑,我们不妨看下它的功能,其功能如下:

🔍1、支持Aero的操作系统上大大提升的图形性能和WindowsAero体验

🔍2、使虚拟机中的应用程序像其他任何应用程序窗口一样显示在主机桌面上的Unity功能

🔍3、主机与客户机文件系统之间的共享文件夹

🔍4、在虚拟机与主机或客户端桌面之间复制并粘贴文本、图形和文件。效果如下图所示:

🔍5、改进的鼠标性能

🔍6、虚拟机中的时钟与主机或客户端桌面上的时钟同步

🔍7、帮助自动执行客户机操作系统操作的脚本

🔍8、启用虚拟机的客户机自定义。

安装VMware Tools可以大大提升图形化性能,对于初学者而言很有必要。当然,此部分并非必要,因为还可以使用第三方连接工具如Xshell等进行连接。

下面讲解下如何安装
🔎1. 虚拟机—> 重新安装WMware Tools—>复制到自己想存放的位置

🔎1.解压缩WMware Tools

root@ubuntu:~# cd /opt/software/     # 进入到WMware Tools存放目录

root@ubuntu:/opt/software# ll		 # 查看当前文件夹内存在的内容
drwxrwxrwx 2 root   root        4096 9月  22 19:11 ./
drwxr-xr-x 4 root   root        4096 9月  15 19:51 ../
-rw-rw-r-- 1 hadoop hadoop  56435756 2月  20  2019 VMwareTools-10.3.10-12406962.tar.gz

root@ubuntu:/opt/software# tar -zxvf VMwareTools-10.3.10-12406962.tar.gz -C /opt/moudle/   # 解压缩文件

🔎2.安装WMware Tools

root@ubuntu:/opt/software# cd /opt/moudle/    							# 进入到解压缩目录
root@ubuntu:/opt/moudle# ll
总用量 20
drwxr-xr-x  5 root   root   4096 9月  22 19:34 ./
drwxr-xr-x  4 root   root   4096 9月  15 19:51 ../
drwxr-xr-x  9 root   root   4096 2月  20  2019 vmware-tools-distrib/

root@ubuntu:/opt/moudle# cd vmware-tools-distrib/					 	 
root@ubuntu:/opt/moudle/vmware-tools-distrib# ll
总用量 408
drwxr-xr-x  9 root root   4096 2月  20  2019 ./
drwxr-xr-x  5 root root   4096 9月  22 19:34 ../
drwxr-xr-x  2 root root   4096 2月  20  2019 bin/
drwxr-xr-x  5 root root   4096 2月  20  2019 caf/
drwxr-xr-x  2 root root   4096 2月  20  2019 doc/
drwxr-xr-x  5 root root   4096 2月  20  2019 etc/
-rw-r--r--  1 root root 146996 2月  20  2019 FILES
-rw-r--r--  1 root root   2538 2月  20  2019 INSTALL
drwxr-xr-x  2 root root   4096 2月  20  2019 installer/
drwxr-xr-x 14 root root   4096 2月  20  2019 lib/
drwxr-xr-x  3 root root   4096 2月  20  2019 vgauth/
-rwxr-xr-x  1 root root 227024 2月  20  2019 vmware-install.pl*         # 此处为安装文件

oot@ubuntu:/opt/moudle/vmware-tools-distrib# ./vmware-install.pl        # 进行安装 安装过程中出现yes/no  全部默认回车即可,安装完成后重启生效。

root@ubuntu:/opt/moudle/vmware-tools-distrib# reboot 					# 执行重启命令

2.1.7 安装Jdk

一般主流都不会选择最新版本,为求稳定大都会选择Jdk8。此处选择jdk-8u162-linux-x64作为Jdk。

官方链接(需注册oracle账户):Jdk 历史版本下载

学长在此给出自己使用的JDK:https://pan.baidu.com/s/1c1V66MGf5gwZ2ZhW6RP6vw 提取码:4e8f

🔎1. Jdk解压

hadoop@ubuntu:/opt/software$ ll
总用量 1849704
drwxrwxrwx 2 root   root        4096 9月  22 19:11 ./
drwxr-xr-x 4 root   root        4096 9月  15 19:51 ../
-rw-rw-r-- 1 hadoop hadoop 189815615 9月  15 19:49 jdk-8u162-linux-x64.tar.gz
-rw-rw-r-- 1 hadoop hadoop  56435756 2月  20  2019 VMwareTools-10.3.10-12406962.tar.gz

hadoop@ubuntu:/opt/software$ sudo tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/moudle/   #把JDK文件解压到/opt/moudle目录下

hadoop@ubuntu:/opt/software$ cd /opt/moudle/
hadoop@ubuntu:/opt/moudle/$ ll
总用量 20
drwxr-xr-x  5 root root 4096 9月  22 20:05 ./
drwxr-xr-x 24 root root 4096 9月  15 18:18 ../
drwxr-xr-x  8 uucp  143 4096 12月 20  2017 jdk1.8.0_162/      # 我们可以看到已经解压成功

hadoop@ubuntu:/opt/moudle/ $ sudo mv jdk1.8.0_162/ jdk1.8     # 通常习惯吧版本号简化些,这样方便以后配置文件
hadoop@ubuntu:/opt/moudle/ $ ll
总用量 20
drwxr-xr-x  5 root root 4096 9月  22 20:07 ./
drwxr-xr-x 24 root root 4096 9月  15 18:18 ../
drwxr-xr-x  8 uucp  143 4096 12月 20  2017 jdk1.8/


🔎2. 设置环境变量

hadoop@ubuntu:/opt/moudle$ sudo vim ~/.bashrc
# 下面为要添加的部分
# Java_HOME
export JAVA_HOME=/opt/moudle/jdk1.8           # 自己解压目录位置
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

# 继续执行如下命令让.bashrc文件的配置立即生效
hadoop@ubuntu:/opt/moudle$ source ~/.bashrc

🔎3. 查看是否安装成功

hadoop@ubuntu:/opt/moudle$ java -version

如果能够在屏幕上返回如下信息,则说明安装成功:

至此,就成功安装了Java环境。下面就可以进入Hadoop的安装。

2.1.8 安装Hadoop

🔎 1.Hadoop下载
我们可以到Hadoop官网下载hadoop-3.1.3.tar.gz

也可以在https://archive.apache.org/dist/hadoop/common/中选择合适的版本进行下载,这里选择3.1.3版本。

🔎 2.Hadoop上传
可以先点击https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz下载到本地,再使用上传到虚拟机的/opt/software目录下,也可以直接在虚拟机的/opt/software目录下执行wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz进行下载,可以根据需要选择。

🔎 3. 使用参考
在使用时,可以参考Hadoop官方文档:https://hadoop.apache.org/docs/r3.1.3/

🔎 4. 解压文件
我们选择将 Hadoop 安装至 /opt/moudle/ 中:

hadoop@ubuntu:/opt/software$ sudo tar -zxvf hadoop-3.1.3.tar.gz -C /opt/moudle/    # 解压到/opt/moudle中

hadoop@ubuntu:/opt/software$ cd /opt/moudle/

hadoop@ubuntu:/opt/moudle$ sudo mv hadoop-3.1.1 hadoop								# 将文件夹名改为hadoop

hadoop@ubuntu:/opt/moudle$ sudo chown -R hadoop:hadoop hadoop       # 修改文件权限


🔎 5. 查看版本信息
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

hadoop@ubuntu:/opt/moudle/hadoop$ ./bin/hadoop version


📢相对路径与绝对路径
请务必注意命令中的相对路径与绝对路径,后续出现的 ./bin/..../etc/... 等包含 ./ 的路径,均为相对路径,以 /opt/moudle/hadoop 为当前目录。例如在/opt/moudle/hadoop 目录中执行 ./bin/hadoop version 等同于执行 /opt/moudle/hadoop/bin/hadoop version。可以将相对路径改成绝对路径来执行,但如果你是在主文件夹 ~ 中执行 ./bin/hadoop version,执行的会是 /home/hadoop/bin/hadoop version,就不是我们所想要的了。

🔎 6. 配置Hadoop的PATH变量

hadoop@ubuntu:/opt/moudle/hadoop$ vim ~/.bashrc 

# 要添加的部分
export PATH=$PATH:/opt/moudle/hadoop/bin:/opt/moudle/hadoop/sbin
  
hadoop@ubuntu:/opt/moudle/hadoop$ source ~/.bashrc   # 使立即生效

配置以后就可以在任意目录中直接使用hadoop、hdfs等命令了。

2.2 windows主机环境准备

2.2.1 修改windows的主机映射文件(hosts文件)

🔎1.进入C:\\Windows\\System32\\drivers\\etc路径

🔎2.打开hosts文件并添加如下内容,然后保存

192.168.2.5	hadoop
192.168.2.6	master
192.168.2.7	slave1
192.168.2.8	slave2
192.168.2.9	slave3

2.2.2 配置Java环境

一般主流都不会选择最新版本,为求稳定大都会选择Jdk8。

学长在此给出自己使用的JDK:https://pan.baidu.com/s/1c1V66MGf5gwZ2ZhW6RP6vw 提取码:4e8f

🔎1. Jdk解压(随意解压到任意目录)

🔎2. 新建JAVA_HOME 变量

变量名:JAVA_HOME
变量值:电脑上JDK安装的绝对路径


JDK 路径下必须能够看到如下的文件。

🔎3.新建/修改 CLASSPATH 变量
如果存在 CLASSPATH 变量,选中点击 Edit(编辑)。
如果没有,点击 New(新建)… 新建。
输入/在已有的变量值后面添加:

变量名:CLASSPATH
变量值:.;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar;

点击 OK 保存.

🔎4.修改Path 变量
由于 win10 的不同,当选中 Path 变量的时候,系统会很方便的把所有不同路径都分开了,不会像 win7 或者 win8 那样连在一起。

新建两条路径:

%JAVA_HOME%\\bin
%JAVA_HOME%\\jre\\bin


🔎5.查看是否配置成功
打开 cmd,输入 java,出现一连串的指令提示,说明配置成功了:

2.2.3 配置Hadoop环境(如果想在本机操作此过程是必须要做的)

Windows版本的Hadoop需要进行重新编译才可以使用,在此为了方便就直接给出编译完成的版本,链接:
链接:https://pan.baidu.com/s/1lLQCza1Hc4hK1Hqv9sAOgw 提取码:l76k
🔎1.Hadoop解压(随意解压到任意目录)

🔎2.配置HADOOP_HOME

🔎3.配置Path

🔎4.检查版本号

🔎5.启动测试

D:\\hadoop-3.1.3\\sbin>start-dfs.cmd
D:\\hadoop-3.1.3\\sbin>start-yarn.cmd

如果出现以下四个界面说明成功:

也可以查看UI界面。
http://localhost:9870
http://localhost:8088
大数据开发基础入门与项目实战Hadoop核心及生态圈技术栈之1.Hadoop简介及Apache Hadoop完全分布式集群搭建

大数据之hadoop深入学习

我要进大厂之大数据Hadoop HDFS知识点

从0开始学大数据-Java基础开篇

从0开始学大数据-Java基础语法

从零开始学大数据-Java基础-流程控制语句