单元2 任务2-1 搭建Hadoop伪分布式_第1页
单元2 任务2-1 搭建Hadoop伪分布式_第2页
单元2 任务2-1 搭建Hadoop伪分布式_第3页
单元2 任务2-1 搭建Hadoop伪分布式_第4页
单元2 任务2-1 搭建Hadoop伪分布式_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《大数据平台部署与运维》单元2Hadoop伪分布式安装部署任务2.1搭建Hadoop伪分布式01Hadoop的发展历程与应用现状02Hadoop优势与核心组成学习目标03Hadoop安装方式04Hadoop各版本选择05Hadoop伪分布式搭建基本流程搭建Hadoop伪分布式【任务场景】经理:我们公司现在数据量不断上升,现有的架构需要升级,小张你有什么意见?小张:Hadoop适合应用于大数据存储和大数据分析的应用,适合于服务器几千台到几万台的集群运行,支持PB级的存储容量。Hadoop典型应用有:搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。经理:对,Hadoop目前已经取得了非常突出的成绩。随着互联网的发展,新的业务模式还将不断涌现,Hadoop的应用会从互联网领域向电信、电子商务、银行、生物制药等领域拓展。小张:好的,那我先部署一套伪分布式环境。搭建Hadoop伪分布式【任务布置】Hadoop是由Java语言开发的,所以Hadoop的部署和运行都依赖JDK,因此必须先将部署前基础环境准备完成。本次任务要求在单节点上部署伪分布式Hadoop。一般在测试场景下经常会部署单节点的伪分布式Hadoop,理解并掌握Hadoop伪分布式的安装部署,可以为后续生产环境下部署Hadoop分布式集群打下基础。Hadoop的发展历程与应用现状Hadoop是Apache软件基金会旗下的一个开源分布式存储和计算平台,是基于Java语言开发的,有很好的跨平台性。Hadoop以分布式文件系统(HadoopDistributedFileSystem,HDFS)和MapReduce(GoogleMapReduce的开源实现)为核心,为用户提供了系统底层细节透明的分布式基础架构。HDFS的高容错性、高伸缩性等优点允许用户将Hadoop部署在低廉的硬件上,形成分布式系统;MapReduce分布式编程模型允许用户在不了解分布式系统底层细节的情况下开发并行应用程序。Hadoop概述Hadoop这个名字不是一个缩写,它是一个虚构的名字。该项目的创建者DougCutting解释Hadoop的得名:“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处,小孩子恰恰是这方面的高手。”Hadoop的发音是[hædu:p]。ApacheHadoop官方网站Inpioneerdaystheyusedoxenforheavypulling,andwhenoneoxcouldn’tbudgealog,theydidn’ttrytogrowalargerox.Weshouldn’tbetryingforbiggercomputers,butformoresystemsofcomputers.(在拓荒时期,他们用牛来拉重物,当一头牛不能移动一根原木时,他们就不会试图让一头牛长得更大。我们不应该尝试更大的计算机,而是尝试更多的计算机系统。)—GraceHopperHadoop优势与核心组成Hadoop发展:2002年Hadoop的源头是ApacheNutch搜索引擎项目2003年Google发布了关于GFS的论文20042005年2006年2007年Nutch的开发者发布了NDFSGoogle公司发表了MapReduce,最初版本问世Nutch移植到新的框架,Hadoop在20个节点上稳定运行DougCutting加入Yahoo,ApacheHadoop项目正式启动以支持MapReduce和HDFS从Nutch中独立处理发展。研究集群达到两个1000个节点的集群2009年Cloudera推出CDHMapReduce和HadoopDistributedFileSystem(HDFS)成为Hadoop项目的独立子项目2011年Hadoop1.0问世,标志着Hadoop已经初具生成规模2016年Hadoop3.0问世,正式进入3.x时代2008年Hadoop成为Apache顶级项目。Hive成为Apache子项目2010年Avro、Hbase、Hive、Pig脱离Hadoop项目,成为Apache顶级项目2013年Hadoop2.0问世,正式进入2.x时代Hadoop优势与核心组成Hadoop优点:Hadoop是一个能让用户轻松开发和运行处理大数据的分布式平台。它主要是有以下几个优点:(1)高可靠性;Hadoop按位存储和处理数据的能力值得人们信赖。(2)高扩展性;Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可以方便地扩展到数以千计的节点中。(3)高效性;Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。(4)高容错性;Hadoop能够自动保存数据的多份副本,并且能够自动将失败的任务重新分配。Hadoop优势与核心组成Hadoop核心组成:在当下,Hadoop已经形成了一个庞大的体系,有数据的地方基本都会看到Hadoop的身影。目前的Hadoop逐渐演化出来两种分类,广义的Hadoop和狭义的Hadoop。狭义的Hadoop主要包括三大部分:HDFS(分布式文件系统),MapReduce(分布式计算系统),YARN(资源管理器)。广义的Hadoop是指Hadoop的生态系统,是一个庞大的体系,Hadoop只是其中最重要最基础的部分,生态系统中的每个子系统只负责解决某个特定的问题域。Hadoop生态系统图Hadoop优势与核心组成项目介绍分布式文件系统HDFSHDFS是Hadoop的存储系统,采用了主从(Master/Worker)结构模型,一个HDFS集群环境是由一个NameNode和若干的DataNode组成的。HDFS能够实现对文件的操作,如删除文件、移动文件等功能。HDFS提供了高可靠性(多副本实现)、高扩展性(添加机器进行线性扩展)、高吞吐率的数据存储服务。分布式计算框架MapReduceMapReduce是一个分布式、并行处理的编程模型,他方便了编程人员将自己的程序部署到分布式系统中,MapReduce采用了“分而治之”的基本思想,他将一个大的任务分解成多个小的任务,分发到集群中不同计算机中,提高完成效率YARN(资源管理器)YARN是在Hadoop2.x中诞生的,他对Hadoop1.x中JobTracker和TaskTracker模型的优化而诞生的,主要负责整个系统化的资源管理和调度,并且在YARN上能够运行不同类型的执行框架。Hive基于Hadoop的数据仓库Hive是基于Hadoop的一个数据仓库工具,由Facebook开源。Hive让不熟悉MapReduce的开发人员编写数据查询语句(SQL语句),它会将其翻译为Hadoop中的MapReduce作业,并提交到Hadoop集群中运行。HBase(分布式数据库)HBase是建立在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。HBase是谷歌BigTable的开源实现,通过Java语言进行编程,主要用来存储非结构化和半结构化的松散数据。ZooKeeper(分布式协作服务)ZooKeeper是Hadoop的分布式应用程序协调服务,是Hadoop和HBase的重要组件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Hadoop优势与核心组成项目介绍Sqoop(数据同步工具)Sqoop是一个连通性工具,用于在关系型数据库和数据仓库(Hive)与Hadoop之间数据转移框架Pig(基于Hadoop的数据流系统)Pig是用于并行计算的高级数据流语言和执行框架。他是构建在Hadoop之上的数据仓库,定义了一种数据流语言–PigLatin。Pig突出的特点就是它的结构经得起大量并行任务的检验,这使得它能够处理大规模数据集。Mahout(数据挖掘算法库)Mahout是机器学习和数据挖掘的库。它实现了三大算法:推荐、聚类、分类。Flume(日志收集工具)Flume是Cloudera开源的日志收集系统,他具有分布式、高可靠、高容错、易于定制和扩展的特点,是基于流式数据流的简单而灵活的架构。它具有可靠的可靠性机制以及许多故障转移和恢复机制,具有强大的容错性和容错能力。Oozie(作业流调度系统)Oozie是一个用于管理ApacheHadoop作业的工作流调度程序系统,能够提供对HadoopMapReduce和PigJobs的任务调度与协调。Oozie工作流是放置在控制依赖DAG(有向无环图)中的一组动作,需要部署到JavaServlet容器中运行。Hadoop优势与核心组成3.Hadoop安装方式Hadoop安装部署有以下三种模式:1.单机部署,Hadoop默认模式、即非分布式模式(本地模式),没有守护进程,不分主从节点,这种部署方式非常少用。2.伪分布式部署,主从节点都在一台主机上,可用在本机模拟一个主节点、一个从节点的集群。本单元以伪分布式模式进行Hadoop搭建。3.完全分布式集群部署,有多个节点,主从进程分别在不同的机器上运行。Hadoop各版本选择1.Hadoop1.02011年,Hadoop1.0问世,由分布式存储系统HDFS和分布式计算框架MapReduce组成。其中HDFS由一个NameNode和多个DateNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。在实际的使用过程中,Hadoop1.x逐渐的暴露出许多问题:(1)主节点故障问题,HDFS和MapReduce都是主从结构,他们的主节点都是单节点结构,一旦主节点出现问题,导致集群瘫痪。(2)注销速度问题,MapReduce的主节点JobTracker完成太多任务,当MapReduce任务非常多时,造成非常大的内存开销。(3)服务器利用率不高,MapReduce主要分为两个阶段,一个为Map,一个为Reduce。在MapReduce时执行时,大部分Reduce任务需要等待Map任务完成计算才能开始。(4)存储文件格式单一问题,HDFS存储的数据都是按照Block来存储的,整个存储只有这一个格式,而企业的数据是多种多样的,存储起来不但麻烦还造成资源的浪费。Hadoop各版本选择MapReduce1.0架构图关键词含义Client

客户端JobTrackerMaster节点,责资源监控和作业调度,并监管所有的TaskTrackerTaskTrackerWorker节点,接收JobTracker发送过来的命令并执行相应的操作TaskScheduler任务调度器Hearbeat心跳机制MapTask解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘(如果为map-only作业,直接写入HDFS)ReduceTask从MapTask的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行Hadoop各版本选择关键词含义NameNode名字节点,管理文件系统命名空间的主服务器。DataNode数据节点,存储文件块replication文件块的副本,目的是确保数据存储的可靠性Rack机架,可以理解为两个处于不同地方的机群,每个机群内部有自己的连接方式Client通过指令或代码操作的一端都是客户端Client的Read从HDFS下载文件到本地Client的Write上传文件到HDFS上HDFS1.0架构图Hadoop各版本选择Hadoop2.0Hadoop1.0到Hadoop2.0架构变化图2013年,Hadoop2.0问世,Hadoop2.0是为了解决Hadoop1.0中的出现的问题而提出的,内核主要由HDFS、MapReduce和YARN三个系统组成。针对Hadoop1.0中HDFS主节点故障问题,提出了HDFSFederation,兼容多个NameNode,让多个NameNode分管不同的目录来进行访问的隔离和节点的横向扩展,这样就解决了HDFS单节点问题。针对MapReduce主节点故障和框架支持问题,将MapReduce的功能分开了,只保留了数据处理,将集群资源管理放到了Yarn中,诞生了全新的通用资源管理框架YARN。在MapReduce2.0中,具有和MapReduce1.0相同的编程模型和数据引擎处理,但是在运行时环境上引入全新的资源管理框架YARN,MapReduce变成了一个纯粹的计算框架,不再负责管理。YARN是Hadoop2.0中资源管理系统,负责资源管理和调度。他将JobTracker的资源管理和作业调度拆分成两个独立的进程,ApplicationMaster和ResourceManager。在Hadoop2.x中对HDFS做了改进,可以使NameNode横向扩展成多个,每个NameNode分管部分目录,诞生了HDFSFederation。组件Hadoop1.0问题Hadoop2.0改进HDFS单一名称节点,存在单点失效问题设计了HDFSHA,提供名称节点热备机制HDFS单一命名空间,无法实现资源隔离设计了HDFSFederation,管理多个命名空间MapReduce资源管理效率低设计了新的资源管理框架YARNHadoop各版本选择Hadoop3.02016年,Hadoop3.0问世,Hadoop3.0中引入了一些重要的功能和优化,包括HDFS可擦除编码、多Namenode支持、MRNativeTask优化、YARN基于cgroup的内存和磁盘IO隔离、YARNcontainerresizing等。Hadoop3.0新特性:Java版本升级Hadoop3.0要求Java版本最低版本不低于1.8,有以往的Java版本不再支持Hadoop版本JDK1.6JDK1.7JDK1.8Hadoop1.x√××Hadoop2.x√√×Hadoop3.x××√2.部分服务默认端口修改在以往版本中,多个Hadoop服务的默认端口在Linux临时端口范围内(32768-61000)。这意味着在启动时,服务有时会由于与另一个应用程序冲突而无法绑定到端口分类应用Haddop2.xportHaddop3.xportNNportsNameNode8020/90009820NNHTTPUI500709870NNHTTPSUI504709871SNNportsSNNHTTP500919869SNNHTTPUI500909868DNportsDNIPC500209867DN500109866DNHTTPUI500759864DNHTTPSUI504759865Hadoop各版本选择HDFS支持纠删码YARN时间线服务v.2Shell脚本重写重构HadoopClientJar包MapReduce任务级原生优化支持两个以上的NameNode支持与MicrosoftAzureDataLake和Aliyun对象存储系统进行集成DataNode内平衡器重新设计的守护进程和任务堆管理S3Guard:S3A文件系统客户端的一致性和元数据缓存基于HDFS路由器的联合基于API的CapacityScheduler队列配置配置YARN资源类型Hadoop伪分布式搭建基本流程Hadoop伪分布式安装,是指在一个节点(即一台主机或服务器)上安装和部署HDFS和MapReduce+Yarn。实际上,伪分布式模式可以看成是单节点的完全分布式模式。Hadoop伪分布式搭建基本流程1.防火墙配置

Centos7使用Firewalld命令来操作防火墙,在Hadoop伪分布式搭建中,一般都选在局域网中进行搭建,没有安全性考虑,因此关闭防火墙一般也不会存在安全隐患。2.SELinux配置

SELinux是安全增强型Linux(Security-EnhancedLinux)简称,它是一个Linux内核模块,也是Linux的一个安全子系统。为了避免安装过程出现各种错误,建议关闭。主机名配置

为了更方便的管理项目,建议对每个节点的主机名进行修改。4.SSH(secureshell)免密码登录配置

不管是Hadoop的伪分布还是全分布,Hadoop的名称结点(NameNode)都需要启动集群中所有机器的Hadoop守护进程,而这个过程可以通过SSH登录来实现。由于Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,就需要对其进行SSH的免密登录配置。Hadoop伪分布式搭建基本流程5.JDK1.8配置 Hadoop是基于Java语言开发的,使用Java首先要安装JDK(JavaDevelopmentKit),即Java开发工具,安装完JDK还需要进行配置环境变量(PATH,CLASSPATH,JAVA_HOME)。6.Hadoop3.1.1伪分布式安装配置 Hadoop3可以通过Hadoop官网下载,请下载hadoop-3.1.1.tar.gz格式文件,这种格式已经编译好,另一个包含src的则是Hadoop源代码,需要进行编译才可使用。 Hadoop目录,一共有7个目录和3个txt说明文件,bin和sbin是可执行文件的目录,etc放的是配置文件目录,include、lib和libexec均是放一些类库的目录,share是放一些共享类库和jar包的。

在安装Hadoop后,需要对Hadoop进行配置,这些配置文件存放在Hadoop目录下的./etc/hadoop文件夹中。7.HDFS格式化配置

首次启动前需要进行格式化。格式化本质是进行文件系统的初始化操作,创建一些Hadoop自己所需要的文件。格式化之后且启动成功后,后续再也不需要进行格式化。格式化的操作在HDFS集群的主角色(NameNode)所在机器上操作。8.启动伪分布Hadoop

Hadoop在格式化成功以后,接着开启NameNode和DataNode守护进程,在Hadoop目录下通过./sbin/start-dfs.sh命令启动。通过WebUI监控Hadoop平台

当Hadoop成功启动并通过jps可以看到指定进程后,可以访问Web界面来查看HDFS和MapReduce相关信息。10.常见问题汇总搭建Hadoop伪分布式【工作流程】搭建伪分布式Hadoop的基本工作流程包括:关闭防火墙关闭SELinux修改主机名配置SSH(secureshell)免密码登录安装配置JDK1.8安装配置Hadoop搭建Hadoop伪分布式【操作步骤】1.关闭防火墙[root@localhost/]#/usr/sbin/sestatus-vSELinuxstatus:enforcing#临时关闭SELinux[root@localhost/]#setenforce02.关闭SELinux[root@localhost

/]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded(/usr/lib/systemd/system/firewalld.service;disabled;vendorpreset:enabled)Active:active(running)sinceThu2021-11-1812:39:24UTC;1sagoDocs:man:firewalld(1)MainPID:31240(firewalld)Tasks:2Memory:28.1MCGroup:/system.slice/firewalld.service└─31240/usr/bin/python2-Es/usr/sbin/firewalld--nofork--nopid#关闭防火墙[root@localhost

/]#systemctlstopfirewalld#禁止开启启动[root@localhost

/]#systemctldisablefirewalld搭建Hadoop伪分布式4.配置SSH(secureshell)免密码登录[root@localhost/]#hostnamelocalhost#临时修改主机名称[root@localhost/]#hostnamectlset-hostname主机名#配置主机名与IP地址的映射,在文件末尾添加主机名与IP之间的映射关系[root@localhost/]#gedit

/etc/hosts当前主机IPlocalhost3.修改主机名称,并配置主机名和IP地址的映射#生成秘钥[root@localhost/]ssh-keygen-trsa#输入后按照提示回车,直到完成命令Generatingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):#直接回车Enterpassphrase(emptyfornopassphrase):#直接回车Entersamepassphraseagain:#直接回车Youridentificationhasbeensavedin/root/.ssh/id_rsa.Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.Thekeyfingerprintis:SHA256:9NevFFklAS5HaUGJtVrfAlbYk82bStTwPvHIWY7as38root@node1Thekey'srandomartimageis:+---[RSA2048]----+|+*O*=.||.o=+=o+||...O+=||..**.%o||Soo%o+||.++.||.+.||.+E||o.o|+----[SHA256]-----+#拷贝id_rsa.pub,创建密钥文件authorized_keys[root@localhost/]#cp~/.ssh/id_rsa.pub~/.ssh/authorized_keys#验证免密登录,可以正常进入,无需输入免密视为配置成功[root@localhost/]#ssh

主机名搭建Hadoop伪分布式5.安装配置JDK1.8#检查JDK是否安装[root@localhost/]#java-version#上传已下载好的JKD压缩包到/usr/local目录下[root@localhost/]#cd/usr/local#解压JDK压缩包[root@localhost/]#tarzxvfjdk-8u112-linux-x64.tar.gz#修改文件名称,方便填写[root@localhost/]#mvjdk1.8.0_112jdk#设置环境变量,添加2行内容[root@localhost/]#vim/etc/profileexportJAVA_HOME=/usr/local/jdkexportPATH=.:$JAVA_HOME/bin:$PATH#使配置的环境变量生效[root@localhost/]#source/etc/profile[root@localhost/]#java-versionjavaversion"1.8.0_112"Java(TM)SERuntimeEnvironment(build1.8.0_112-b15)JavaHotSpot(TM)64-BitServerVM(build25.112-b15,mixedmode)6.安装Hadoop3.1.1#上传Hadoop压缩包到/usr/local目录下并解压Hadoop压缩包[root@localhost

/]#tar-zxvfhadoop-3.1.1.tar.gz-C/usr/local/[root@localhost

/]#mvhadoop-3.1.1hadoop#设置环境变量,添加以下几行内容[root@ocalhost

/]#vim/etc/profileexportHADOOP_HOME=/usr/local/hadoopexportPATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH#hadoop-3.1.1必须添加如下5个变量否则启动报错exportHDFS_NAMENODE_USER=rootexportHDFS_DATANODE_USER=rootexportHDFS_SECONDARYNAMENODE_USER=rootexportYARN_RESOURCEMANAGER_USER=rootexportYARN_NODEMANAGER_USER=root[root@localhost

/]#source/etc/profile[root@localhost

/]#hadoopversionHadoop3.1.1Sourcecoderepository/apache/hadoop-r2b9a8c1d3a2caf1e733d57f346af3ff0d5ba529cCompiledbyleftnoteasyon2018-08-02T04:26ZCompiledwithprotoc2.5.0Fromsourcewithchecksumf76ac55e5b5ff0382a9f7df36a3ca5a0Thiscommandwasrunusing/usr/local/hadoop/share/hadoop/common/hadoop-common-3.1.1.jar搭建Hadoop伪分布式6.安装Hadoop3.1.1修改Hadoop配置文件,这些配置文件都放在/usr/local/hadoop/etc/hadoop目录下第一个:配置hadoop-env.sh文件#编辑文件,设置JAVA_HOME绝对路基(JDK1.8安装路径)[root@localhos

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论