02-hadoop的发展,架构模型,三种运行环境

离线课程第二天

课程回顾

1、三台虚拟机的联网创建

2、linux基础增强

​ 查找命令: ps -ef | grep xxxx

​ find / -name hello.txt

​ 用户与用户组:useradd hadoop passwd hadoop

​ su与sudo: su:切换用户

​ sudo:权限的借用 visudo

​ linux的权限管理:chmod -R 777 文件/文件夹

​ chown -R 777 文件/文件夹

​ chmod u+x o+w g+x 精确控制权限

​ 系统服务管理:service 服务名称 status|start|stop

​ 网络管理:

​ 主机名的配置:vim /etc/sysconfig/network

​ IP地址的配置: vim /etc/sysconfig/network-scripts/ifcfg-eth0

​ 域名映射:vim /etc/hosts

​ 网络端口监听:netstat -nltp

​ crontab : crontab -e crontab -l

linux的shell编程: 除了变量不空格,其他到处都空格

​ 变量的定义 变量名=变量值

​ 变量的引用: ${变量名} $变量名

​ 流程控制语句: for循环 if elif while

​ 函数的使用

大数据集群的环境准备:搞定

zookeeper:分布式的服务协调的框架

​ 主从的架构 +主备的架构:

​ leader: 主节点,处理事务性以及非事务性的请求

​ follower:从节点,处理非事务性的请求,以及转发事务性的请求给leader ,参与投票选举

zk的特性:全局数据一致性

​ zk的集群环境的搭建

​ zk的shell操作。添加节点,修改节点,删除节点,查询节点数据

​ 节点的类型:

​ 永久节点:普通永久节点,序列化的永久节点

​ 临时节点:普通的临时节点,序列化的临时节点

​ 客户端一旦断开连接,临时节点消失

​ zk的数据模型:树形结构,zk当中每一个节点称之为一个znode,znode兼具有文件和文件夹的特性

​ zk的watch机制:zk当中的监听器的机制,主要用于监听节点的变化

​ watch机制与临时节点搭配使用,效果非常好====》实现某些服务的监听

课程大纲:

hadoop的历史发展介绍

hadoop历史版本介绍

hadoop的三大发行公司

hadoop的架构模型

hadoop三种环境的安装

cdh版本的冲洗编译

cdh的zk环境的搭建

cdh伪分布式环境的搭建

hadoop集群使用体验

hadoop集群的基准测试

hadoop最早起源于nutch的项目

nutch:是一个爬虫的框架,通用的爬虫框架。Doug Cutting

爬的数据太多了。

第一个问题:数据的检索问题,Lucene,solr solrCloud Elasticsearch

第二个问题:数据的存储问题,如何解决海量数据的存储问题 TB ==》 PB ==》ZB

单台的服务器已经解决不了数据存储的问题了

2003 -2004年谷歌发表了两篇论文 ==》介绍了谷歌的分布式文件存储的概述 MapReduce(分布式文件计算系统) GFS(google FileSystem)

hadoop (hdfs(hadoop distributed FileSystem)+MapReduce) 最早的版本是0.x版本

广义上来说:hadoop指代一个大数据框架的生态圈

狭义上来说:hadoop就是一个框架

重复的造轮子。学大数据成本大。大数据开发工程师比JAVAWeb薪资高

现在hadoop已经经历了三大版本 0.x == > 1.x ==》 2.x ==》3.x稳定版本已经发布

hadoop三大发行公司的介绍:

大数据的框架太多了==》造成框架版本的兼容性 ==》 框架版本的升级型怎么做

框架太多了,如何统一的管理框架的版本号,如何做到统一的框架的升级???

免费开源的版本apache:版本更新迭代比较快,但是版本之间的兼容性,版本的升级,apache不管

实际生产线上环境,一般不要用apache的版本

免费开源的版本hortOnWorks :在开源版本的基础上,做好了版本的兼容,做好了版本的升级,有一定的群众基础,有一定的人用

服务软件收费版本:Cloudera 致力于做大数据软件框架的生态圈。生产环境用的比较多的版本。版本的升级,版本的兼容都做好了

MapR ==>大数据软件的公司

hadoop的架构模型:

hadoop1.x架构模型:

​ hdfs分布式文件存储系统:典型的主从架构。没有主备

​ NameNode:主节点,维护管理集群当中的元数据信息,处理用户的读写数据的请求

​ SecondaryNameNode:辅助namenode管理元数据信息

​ DataNode:从节点,主要用于存储数据

元数据信息:描述数据的数据,叫做元数据信息

时间简史这本书:查询系统 == 》书名,作者,书在哪个科目,科目究竟在哪一层楼,哪一层楼的哪一个书架,书架的第几排,书架哪一格。这些信息都是描述了我们这本书放在哪里,有了这些信息,我就可以快速找到一本书

只要知道了这些描述性的信息,我就可以快速的找到这本书

第二个问题:你怎么认识你同桌的????描述性的信息 ,什么样的样貌,环肥燕瘦,什么样的体型,长头发还是短头发,圆脸还是马脸,你已经记住了你同桌长什么样子。描述同桌的一些信息

第三个问题:文件系统改如何处理。计算机存储的文件,如何能够快速的找到呢????

路径,文件的名字,文件类型,创建时间,修改时间,文件权限,文件路径,文件名字,所属者。这些都是一些描述性的信息。

描述性的信息===》叫做元数据信息 ==》描述数据的数据

如果文件系统当中没有描述性的信息会怎么样????找不到文件了

文件的描述信息非常重要==》元数据==》与数据内容没有关系==》元数据都是用来确认数据究竟在哪里的==》只要抓住了元数据信息,就抓住了我们的数据

​ Mapreduce分布式文件计算系统:

​ JobTracker:主节点,主要职责用于接收客户端的计算任务,并且分配任务给TaskTracker去执行

​ TaskTracker:从节点。主要职责用于处理JobTracker分配的任务

hadoop2.x架构模型: 每个节点的作用,背下来

​ hdfs分布式文件存储系统:

​ Namenode:主节点,维护管理集群当中的元数据信息,处理客户端的读写数据的请求

​ SecondaryNameNode:辅助namneode管理元数据信息

​ DataNode:从节点,主要职责用于存储数据

​ Yarn资源调度系统:hadoop2.x新增的模块,取代了原来的jobTaks以及TaskTracker

​ ResourceManager:主节点。接收客户端的计算任务,并且分配资源(CPU,内存)。不分配任务

​ NodeManager:从节点。主要职责用于计算分配的任务

为了解决主节点(namenode,resourceManager) 的单点故障问题,引入了高可用,namenode最多可以有两个,一个主节点,一个是备份节点,resourceManager最多也可以有两个,一个是主节点,一个是备份节点

如果hdfs是高可用的时候:

​ Namenode:主节点,维护管理集群当中的元数据信息,处理客户端的读写数据的请求

​ journalNode:在两个namenode之间同步元数据,保证两个namenode之间的元数据信息一致

​ DataNode:从节点,主要职责用于存储数据

​ zkfc:namenode的守护进程,就是监看namenode的健康状况

如果namenode ha 那么就没有secondaryNamenode

hadoop运行的三种环境安装

1、standAlone环境:一般用不到。用一台机器来运行hadoop的环境

2、伪分布式环境:一般用于学习测试环境。主节点与从节点都运行在一台机器上面。从节点还运行在其他机器上面

3、完全分布式的环境:一般用于线上正式环境。主节点与从节点完全分开到不同的机器上面去,主节点完全分开,主节点一般都独立的占用一台机器

standAlone环境的安装

bin:存放执行脚本

sbin:存放执行脚本

etc/hadoop:配置文件存放路径

lib/native:hadoop的本地库,很重要。存放了一些C程序库。一定要支持本地库

share:hadoop运行需要的各种jar包

​ bin/hadoop checknative 检测hadoop的本地库是否支持的命令

​ hadoop: true /export/servers/hadoop-2.7.5/lib/native/libhadoop.so.1.0.0 本地C程序库的的支持。可以通过C程序来访问hadoop几群的数据

​ zlib: true /lib64/libz.so.1 压缩程序库
​ snappy: false 压缩程序库 谷歌出品的一种压缩算法。谷歌出品,必属精品
​ lz4: true revision:99 压缩程序库
​ bzip2: false 压缩程序库
​ openssl: false Cannot load libcrypto.so 压缩程序库

apache的版本的hadoop软件天生默认不支持snappy压缩,如果需要使得其支持,需要重新编译hadoop

hadoop更改配置的6个核心配置文件

core-site.xml:核心配置文件,决定了我们hdfs的集群究竟是分布式的,还是单机版的

hdfs-site.xml:主要定义了我们hdfs相关模块的一些配置。

一般刀片服务器,都有6个硬盘插槽。最少可以插入6块硬盘。一般硬盘可以到12T或者24T左右

hadoop-env.sh:定义我们的jdk的路径即可

mapred-site.xml:定义我们mr相关的模块的配置

yarn-site.xml:主要定义我们yarn的运行的相关的配置

slaves:决定我们从节点运行在哪些机器上面,Datanode NodeManager

注意:hadoop集群格式化的操作,只在hadoop初次搭建的时候执行一次,以后都不要执行了,因为格式化会将hdfs所有的数据全部删掉。类似于我们买回来一块新的硬盘

浏览器查看端口:

http://node01:50070/dfshealth.html#tab-overview hdfs的概览

http://node01:8088/cluster yarn集群的概览

http://node01:19888/jobhistory 历史完成任务的概览

完全分布式高可用环境服务规划

192.168.1.100192.168.1.110192.168.1.120
zookeeperzkzkzk
HDFSJournalNodeJournalNodeJournalNode
namenodeNameNode(active)NameNode (standBy)
ZKFCZKFC
DataNodeDataNodeDataNode
YARNResourceManager standByResourceManager active
NodeManagerNodeManagerNodeManager
MapReduceJobHistoryServer

重新编译CDH版本的hadoop以便于支持本地库以及支持snappy的压缩

hdfs的基本介绍:

hdfs是hadoop当中一个核心的组件

hdfs的特性:

​ master/slave架构:主从架构 namenode主节点,datanode从节点

​ 分块存储:将大的文件化成了一个个的小的block块,进行分块存储

​ 命名空间:对外提供统一的数据访问的格式 hdfs://

​ 元数据信息管理:namenode统一管理元数据信息

​ datanode:数据存储。datanode就是出磁盘的

​ 副本机制:所有的block块都会进行冗余存储,每个block块都会有三个副本

​ 一次写入,多次读取:简单的相关模型,设计hdfs之初就是假设我们hdfs上面的数据都是一次写入,多次读取的。擅长处理数据的读取,不太擅长处理频繁的写入

hdfs借鉴了linux的文件管理思想,提供了大量的类似于linux的命令来操作hdfs上面的文件

hdfs上面的文件可以限额

可以通过文件数量的限额,限制你最多可以上传多少个文件到hdfs上面去

可以通过空间大小的限额,限制你最多传多少M的数据到hdfs上面去

普通用户百度网盘2T

360网盘:每个人移动端登录送你36T

网盘上面的东西没法快速盈利。国家监管太严了

检测视频合法性已经很难了 ==》 鉴黄师

360网盘死了

城通网盘:唯一一个在盈利支持的网盘。卖广告

企业网盘的开发制作

hdfs的安全模式:hadoop当中提供的一种安全的模式。主要作用在我们集群刚启动的时候,需要进入安全模式进行自检。检测datanode状况,检测我们namenode的健康状况等等。默认30S之后会退出安全模式

安全模式打开的时候,对外不接受写数据请求,只提供读数据请求。有时候做一些集群健康的检测的时候,或者添加减少节点的时候,可以进入安全模式

hdfs集群管理命令

Usage: hdfs dfsadmin
Note: Administrative commands can only be run as the HDFS superuser.
        [-report [-live] [-dead] [-decommissioning]]
        [-safemode <enter | leave | get | wait>]
        [-saveNamespace]
        [-rollEdits]
        [-restoreFailedStorage true|false|check]
        [-refreshNodes]
        [-setQuota <quota> <dirname>...<dirname>]
        [-clrQuota <dirname>...<dirname>]
        [-setSpaceQuota <quota> <dirname>...<dirname>]
        [-clrSpaceQuota <dirname>...<dirname>]
        [-finalizeUpgrade]
        [-rollingUpgrade [<query|prepare|finalize>]]
        [-refreshServiceAcl]
        [-refreshUserToGroupsMappings]
        [-refreshSuperUserGroupsConfiguration]
        [-refreshCallQueue]
        [-refresh <host:ipc_port> <key> [arg1..argn]
        [-reconfig <datanode|...> <host:ipc_port> <start|status|properties>]
        [-printTopology]
        [-refreshNamenodes datanode_host:ipc_port]
        [-deleteBlockPool datanode_host:ipc_port blockpoolId [force]]
        [-setBalancerBandwidth <bandwidth in bytes per second>]
        [-fetchImage <local directory>]
        [-allowSnapshot <snapshotDir>]
        [-disallowSnapshot <snapshotDir>]
        [-shutdownDatanode <datanode_host:ipc_port> [upgrade]]
        [-getDatanodeInfo <datanode_host:ipc_port>]
        [-metasave filename]
        [-triggerBlockReport [-incremental] <datanode_host:ipc_port>]
        [-listOpenFiles]
        [-help [cmd]]

hadoop的基准测试:主要用于我们新的集群搭建成功之后,测试一下集群的容量,以及数据的读写速度

做基准测试就是向hdfs当中写入或者读取文件

实际工作的当中 5Gb ==> 50Gb ==> 200Gb ==>500Gb ==>1T

数据的写入速度:取决于我们机械磁盘的转速

实际工作当中写入速度大概在20-30M每秒

实际工作当中,读取数据需要涉及到跨越交换机,那么我们 数据的传输速度就取决于我们的交换机够不够快

一般交换机都是使用万兆网卡,最次也要到千兆网卡

传输速度一般在50-100M

课程总结:

1、hadoop的发展历史介绍 了解

2、历史版本 了解

3、hadoop的三大发行公司

4、hadoop的架构模型:

​ 1.x架构模型:

​ hdfs:分布式文件存储系统

​ namenode:主节点,管理元数据信息,接收客户端的请求

​ 元数据信息:描述数据的数据

​ datanode:从节点 存储数据

​ mapreduce:分布式的文件计算系统

​ JobTracker: 主节点,接收客户端的计算任务请求,分配任务

​ taskTracker:从节点,执行jobtracker分配的任务

​ 2.x架构模型: 背下来

​ hdfs:分布式的文件存储系统

​ namenode:管理元数据信息,接收客户端的请求

​ datanode:存储数据

​ snn:辅助namenode管理元数据信息

​ 如果namenodeHA

​ journalNode:两个namenode之间同步元数据信息

​ zkfc:namenode的守护进程,监看namenode的健康状况

​ yarn:资源调度系统

​ resourceManager:主节点,主要用于接收客户端的计算任务请求,并且分配资源

​ nodemanager:从节点,主要负责执行任务

hadoop三种运行环境:apache版本的三中运行环境 不强求

​ standAlone:所有的服务都运行在一台机器上面

​ 伪分布式:主节点都在同一台机器上面,从节点分不到不同的机器

​ 完全分布式:所有的主节点与从节点完全分开,所有的主节点,独立占用一台机器

cdh版本的hadoop的重新编译:

重新编译以支持本地库lib/native

cdh版本的zk环境搭建

伪分布式hadoop的环境的搭建 一定要搞定

hadoop 集群的使用体验: hadoop的shell操作 ls lsr mkdir 操作命令熟练的掌握

hadoop的高级命令的使用 了解知道

hadoop的基准测试:得要知道如何做基准测试

测试的正常值

写入正常值:20-30M每秒

读取正常值:50-100M每秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值