1. Hadoop 是什么?

  • 分布式系统基础框架
  • 主要解决 海量数据的存储与分析
  • Hadoop 是 一个Hadoop生态圈

2. Hadoop的优势?

  1. 高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,不会导致数据的丢失。
  2. 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
  3. 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
  4. 高容错性:能够自动将失败的任务重新分配

3. HDFS的架构

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

  1. NameNode(nn):
    存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、
    文件权限),以及每个文件的块列表和块所在的DataNode等
  2. DataNode(dn):
    在本地文件系统存储文件块数据,以及块数据的校验和
  3. Secondary NameNode(2nn):
    每隔一段时间对NameNode元数据备份

4. YARN

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

  1. ResourceManager(RM):
    整个集群资源(内存、CPU等)的老大
  2. ApplicationMaster(AM):
    单个任务运行的老大
  3. NodeManager(N M):
    单个节点服务器资源老大
  4. Container:
    容器,相当一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。

5. MapReduce

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

  • Map 阶段并行处理输入数据
  • Reduce 阶段对 Map 结果进行汇总

计算原理:
eg. 一个200T视频被分到400台服务器上,如何去检索某一指定的视频?
逐一去询问每一台服务器,是否有该视频?(Map阶段)把结果返回给汇总服务器(Reduce阶段)

6.HDFS、YARN、MapReduce三者的关系

ResourceManager 接收用户的需求,创建Container任务,分配给不同的节点执行。

7. Hadoop环境搭建

虚拟机安装CentOS7.5
参照我的这篇文章
安装CentOS

7.1 将这台机器作为模板机

  1. 配置VM的IP地址
    在编辑下打开虚拟网络编辑器
  2. HDFS副本存储策略是什么 hadoop副本是什么_HDFS副本存储策略是什么

  3. 修改此处为 192.168.10.0
  4. HDFS副本存储策略是什么 hadoop副本是什么_Hadoop_02

  5. 打开NAT设置
  6. HDFS副本存储策略是什么 hadoop副本是什么_big data_03

  7. 修改为,192,168.10.2 网关一般都 2
  8. HDFS副本存储策略是什么 hadoop副本是什么_hadoop_04

  9. 配置WIN10的IP地址
    打开系统的更改网络适配器找到VM8
  10. HDFS副本存储策略是什么 hadoop副本是什么_mapreduce_05

  11. 打开这里的属性
  12. HDFS副本存储策略是什么 hadoop副本是什么_HDFS副本存储策略是什么_06

  13. 配置信息如下:
  14. HDFS副本存储策略是什么 hadoop副本是什么_mapreduce_07

  15. 进入到虚拟机内

切换到root用户 su root 输入命令
打开文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33

!这里的BOOTPROTO要改成static

HDFS副本存储策略是什么 hadoop副本是什么_HDFS副本存储策略是什么_08


按i进入插入模式 , 新增以下信息

IPPADDR=192.168.10.100

GATEWAY=192.168.10.2

DNS1=192.168.10.2

HDFS副本存储策略是什么 hadoop副本是什么_mapreduce_09

按下ESC,输入冒号 :wq 保存并退出

  1. 修改主机名称

vim /etc/hostname

默认是localhost,这里修改成hadoop100
保存退出,需要reboot重启才能生效

  1. 主机名称映射,出现192.168.10.100的地方都可用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

HDFS副本存储策略是什么 hadoop副本是什么_mapreduce_10

  1. reboot重启一下
  2. 重新进入终端,验证IP地址
    用root用户,后面所有操作都在root用户下操作

输入 ifconfig

我这里遇到了无法上网和ens33不显示inet的问题,具体解决参考我另外一篇文章:
修改centos7的ifcfg-ens33文件后,遇到的各种问题

HDFS副本存储策略是什么 hadoop副本是什么_mapreduce_11


我这里是成功了,inet也是192.168.10.100 没有问题再测试一下网络是否通

HDFS副本存储策略是什么 hadoop副本是什么_Hadoop_12

看一下主机名称

HDFS副本存储策略是什么 hadoop副本是什么_Hadoop_13

到此这台机器的 IP地址,硬件软件都搞定了


7.2 xshell操作虚拟机

我们需要远程操作,要先安装xshell和xftp

运行xshell

点击新建

HDFS副本存储策略是什么 hadoop副本是什么_big data_14


设置远程服务器的地址

HDFS副本存储策略是什么 hadoop副本是什么_hadoop_15

配置用户登录密码

HDFS副本存储策略是什么 hadoop副本是什么_big data_16


接收并保存

HDFS副本存储策略是什么 hadoop副本是什么_HDFS副本存储策略是什么_17

配置主机映射地址(避免每次输入192.168.10.100麻烦,用hadoop100代替)

修改 C:\Windows\System32\drivers\etc\ 里的host文件

先将host文件复制到桌面,在桌面进行修改,加入以下r内容

HDFS副本存储策略是什么 hadoop副本是什么_mapreduce_18

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

现在重新新建一次会话,连接发现也是能够连到192.168.10.100服务器

HDFS副本存储策略是什么 hadoop副本是什么_hadoop_19

接下来安装软件库:

输入命令

yum install -y epel-release

HDFS副本存储策略是什么 hadoop副本是什么_big data_20

如果这里遇到进程号被锁定的问题
输入 kill -9 3030
3030为占用的进程号

关闭防火墙:(单个服务器防火墙没有必要开,公司在外部网络上加防火墙)
systemctl stop firewalld
systemctl disable firewalld.service

一些常用关闭防火墙相关命令:
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

其中Loaded表示已经关闭了

HDFS副本存储策略是什么 hadoop副本是什么_HDFS副本存储策略是什么_21


7.3 用户

添加一个用户,并赋予root权限

useradd zuck
passwd zuck
然后输入密码

打开文件 vim /etc/sudoers
修改/etc/sudoers 文件,在%wheel 这行下面添加一行 用户名 ALL=(ALL) NOPASSWD:ALL ,NOPASSWD表示不需要密码登录

HDFS副本存储策略是什么 hadoop副本是什么_Hadoop_22


:wq! 退出

su 用户名 进入你刚才建的用户

cd /opt 进入opt文件夹

ll 发现该文件夹下面存在 rh 文件夹,删掉它

sudo rm -rf rh/ 删除rh文件夹

[zuck@hadoop100 root]$ cd /opt/
[zuck@hadoop100 opt]$ ll
total 0
drwxr-xr-x. 2 root root 6 Oct 30  2018 rh
[zuck@hadoop100 opt]$ sudo rm -rf rh/ 
[zuck@hadoop100 opt]$ ll
total 0
[zuck@hadoop100 opt]$

在/opt 目录下创建 module、software 文件夹(未来的所有软件、安装包都在这里面安装)
sudo mkdir module
sudo mkdir software

[zuck@hadoop100 opt]$ ll
total 0
drwxr-xr-x. 2 root root 6 Nov  5 05:06 module
drwxr-xr-x. 2 root root 6 Nov  5 05:06 software

发现都属于root用户,把他们修改成zuck账号

sudo chown zuck:zuck module/ software/


卸载虚拟机自带的JDK

过滤安装软件带java的 rpm -qa | grep -i java

HDFS副本存储策略是什么 hadoop副本是什么_hadoop_23


先切换到root账号

删除jdk:

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

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

删完后重启虚拟机 reboot


至此,Hadoop的模板机建立完毕!