一、什么是hadoop
- Hadoop是一个由Apache基金会所开发的分布式系统基础架构
- 主要解决,海量数据的__存储__和海量数据的__分析计算__问题。
- 广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈
二、hadoop的发展史
- Lucene--Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎
- 2001年年底成为apache基金会的一个子项目
- 对于大数量的场景,Lucene面对与Google同样的困难
- 学习和模仿Google解决这些问题的办法 :微型版Nutch
- 可以说Google是hadoop的思想之源(Google在大数据方面的三篇论文) GFS --->HDFS Map-Reduce --->MR BigTable --->Hbase
- 2003-2004年,Google公开了部分GFS和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,使Nutch性能飙升
- 2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中
- 名字来源于Doug Cutting儿子的玩具大象
- Hadoop就此诞生并迅速发展,标志这云计算时代来临
三、hadoop的优势
- 高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
- 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
- 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
- 高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。
四、Hadoop组成
- Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
- Hadoop MapReduce:一个分布式的离线并行计算框架。
- Hadoop YARN:作业调度与集群资源管理的框架。
- Hadoop Common:支持其他模块的工具模块。
五、HDFS架构概述
- NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
- DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
- Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
六、YARN架构概述
- ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
- NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
- ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
- Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
七、MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
- Map阶段并行处理输入数据
- Reduce阶段对Map结果进行汇总
国内镜像下载
国内阿里云镜像下载:https://mirrors.aliyun.com/centos/7/isos/x86_64/
进入阿里云站点,选择 CentOS-7-x86_64-DVD-1810.iso下载
1、打开VMware Workstation Pro 15.5,点击“创建新的虚拟机”
2、选择“自定义(高级)”,下一步
3、此步用默认选项即可
4、点击“稍后安装操作系统”,下一步
4、选择要安装的虚拟机操作系统。这里我安装的是Linux的CentOS 7 64位系统,按照实际情况选择即可,下一步
可能出现的问题
在桌面虚拟机软件VMVare Workstation中创建新的虚拟机,选择客户机操作系统时,出现“此主机不支持64位客户机操作系统,此系统无法运行”的警告。
如果无视这个问题,直接点击“下一步”,倒也可以完成环境的配置,但是后面想要开启此虚拟机并正式安装红帽系统时,会出现“ VMware Workstation 与 Hyper-V不兼容 ”的提示,需要移除Hyper-V然后再运行VMWare安装CentOS。
这两个问题出现的根本原因都是Hyper-V和VMware冲突了,因此解决这个问题就需要关闭Hyper-V。
解决方法——通过命令行
以管理员身份运行命令提示符(cmd),然后执行命令 bcdedit /set hypervisorlaunchtype off ,执行完后重启计算机即可解决。
6、配置CPU个数。根据电脑性能,配置给虚拟机的处理器(CPU)。
简单来说就是两两相乘,核总数不能超过本机的
处理器数量(P):
1、启用了超线程或具有双核CPU的单处理器主机可视为拥有两个逻辑处理器。
2、只有拥有至少两个逻辑处理器的主机才支持指定多个虚拟处理器。
3、具有两个CPU的多处理器主机无论是否为双核处理器或是否启用了超线程,均视为拥有至少两个逻辑处理器。
4、物理CPU个数×每颗核数就等于逻辑CPU的个数。
每个处理器的核心数量(C):
1、多内核(multicore chips)是指在一个处理器(CPU)中集成两个或多个完整的计算引擎(内核)。
2、一个CPU中可以包括多个核,相当于逻辑上的多个CPU在工作。
每个人电脑配置不一样,最后设置的数量只要没有超出电脑配置即可。博主的电脑配置如下:
如果还想搞的更清楚可以参考博客:VMware : 处理器数量和每个处理器的核心数量
这里的内存也是根据本机来的,不用给很大,够用就行,我这里给2048MB
以上都选默认的就行了
磁盘大小根据建议值来就行,系统安装之后也就占5、6个G的样子
这里默认的就好了,直接下一步
点击完成
引导设置成功后先进入Centos的主引导界面
菜单有三个选项
1、安装CentOS
2、试用CentOS
3、故障排除
这里进入第一项- 安装Centos【上下键选中并回车】
第二个界面是选择安装语言界面,我相信看这个教程的很多童鞋都是新手或者第一次安装Centos的同胞,对于新手而言,最好选择可以看懂的中文语言,往下拉到底就可以看到中文了,选中它。单机Continue/继续 【或者键盘的Tab键选中+回车确定】
第三个界面非常关键,这涉及到你系统的基本配置,比如硬盘大小、根分区以及swap分区
本地化:本地化这一块不需要做过多的配置,按需即可;
软件:软件下面的安装源和软件选中,只有特殊需求的童鞋才会用到。这一点从里面的选项描述就可以知道,为了不错误引导新手,这里就不放图了。
系统:我们来重点说一下系统
先说KDUMP
对于新手来说,这个在新手阶段无使用价值,配置启用或者不启用都无关紧要
安装位置
由于安装位置涉及到你自己的磁盘数据以及分区内容,如果原分区包含有数据、有必要先备份数据
点击 添加磁盘 按钮可以添加指定的附加设备或者网络设备(通过ISCSI、FCoE等方式添加硬盘)
然后下面其他存储选项中有
Automatically configure partitioning
自动配置分区
I will configure partitioning
手动配置分区
I would like to make additional space available
Hadoop 下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
1 ) 用 XShell 文件传输 工具将 hadoop-3.1.3.tar.gz 导入到 opt 目录下面的 software 文件夹下面
注:我在上一篇文章中将hadoop与jdk一起导入了,如果按照我上一篇文章一步步做的就不需要做这一步了
2 ) 进入到 Hadoop 安装包路径下
[leokadia@hadoop102 ~]$ cd /opt/software/
3 ) 解压安装文件到/opt/module 下面
[leokadia@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
4 ) 查看是否解压成功
[leokadia@hadoop102 software]$ ls /opt/module/
hadoop-3.1.3
5 )进入hadoop
进入hadoop解压位置
[leokadia@hadoop102 software]$ cd ..
[leokadia@hadoop102 opt]$ cd module
[leokadia@hadoop102 module]$ ll
总用量 0
drwxr-xr-x. 9 leokadia leokadia 149 9月 12 2019 hadoop-3.1.3
drwxr-xr-x. 7 leokadia leokadia 245 4月 2 2019 jdk1.8.0_212
1
2
3
进入hadoop-3.1.3
[leokadia@hadoop102 module]$ cd hadoop-3.1.3
6 ) 将 Hadoop 添加到环境变量
(1)获取 Hadoop 安装路径
[leokadia@hadoop102 hadoop-3.1.3]$ pwd
/opt/module/hadoop-3.1.3
(2)打开/etc/profile.d/my_env.sh 文件
[leokadia@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)让修改后的文件生效
[leokadia@hadoop102 hadoop-3.1.3]$ source /etc/profile
6 ) 测试是否安装成功
[leokadia@hadoop102 hadoop-3.1.3]$ hadoop version
Hadoop 3.1.3
7 ) 重启 ( 如果 Hadoop 命令不能用 再重启 虚拟机 )
[leokadia@hadoop102 hadoop-3.1.3]$ sudo reboot
拓展: Hadoop 目录 结构
1 ) 查看 Hadoop 目录结构
[leokadia@hadoop102 hadoop-3.1.3]$ ll
总用量 176
drwxr-xr-x. 2 leokadia leokadia 183 9月 12 2019 bin
drwxr-xr-x. 3 leokadia leokadia 20 9月 12 2019 etc
drwxr-xr-x. 2 leokadia leokadia 106 9月 12 2019 include
drwxr-xr-x. 3 leokadia leokadia 20 9月 12 2019 lib
drwxr-xr-x. 4 leokadia leokadia 288 9月 12 2019 libexec
-rw-rw-r--. 1 leokadia leokadia 147145 9月 4 2019 LICENSE.txt
-rw-rw-r--. 1 leokadia leokadia 21867 9月 4 2019 NOTICE.txt
-rw-rw-r--. 1 leokadia leokadia 1366 9月 4 2019 README.txt
drwxr-xr-x. 3 leokadia leokadia 4096 9月 12 2019 sbin
drwxr-xr-x. 4 leokadia leokadia 31 9月 12 2019 share
2 ) 重要目录
(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例
最近报名考驾校,时间分配不是很够,后面会再仔细一点发博客。