linux企业运维——hadoop大数据平台(上)hadoop工作原理部署资源管理器yarn(代码片段)

是大姚呀 是大姚呀     2022-12-05     405

关键词:

Linux企业运维——Hadoop大数据平台(上)Hadoop工作原理、部署、资源管理器Yarn

文章目录

一、Hadoop简介

1.1、Hadoop框架与模块

Hadoop名字不是一个缩写,是Hadoop之父Doug Cutting儿子毛绒玩具象命名的。

Hadoop起源于Google的三大论文:

  • GFS:Google的分布式文件系统Google File System
  • MapReduce:Google的MapReduce开源分布式并行计算框架
  • BigTable:一个大型的分布式数据库

演变关系:

  • GFS—->HDFS
  • Google MapReduce—->Hadoop MapReduce
  • BigTable—->HBase

hadoop主流版本:

  • Apache基金会hadoop
  • Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”)
  • Hortonworks版本(Hortonworks Data Platform,简称“HDP”)


Hadoop框架包括以下四个模块:

  • Hadoop Common:
    这些是其他Hadoop模块所需的Java库和实用程序。这些库提供文件系统和操作系统级抽象,并包含启动Hadoop所需的Java文件和脚本。
  • Hadoop YARN: 这是一个用于作业调度和集群资源管理的框架。
  • Hadoop Distributed File System (HDFS): 分布式文件系统,提供对应用程序数据的高吞吐量访问。
  • Hadoop MapReduce:这是基于YARN的用于并行处理大数据集的系统。

其中最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。

hadoop应用场景:
在线旅游、移动数据、电子商务、能源开采与节能、基础架构管理、图像处理、诈骗检测、IT安全、医疗保健等等



HDFS属于Master与Slave结构。一个集群中只有一个NameNode,可以有多个DataNode。

HDFS存储机制保存了多个副本,当写入1T文件时,我们需要3T的存储,3T的网络流量带宽;系统提供容错机制,副本丢失或宕机可自动恢复,保证系统高可用性。

HDFS默认会将文件分割成block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,会导致内存的负担很重。

HDFS采用的是一次写入多次读取的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。

1.2、Hadoop工作原理

HDFS工作机制(HDFS漫画点击查看):
客户端向NN请求写数据,NN向客户端返回DN列表,客户端决定以多大的block size切分文件、决定一个block几个副本,接着客户端以数据流的方式发送副本到DN上,除了副本还会发送DN列表给DN,DN一边接收副本一边根据DN列表自动同步副本到其他DN上,当所有副本同步完成后,DN会返回信息给NN:
(1)客户端和DN在同一个节点:第一个副本存放在本机,第二个副本存放在与第一个副本不同的机架中,第三个副本与第二个副本在同一机架内但在不同DN上,,其他后续副本随机(ppt-18)
(2)客户端和DN不在同一个节点:第一个副本随机存放,(其余相同)第二个副本存放在与第一个副本不同的机架中,第三个副本与第二个副本在同一机架内但在不同DN上,,其他后续副本随机

HDFS存储理念是以最少的钱买最烂的机器并实现最安全、难度高的分布式文件系统(高容错性低成本),HDFS认为机器故障是种常态,所以在设计时充分考虑到单个机器故障,单个磁盘故障,单个文件丢失等情况。

HDFS容错机制:
节点失败监测机制:DN每隔3秒向NN发送心跳信号,10分钟收不到,认为DN宕机。
通信故障监测机制:只要发送了数据,接收方就会返回确认码。
数据错误监测机制:在传输数据时,同时会发送总和校验码。

二、Hadoop工作模式

2.1、hadoop部署

在真实主机创建两台新的虚拟机server1、server2,先开启一个虚拟机server1(2G内存)

真实主机下载hadoop官方套件,需要jdk环境,发送给server1
创建hadoop用户,切换到这一普通用户运行,不建议使用超级用户身份

使用源码安装(不用rpm包安装)

创建软连接方便后续更新升级,进入/home/hadoop/hadoop/etc/hadoop目录下,编辑hadoop-env.sh脚本文件

配置环境变量

复制/etc/hadoop/*.xml至刚创建的input文件夹内

配置在非分布式模式下作为jar运行,查找并显示匹配正则表达式的内容。 将输出写入到 output目录,output目录会自动创建

output被创建,查看其内容

2.2、伪分布式

编辑/home/hadoop/hadoop/etc/hadoop目录下的hdfs-site.xml文件,以伪分布式模式在单节点上运行,每个 Hadoop 守护进程作为单独的 Java 进程运行。

副本数设置为1

再编辑core-site.xml文件,指定hdfs的NN的ip,由于是伪分布式,所以主从都在一起,填写本机9000端口

查看workers,也是自己

切换到root用户,给hadoop用户加密码,再切换回hadoop用户,做免密,先生成密钥

将密钥复制给localhost

测试免密登录,初始化文件系统

初始化完成后,数据都存放在/tmp。启动NN和DN


jps显示当前开启的java进程,使用此命令需要将jps命令添加到环境变量

编辑.bash_profile添加java环境变量

重新读取环境变量,再次使用jps命令,可以看到启动的进程,secondnode表示当master的NN down掉后由它来接管

浏览器访问server1的9870端口进入hadoop页面
9870是hadoop默认的监听端口,9000是Namenode和Datanode的连接端口

server1输入bin/hdfs dfsadmin -report通过命令行查看文件系统

文件系统信息如图

创建用户主目录,注意用户要一致,查看上传目录没有文件,上传input目录

命令行查看上传目录,可以看到input目录

也可以通过浏览器图形化界面界面查看文件系统

输入用户主目录点击Go,可以看到目录内容

点击打开input目录可以看到包含的所有文件

此时bin命令进行统计,input不是本地的,以单词数统计input目录内容将结果输出到output

本地删除output目录,再查看还是可以看到该目录及其内容,因为已经上传到了分布式中

在hadoop页面中可以看到该目录

点击进入output目录,查看其包含的内容

server1本地在分布式中下载output目录,然后切换到该目录查看其内容,正常

2.3、完全分布式

真实主机再开启虚拟机server3

虚拟机都正常运行,server2和server3作为DN,完全分布式部署需要将DN和NN分开,NameNode-master只保留源数据,不存储数据

server1编辑hdfs-site.xml,将副本数量改为2

再编辑core-site.xml文件,将本机地址设置为master节点

再编辑workers,指定server3和server4是数据节点

server1安装nfs-utils文件系统

安装完成后,查看hadoop用户uid为1000,gid为1000,共享/home/hadoop目录,赋予读写权限,匿名用户uid和gid与master节点的hadoop用户一致,重启nfs服务

server2和server3添加hadoop用户,安装nfs文件系统


server2挂载nfs中server1分享的/home/hadoop目录到本地的/home/hadoop目录,然后切换到hadoop用户

server3也做同样的操作

server1切换到hadoop用户,进入hadoop目录下,将之前的伪分布式部署停止,重新格式化

重新格式化文件系统后数据会清除

server1测试与server2和server3的ssh免密连接,成功连接

server2和server3也分别与其他两个节点测试免密连接,也成功了,因为使用nfs文件系统,挂载目录下的数据都是同步的。


server1开启nfs,使用jps查看java进程,可以看到作为NN节点运行

server2和server3查看java进程,可以看到作为DN节点在运行


浏览器访问hadoop图形化页面,点击查看DN节点信息,可以看到server2和server3正常显示

因为重新格式化文件系统,之前数据都被清除

server1在dfs创建虚拟目录/user/hadoop,将input目录上传至文件系统,以单词数统计input目录内容将结果输出到output

在web页面中此时可以看到刚才上传的两目录

点击进入input目录,可以正常查看目录内容

进入output目录,内容正常显示

我们可以进行如下操作来再添加一个DN节点

真实主机再开启一台虚拟机server4

server4安装nfs

server2创建用户hadoop,挂载nfs中server1分享的/home/hadoop目录到本地的/home/hadoop目录,然后切换到hadoop用户进行测试

server4进入到/etc/hadoop/目录下,编辑workers,将自己添加进工作节点

server4返回到上上级目录,运行DN节点进程

现在hadoop页面上可以看到server4加入到工作节点

三、资源管理器YARN

RM:resourcemanager工作原理:
客户端向RM(ResourceManager)申请,RM上有一个任务队列,RM向客户端返回app所需资源路径,接着客户端向RM申请运行AM,AM在NM上运行,AM向RM继续申请资源,RM会把job分布式地分给NM运行,一旦所有job运行完成,AM注销并释放容器(逻辑层面)资源

server1编辑etc/hadoop/mapred-site.xml文件,添加mapreduce模块,$HADOOP_MAPERD_HOME变量稍后会在环境变量中定义

再编辑yarn-site.xml文件,添加nodemanager模块

再编辑hadoop-env.sh环境变量文件,定义HADOOP_MAPERD_HOME变量

依次将三个文件配置完毕:使用YARN、白名单列表、定义变量

server1开启yarn,jps查看java进程,可以看到ResourceManager运行

DN节点server2、server3和server4查看java进程,可以看到NodeManager正在运行


浏览器访问server1的8088端口可以查看资源管理页面

linux企业运维——hadoop大数据平台(下)hdfs高可用yarn高可用hbase高可用(代码片段)

Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用文章目录Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用一、Hadoop高可用1.1、zoomkeeper集群部署1.2、hdfs高可用1.... 查看详情

linux企业运维——hadoop大数据平台(下)hdfs高可用yarn高可用hbase高可用(代码片段)

Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用文章目录Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用一、Hadoop高可用1.1、zoomkeeper集群部署1.2、hdfs高可用1.... 查看详情

大数据运维工作(linux,ogg,链路监控,hadoop运维等)(代码片段)

大数据运维工程师工作内容Linux运维手册1.启动/关闭集群组件1.1负载均衡1)Nginx运维命令Copytoclipboardcd/usr/nginx/sbin#进入sbin目录Copytoclipboard./nginx#启动nginxCopytoclipboard./nginx-sstop#停止NginxCopytoclipboard./nginx-sreload#重启Ngi 查看详情

学完linux去哪里就业比较好?

...。  1:服务器、系统,包括系统集成、系统工程师、运维工程师、云工程师等;  2、云计算大数据:运维开发、运维大数据、大数据、云工程师(偏开发);  3、人工智能:智能运维、大数据分析、算法工程师。Linux就业方向... 查看详情

linux企业运维——elk日志分析平台(中)es节点优化logstash数据采集过滤插件(代码片段)

Linux企业运维——ELK日志分析平台(中)ES节点优化、logstash数据采集、过滤插件文章目录Linux企业运维——ELK日志分析平台(中)ES节点优化、logstash数据采集、过滤插件一、ES节点优化1.1、ES节点角色1.2、节点角色... 查看详情

开源项目丨一文详解一站式大数据平台运维管家chengying如何部署hadoop集群

课件获取:关注公众号“数栈研习社”,后台私信“ChengYing”获得直播课件视频回放:​​点击这里​​ChengYing开源项目地址:​​github​​ 丨 ​​gitee​​ 喜欢我们的项目给我们点个__STAR!STAR!!STAR!!!(重... 查看详情

linux企业运维——elk日志分析平台(下)kibana数据可视化xpack安全验证轻量级metricbeat(代码片段)

Linux企业运维——ELK日志分析平台(下)kibana数据可视化、xpack安全验证、轻量级metricbeat文章目录Linux企业运维——ELK日志分析平台(下)kibana数据可视化、xpack安全验证、轻量级metricbeat一、kibana数据可视化1.1、kib... 查看详情

大数据linux重要吗

...良好的界面,支持多种平台。随着网络科技的发展,现在企业对大数据Linux人才IDE需求也变得越来越多,所以它的前景还是非常不错的。 查看详情

大数据运维---linux安装hadoophadoopha集群部署(代码片段)

1.Hadoop下载好之后解压到相应目录:    为了方便管理,我们使用mv把名称更改为hadoop[root@master~]#tar-zxvfhadoop-2.7.1.tar.gz-C/usr/local/src/[root@master~]#cd/usr/local/src/[root@mastersrc]#lshadoop-2.7.1javazookeeper[root@mastersrc]#mvhadoop... 查看详情

大数据在哪儿学比较好?

...究竟有哪些就业方向。大数据就业岗位随着大数据技术在企业界如火如荼的实践,企业对组建大数据团队的迫切程度也也来越高,对与大数据相关高端人才的需求也越来越紧迫,但企业对大数据团队的组建和角色分配方面缺一直... 查看详情

大数据hadoop实验报告(代码片段)

文章目录实验一熟悉常用的Linux操作和Hadoop操作1.实验目的2.实验平台3.实验内容和要求实验二熟悉常用的HDFS操作1.实验目的2.实验平台3.实验步骤实验三熟悉常用的HBase操作1.实验目的2.实验平台3.实验步骤实验四MapReduce/Spark编程初... 查看详情

大数据hadoop实验报告(代码片段)

文章目录实验一熟悉常用的Linux操作和Hadoop操作1.实验目的2.实验平台3.实验内容和要求实验二熟悉常用的HDFS操作1.实验目的2.实验平台3.实验步骤实验三熟悉常用的HBase操作1.实验目的2.实验平台3.实验步骤实验四MapReduce/Spark编程初... 查看详情

linux企业运维——elk日志分析平台(上)安装与配置es图形化管理插件(代码片段)

Linux企业运维——ELK日志分析平台(上)安装与配置、ES图形化管理插件文章目录Linux企业运维——ELK日志分析平台(上)安装与配置、ES图形化管理插件一、ELK简介二、ELK的安装与配置三、ELK集群搭建四、elasticsear... 查看详情

大数据技术与架构——大数据处理架构hadoop(上)

...doop的应用现状1.5ApacheHadoop版本演变1.6Hadoop各种版本(企业开发产品)2.Hadoop项目结构1.Hadoop概述1.1Hadoop简介Hadoop是Apache[ә’pætʃi]软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式... 查看详情

大数据时代,就业转型必备技能!

...PythonPython往往在大数据处理框架中得到支持。3、Linux运维企业大数据开发往往是在Linux操作系统下完成的,因此,想从事大数据相关工作,需要掌握Linux系统操作方法和相关命令。在 查看详情

spark和hadoop的区别

...最活跃的开源大数据项目,但是,在选择大数据框架时,企业不能因此 查看详情

linux运维是怎样的一个工作

...及系统之上的相关软件服务、程序代码(Java、Php、Python)和企业核心数据正常运行,使得企业能够优质、高效、快速的为企业的客户提供服务,从而盈利赚钱,随着企业增长,服务器和服务数量、要求也会成倍增加,对运维的能力... 查看详情

linux运维工程师的主要工作是啥?

...及系统之上的相关软件服务、程序代码(Java、Php、Python)和企业核心数据正常运行,使得企业能够优质、高效、快速的为企业的客户提供服务,从而盈利赚钱,随着企业增长,服务器和服务数量、要求也会成倍增加,对运维的能力... 查看详情