Hadoop相关知识-入门篇

本文介绍了Hadoop的基础概念、发展历史、主要组件HDFS、YARN和MapReduce,以及它们之间的关系。详细讲述了Hadoop运行环境的搭建步骤,包括虚拟机配置、JDK和Hadoop的安装,以及Hadoop的目录结构和相关技术生态体系。
摘要由CSDN通过智能技术生成

目录

目录

1、Hadoop概述

1.1 Hadoop是什么

1.2 Hadoop发展历史

1.3 Hadoop组成(面试重点)

1.3.1 HDFS架构概述

1.3.2  YARN架构概述

1.3.3 MapReduce架构概述

 1.3.4 HDFS、YARN、MapReduce三者关系

 1.4 大数据技术生态体系 

1.5 推荐系统框架图

 2、Hadoop运行环境搭建

2.1 模板虚拟机环境准备

2.2 克隆虚拟机

2.3 在hadoop102安装JDK

2.4 在hadoop102安装Hadoop

2.5 Hadoop目录结构


1、Hadoop概述

1.1 Hadoop是什么

       1) Hadoop是一个由Apache基金会所开发的分布式系统基础架构
       2)主要解决, 海量数据的存储和海量数据的分析计算问题。
       3)广义上来说 Hadoop通常是指一个更广泛的概念----- Hadoop生态圈。

1.2 Hadoop发展历史

       1) Hadoop包始人Dong Cuting, 为了实现与Google类似的全文搜索功能,他在Lucene框架基础上进行优化升级,直询引摩和索引引擎。


       2) 2001年年底,ucen成为Apathe基金会的一个子项目。
       3) 对于海量数据的场景,Laucene框架面对与Google同样的困难,存储海量数据困难,检索海量速度慢
       4)学习和模仿Google解决这些问题的办法:微型版Nutch。
       5) 可以说Cogle是ladop的思想之源(Gogle在大数据方面的三篇论文)
                          GFS-->HDFS      Map-Reduce->MR     Big Table->HBase

      6) 2003-2004年 Google公开了部分GFS和MapReduce思想的细节,以此为基础Doug Cuting等人用了2年业余时间实现了DFS和MapReduce机制,使Nutc性能飘升。
      7)2005 年Hadoop 作为Lucene的子项目 Nutch的一部分正式引入Apache基金会。
      8)2006年3月份, Map-Reduce和ONutch Distributed File System(NDFS) 分别被纳入到Hadoop项目中,Hadoop就此正式诞生,标志着大数据时代来临
      9)名字来源于Doug Cuting子的玩具大象

1.3 Hadoop组成(面试重点)

    Hadoop1.x、2.x、3.x的区别如下

1.3.1 HDFS架构概述

       Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。

     1) NameNode(nn) :存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表块所在的DataNode等。

      2) DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和

      3) Seconday NameNode(2nn): 每隔一段时间对NameNode元数据备份

1.3.2  YARN架构概述

       Yet Another Resource Negotiator简称YARN ,另一种资源协调者是Hadoop资源管理器

1.3.3 MapReduce架构概述

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

     1)Map阶段并行处理输入数据标题四

     2)Reduce阶段对Map结果进行汇总

 1.3.4 HDFS、YARN、MapReduce三者关系

 1.4 大数据技术生态体系 

图中涉及的技术名词解释如下:

       1)Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

       2)Flume:Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;

       3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统; 

       4)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

       5)Flink:Flink是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。

       6)Oozie:Oozie是一个管理Hadoop作业(job)的工作流程调度管理系统。

       7)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

       8)Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

      9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

1.5 推荐系统框架图

 2、Hadoop运行环境搭建

2.1 模板虚拟机环境准备

1)安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G硬盘50G

 

2)hadoop100虚拟机配置要求如下(本文Linux系统全部以CentOS-7.5-x86-1804为例)

(1)使用yum安装需要虚拟机可以正常上网,yum安装前可以先测试下虚拟机联网情况

[root@hadoop100 ~]# ping www.baidu.com

PING www.baidu.com (14.215.177.39) 56(84) bytes of data.

64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=8.60 ms

64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=7.72 ms

(2)安装epel-release

注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的)

[root@hadoop100 ~]# yum install -y epel-release

(3)注意:如果Linux安装的是最小系统版,还需要安装如下工具;如果安装的是Linux桌面标准版,不需要执行如下操作

  • net-tool:工具包集合,包含ifconfig等命令
[root@hadoop100 ~]# yum install -y net-tools
  • vim:编辑器
[root@hadoop100 ~]# yum install -y vim

2)关闭防火墙,关闭防火墙开机自启

[root@hadoop100 ~]# systemctl stop firewalld

[root@hadoop100 ~]# systemctl disable firewalld.service

注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙

3)创建atguigu用户,并修改atguigu用户的密码

[root@hadoop100 ~]# useradd atguigu

[root@hadoop100 ~]# passwd atguigu

4)配置atguigu用户具有root权限,方便后期加sudo执行root权限的命令

[root@hadoop100 ~]# vim /etc/sudoers

修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:

## Allow root to run any commands anywhere

root    ALL=(ALL)     ALL



## Allows people in group wheel to run all commands

%wheel  ALL=(ALL)       ALL

atguigu   ALL=(ALL)     NOPASSWD:ALL

注意:atguigu这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了atguigu具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以atguigu要放到%wheel这行下面。

5在/opt目录下创建文件夹,并修改所属主和所属组

(1)在/opt目录下创建module、software文件夹

[root@hadoop100 ~]# mkdir /opt/module

[root@hadoop100 ~]# mkdir /opt/software

(2)修改module、software文件夹的所有者和所属组均为atguigu用户 

[root@hadoop100 ~]# chown atguigu:atguigu /opt/module

[root@hadoop100 ~]# chown atguigu:atguigu /opt/software

(3)查看module、software文件夹的所有者和所属组

[root@hadoop100 ~]# cd /opt/

[root@hadoop100 opt]# ll

总用量 12

drwxr-xr-x. 2 atguigu atguigu 4096 5月  28 17:18 module

drwxr-xr-x. 2 root    root    4096 9月   7 2017 rh

drwxr-xr-x. 2 atguigu atguigu 4096 5月  28 17:18 software

6)卸载虚拟机自带的JDK

注意:如果你的虚拟机是最小化安装不需要执行这一步。

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
  • rpm -qa:查询所安装的所有rpm软件包
  • grep -i:忽略大小写
  • xargs -n1:表示每次只传递一个参数
  • rpm -e –nodeps:强制卸载软件

7)重启虚拟机

[root@hadoop100 ~]# reboot

2.2 克隆虚拟机

1)利用模板机hadoop100,克隆三台虚拟机:hadoop102 hadoop103 hadoop104

      注意:克隆时,要先关闭hadoop100

2)修改克隆机IP,以下以hadoop102举例说明

(1)修改克隆虚拟机的静态IP

[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

改成

DEVICE=ens33

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static

NAME="ens33"

IPADDR=192.168.10.102

PREFIX=24

GATEWAY=192.168.10.2

DNS1=192.168.10.2

(2)查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8

 (3)查看Windows系统适配器VMware Network Adapter VMnet8的IP地址

(4)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

3)修改克隆机主机名,以下以hadoop102举例说明

(1)修改主机名称

[root@hadoop100 ~]# vim /etc/hostname

hadoop102

(2)配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts

[root@hadoop100 ~]# vim /etc/hosts

添加如下内容

192.168.10.100 hadoop100

192.168.10.101 hadoop101

192.168.10.102 hadoop102

192.168.10.103 hadoop103

192.168.10.104 hadoop104

192.168.10.105 hadoop105

192.168.10.106 hadoop106

192.168.10.107 hadoop107

192.168.10.108 hadoop108

4)重启克隆机hadoop102 

[root@hadoop100 ~]# reboot

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

1)如果操作系统是window7,可以直接修改 

      (a)进入C:\Windows\System32\drivers\etc路径

      (b)打开hosts文件并添加如下内容,然后保存

(2)如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可

(a)进入C:\Windows\System32\drivers\etc路径

(b)拷贝hosts文件到桌面

(c)打开桌面hosts文件并添加如下内容

192.168.10.100 hadoop100

192.168.10.101 hadoop101

192.168.10.102 hadoop102

192.168.10.103 hadoop103

192.168.10.104 hadoop104

192.168.10.105 hadoop105

192.168.10.106 hadoop106

192.168.10.107 hadoop107

192.168.10.108 hadoop108

(d)将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件

2.3 在hadoop102安装JDK

1卸载现有JDK

     注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK。详细步骤见问文档3.1节中卸载JDK步骤。

2XShell传输工具将JDK导入到opt目录下面的software文件夹下面

3在Linux系统下的opt目录中查看软件包是否导入成功

[atguigu@hadoop102 ~]$ ls /opt/software/

看到如下结果:

jdk-8u212-linux-x64.tar.gz

4解压JDK到/opt/module目录下

[atguigu@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

5配置JDK环境变量

(1)新建/etc/profile.d/my_env.sh文件

[atguigu@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh

添加如下内容

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_212

export PATH=$PATH:$JAVA_HOME/bin

(2)保存后退出

        :wq

(3)source一下/etc/profile文件,让新的环境变量PATH生效

[atguigu@hadoop102 ~]$ source /etc/profile

6测试JDK是否安装成功

[atguigu@hadoop102 ~]$ java -version

如果能看到以下结果,则代表Java安装成功。

java version "1.8.0_212"

注意:重启(如果java -version可以用就不用重启)

[atguigu@hadoop102 ~]$ sudo reboot

2.4 在hadoop102安装Hadoop

Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

1)XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下面

2)进入到Hadoop安装包路径下

[atguigu@hadoop102 ~]$ cd /opt/software/

3)解压安装文件到/opt/module下面

[atguigu@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

4)查看是否解压成功

[atguigu@hadoop102 software]$ ls /opt/module/

hadoop-3.1.3

5)将Hadoop添加到环境变量

(1)获取Hadoop安装路径

[atguigu@hadoop102 hadoop-3.1.3]$ pwd

/opt/module/hadoop-3.1.3

(2)打开/etc/profile.d/my_env.sh文件

[atguigu@hadoop102 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh
  • 在my_env.sh文件末尾添加如下内容:(shift+g)
#HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-3.1.3

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin
  • 保存并退出: :wq

(3)让修改后的文件生效

[atguigu@hadoop102 hadoop-3.1.3]$ source /etc/profile

6)测试是否安装成功

[atguigu@hadoop102 hadoop-3.1.3]$ hadoop version

Hadoop 3.1.3

7)重启如果Hadoop命令不能用再重启虚拟机)

[atguigu@hadoop102 hadoop-3.1.3]$ sudo reboot

2.5 Hadoop目录结构

1)查看Hadoop目录结构

[atguigu@hadoop102 hadoop-3.1.3]$ ll

总用量 52

drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 bin

drwxr-xr-x. 3 atguigu atguigu  4096 5月  22 2017 etc

drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 include

drwxr-xr-x. 3 atguigu atguigu  4096 5月  22 2017 lib

drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 libexec

-rw-r--r--. 1 atguigu atguigu 15429 5月  22 2017 LICENSE.txt

-rw-r--r--. 1 atguigu atguigu   101 5月  22 2017 NOTICE.txt

-rw-r--r--. 1 atguigu atguigu  1366 5月  22 2017 README.txt

drwxr-xr-x. 2 atguigu atguigu  4096 5月  22 2017 sbin

drwxr-xr-x. 4 atguigu atguigu  4096 5月  22 2017 share

2)重要目录

(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin目录:存放启动或停止Hadoop相关服务的脚本

(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值