hadoop基础知识

1.hadoop的发展历史:最初起源于nutch的项目,爬虫项目,通用的爬虫,Doug cutting这个哥们儿写的
抓取回来的数据量太大:遇到两个问题 第一个问题:如何存储 第二个问题:如何检索
如何检索:lucene
如何存储:2003年左右的时候,谷歌的三篇论文 GFS(Google file System) Bigtable
mapreduce 如何解决的思想问题

hadoop ==》 HDFS(hadoop distributed file system) mapReduce(分布式文件计算系统)
HBase:非关系型的数据库

Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目(同年,cloudera公司成立),迎来了它的快速发展期。

狭义上来说,hadoop就是单独指代hadoop这个软件
广义上来说,hadoop指代大数据的一个生态圈,包括很多其他的软件
1

2

2.hadoop的历史版本介绍

0.x系列版本:hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本
1.x版本系列:hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等
2.x版本系列:架构产生重大变化,引入了yarn平台等许多新特性

线上环境一般都是用CDH版本的软件,包括软件的兼容性,软件的升级都做好了,不用再费心了
https://www.cloudera.com/
cloudera主要是美国一家大数据公司在apache开源hadoop的版本上,通过自己公司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困难,版本兼容性等各种问题,生产环境强烈推荐使用

3.hadoop1.x的架构模型:
3.1HDFS分布式文件存储系统
hdfs部分:典型的主从架构,没有主备的概念
namenode:集群当中的主节点,主要用于维护集群当中的元数据信息,以及接受用户的请求,处理用户的请求
secondaryNamenode:主要是辅助namenode管理元数据信息的
datanode:集群当中的从节点,主要用于存储数据

文件系统:存放的数据,都能够找得到
元数据: 描述数据的数据
文件系统:分盘 文件夹 文件名称 创建时间,创建人,修改时间 文件大小,文件名称,文件路径,文件权限 这些信息,全部都是描述性的信息
全部称之为元数据信息:描述数据的数据,称之为元数据信息

3.2MapReduce分布式文件计算系统
jobTracker:主节点,接收用户请求,分配任务给taskTracker去执行
taskTracker:从节点,主要用于接收jobTracker分配的任务,并执行任务
094803

4.hadoop2.x的架构模型:
第一种:NameNode与ResourceManager单节点架构模型
hdfs文件系统:
namenode:集群当中的主节点,主要用于维护元数据信息,以及处理用户的请求
secondaryNamenode:主要是辅助namenode管理元数据信息的
datanode:集群当中的从节点,主要用于存储数据

yarn资源调度系统:
resourceManager:yarn资源调度系统的主节点,接收用户请求,分配资源(分配CPU ,分配内存等等)
nodeManager:从节点,主要用于处理计算任务
3

第二种:NameNode单节点与ResourceManager高可用架构模型

hdfs文件系统
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据
secondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据

yarn资源调度系统:
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配,以及计算任务的划分,通过zookeeper实现ResourceManager的高可用
NodeManager:负责执行主节点ResourceManager分配的任务
4

第三种:NameNode高可用与ResourceManager单节点架构模型

hdfs文件系统:
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,其中nameNode可以有两个,形成高可用状态
DataNode:集群当中的从节点,主要用于存储集群当中的各种数据
JournalNode:文件系统元数据信息管理

namenode高可用:
namenode active状态:处于活跃的主节点,处理用户请求,维护元数据信息
namenode stand 状态:处于备份的节点,活跃的主节点死了之后,备份的节点,马上切换为活跃的主节点,对外提供服务
如果namenode高可用,那么一定要保证namenode的元数据信息同步一致,如果不一致,就会出现脑裂的问题
journalNode:为了解决元数据共享的问题,引入journalNode的机制,专门用于同步元数据信息
zkfc:zkFailoverController ,namenode的守护进程,主要用于监听namenode什么时候死掉,死掉了之后,马上通知另外一个namenode切换为主节点

yarn资源调度系统:
ResourceManager:接收用户的计算请求任务,并负责集群的资源分配,以及计算任务的划分
NodeManager:负责执行主节点ResourceManager分配的任务
5

第四种:NameNode与ResourceManager高可用架构模型
hdfs文件系统:
NameNode:集群当中的主节点,主要用于管理集群当中的各种数据,一般都是使用两个,实现HA高可用
JournalNode:元数据信息管理进程,一般都是奇数个
DataNode:从节点,用于数据的存储

yarn资源调度系统:
ResourceManager:Yarn平台的主节点,主要用于接收各种任务,通过两个,构建成高可用
NodeManager:Yarn平台的从节点,主要用于处理ResourceManager分配的任务

6

hadoop 2.0版本引入namenode高可用机制
resourcemanager 2.4.0版本引用高可用机制
hadoop 3.x版本namenode可以有很多个

5.apache版本的hadoop三种运行环境的介绍
1、standAlone环境:单机版的hadoop运行环境
2、伪分布式环境:主节点都在一台机器上面,从节点分开到其他机器上面 借助三台机器来实现
主节点有:namenode resourceManager
3、完全分布式环境:主节点全部都分散到不同的机器
namenode active 占用一台机器
namenode standBy占用一台机器
resourceManger active 占用一台机器
resourceManager standby 占用一台机器

5.1、StandAlone环境搭建
第一步:下载apache hadoop并上传到服务器
解压命令
cd /export/softwares
tar -zxvf hadoop-2.7.5.tar.gz -C /export/servers/

Hadoop的本地库:lib/native 本地库很重要,里面集成了一些C程序,包括一些压缩的支持

7

bin/hadoop checknative 检测hadoop的本地库,是否支持
8

9

注意:默认的apache的版本的压缩方式 snappy不支持
snappy是一种压缩方式:google提供的一种压缩算法 谷歌出品,必属精品

压缩问题:如果压缩的太厉害了,解压的时候CPU消耗会比较大

注意:vim编辑文件过程中,如果不小心非正常中断地文件编辑,会出现一个交换区的文件(需要执行ls -al命令才可查看到交换区文件),需要将交换区的文件删除后(rm -rf xxx),才可以对原文件进行编辑。
10

第二步:修改配置文件

1.修改core-site.xml:核心配置文件,主要定义了我们的集群是分布式,还是本机运行
2.修改hdfs-site.xml: 分布式文件系统的核心配置 决定了我们数据存放在哪个路径,数据的副本,数据的block块大小等等

linux的磁盘空间的查看 df -lh

3.修改hadoop-env.sh:配置我们jdk的home路径
4.修改mapred-site.xml: 定义了我们关于mapreduce运行的一些参数
5.yarn-site.xml:定义我们的yarn集群
6.slaves:定义了我们的从节点是哪些机器 (datanode nodemanager运行在哪些机器上)

第三步:启动集群

要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。
注意: 首次启动 HDFS 时,必须对其进行格式化操作(只在集群初次启动的时候执行一次)。
本质上是一些清理和准备工作,因为此时的 HDFS 在物理上还是不存在的。
hdfs namenode -format 或者 hadoop namenode –format

启动命令:
创建数据存放文件夹

准备启动
第一台机器执行以下命令
cd /export/servers/hadoop-2.7.5/
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver

三个端口查看界面
http://node01:50070/explorer.html#/ 查看hdfs
http://node01:8088/cluster 查看yarn集群
http://node01:19888/jobhistory 查看历史完成的任务

查看日志
11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值