1. Hadoop 是什么?
- 分布式系统基础框架
- 主要解决 海量数据的存储与分析
- Hadoop 是 一个Hadoop生态圈
2. Hadoop的优势?
- 高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,不会导致数据的丢失。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
- 高容错性:能够自动将失败的任务重新分配
3. HDFS的架构
Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统
- NameNode(nn):
存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、
文件权限),以及每个文件的块列表和块所在的DataNode等 - DataNode(dn):
在本地文件系统存储文件块数据,以及块数据的校验和 - Secondary NameNode(2nn):
每隔一段时间对NameNode元数据备份
4. YARN
Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。
- ResourceManager(RM):
整个集群资源(内存、CPU等)的老大 - ApplicationMaster(AM):
单个任务运行的老大 - NodeManager(N M):
单个节点服务器资源老大 - 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 将这台机器作为模板机
- 配置VM的IP地址
在编辑下打开虚拟网络编辑器 - 修改此处为 192.168.10.0
- 打开NAT设置
- 修改为,192,168.10.2 网关一般都 2
- 配置WIN10的IP地址
打开系统的更改网络适配器找到VM8 - 打开这里的属性
- 配置信息如下:
- 进入到虚拟机内
切换到root用户 su root 输入命令
打开文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33
!这里的BOOTPROTO要改成static
按i进入插入模式 , 新增以下信息
IPPADDR=192.168.10.100
GATEWAY=192.168.10.2
DNS1=192.168.10.2
按下ESC,输入冒号 :wq 保存并退出
- 修改主机名称
vim /etc/hostname
默认是localhost,这里修改成hadoop100
保存退出,需要reboot重启才能生效
- 主机名称映射,出现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
- reboot重启一下
- 重新进入终端,验证IP地址
用root用户,后面所有操作都在root用户下操作
输入 ifconfig
我这里遇到了无法上网和ens33不显示inet的问题,具体解决参考我另外一篇文章:
修改centos7的ifcfg-ens33文件后,遇到的各种问题
我这里是成功了,inet也是192.168.10.100 没有问题再测试一下网络是否通
看一下主机名称
到此这台机器的 IP地址,硬件软件都搞定了
7.2 xshell操作虚拟机
我们需要远程操作,要先安装xshell和xftp
运行xshell
点击新建
设置远程服务器的地址
配置用户登录密码
接收并保存
配置主机映射地址(避免每次输入192.168.10.100麻烦,用hadoop100代替)
修改 C:\Windows\System32\drivers\etc\ 里的host文件
先将host文件复制到桌面,在桌面进行修改,加入以下r内容
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服务器
接下来安装软件库:
输入命令
yum install -y epel-release
如果这里遇到进程号被锁定的问题
输入 kill -9 3030
3030为占用的进程号
关闭防火墙:(单个服务器防火墙没有必要开,公司在外部网络上加防火墙)
systemctl stop firewalld
systemctl disable firewalld.service
一些常用关闭防火墙相关命令:
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
其中Loaded表示已经关闭了
7.3 用户
添加一个用户,并赋予root权限
useradd zuck
passwd zuck
然后输入密码
打开文件 vim /etc/sudoers
修改/etc/sudoers 文件,在%wheel 这行下面添加一行 用户名 ALL=(ALL) NOPASSWD:ALL ,NOPASSWD表示不需要密码登录
: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
先切换到root账号
删除jdk:
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
rpm -qa:查询所安装的所有 rpm 软件包
grep -i:忽略大小写
xargs -n1:表示每次只传递一个参数
rpm -e –nodeps:强制卸载软件
删完后重启虚拟机 reboot
至此,Hadoop的模板机建立完毕!