Hadoop集群部署有几种模式?Hadoop集群部署方法介绍
- 格式:docx
- 大小:48.68 KB
- 文档页数:1
分布式集群HA模式部署⼀:HDFS系统架构(⼀)(⼆)问题:NameNode的可⽤性不⾼,当NameNode节点宕机,则服务终⽌⼆:HA架构---提⾼NameNode服务的可⽤性架构中⾄少有两个NameNode节点(此处以两个NameNode举例)(⼀)两个NN节点在某个时间只能有⼀个节点正常响应客户端请求,响应请求的必须为ACTIVE 状态的那⼀台。
另⼀台为standby备⽤在⾼可⽤模式下,这⼀对NameNode节点,叫做Federation(⼆)当active节点宕机,standby状态节点必须能够⽆缝的切换为active状态。
两台NamaNode 节点的元数据必须时刻保持⼀致,才可以实现⽆缝的切换状态NameNode最新元数据存放在edits⽂件(存放少量数据)中,因此将edits⽇志⽂件放⼊zookeeper集群中,⽤于数据同步(可以保持⾼可⽤)当active节点宕机,standby节点状态变为active,客户端访问新的节点(三)两个NameNode节点之间如何检测状态变化⽅法1:NameNode在zookeeper中注册各⾃状态(可以使⽤短暂连接,若某节点宕机,则数据销毁)⽅法2:将1中NameNode节点功能独⽴出来,在节点所在机器中启动监控进程,⽤于监控NameNode状态,并写⼊和监控zookeeper数据(四)避免状态切换出现brain split现象---fencing机制当active节点出现故障,则standby会切换状态为active。
但是如果原始节点出现的是短暂故障,在⼀段时间后恢复,则出现两台active机器(出现写edits⽂件不⼀致)解决⽅法:使ZKFC进程功能增加,当standby NameNode中ZKFC检测检测到原active NameNode节点⼯作不正常,会先进⾏下⾯的⼯作:⽅法1:standby使⽤ssh 原始active节点 kill -9 namenode进程 即使⽤ssh远程杀死对⽅active节点(会返回⼀个结果信息),⽅法1中需要使⽤⽹络通信,可能在通信中出现故障。
Hadoop集群的三种⽅式1,Local(Standalone) Mode 单机模式$ mkdir input$ cp etc/hadoop/*.xml input$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'$ cat output/*解析$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'input 夹下⾯的⽂件:capacity-scheduler.xml core-site.xml hadoop-policy.xml hdfs-site.xml httpfs-site.xml yarn-site.xml bin/hadoop hadoop 命令jar 这个命令在jar包⾥⾯share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar 具体位置grep grep 函数input grep 函数的⽬标⽂件夹output grep 函数结果的输出⽂件夹'dfs[a-z.]+' grep 函数的匹配正则条件直译:将input⽂件下⾯的⽂件中包含 'dfs[a-z.]+' 的字符串给输出到output ⽂件夹中输出结果:part-r-00000 _SUCCESScat part-r-00000:1 dfsadmin在hadoop-policy.xml 存在此字符串2,Pseudo-Distributed Operation 伪分布式在 etc/hadoop/core.site.xml 添加以下属性<configuration><property><name>fs.defaultFS</name><value>hdfs://:8020</value> 是主机名,已经和ip相互映射</property>还需要覆盖默认的设定,mkdir -p data/tmp<property><name>hadoop.tmp.dir</name><value>/opt/modules/hadoop-2.5.0/data/tmp</value> 是主机名,已经和ip相互映射</property>垃圾箱设置删除⽂件保留时间(分钟)<property><name>fs.trash.interval</name><value>10080</value></property></configuration>etc/hadoop/hdfs-site.xml: 伪分布式1个备份<configuration><property><name>dfs.replication</name><value>1</value></property>配置从节点<property><name>node.secondary.http-address</name><value>主机名:50090</value></property></configuration>格式化元数据,进⼊到安装⽬录下bin/hdfs namenode -format启动namenode,所有的命令都在sbin下,通过ls sbin/ 可以查看sbin/hadoop-daemon.sh start namenode hadoop 的守护线程启动(主数据)sbin/hadoop-daemon.sh start datanode 启动datanode(从数据)nameNode都有个web⽹页,端⼝50070创建hdfs ⽂件夹,创建在⽤户名下⾯bin/hdfs dfs -mkdir -p /user/chris查看⽂件夹bin/hdfs dfs -ls -R / 回调查询本地新建⽂件夹mkdir wcinput mkdir wcoutput vi wc.input创建wc.input⽂件,并写⼊内容hdfs⽂件系统新建⽂件夹bin/hdfs dfs -mkdir -p /user/chris/mapreduce/wordcount/input本地⽂件上传hdfs⽂件系统bin/hdfs dfs -put wcinput/wc.input /user/chris/mapreduce/wordcount/input/在hdfs⽂件系统上使⽤mapreduce$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/chris/mapreduce/wordcount/input /user/chris/mapreduce/wordcount/output红⾊代表:读取路径蓝⾊代表:输出路径所以mapreduce的结果已经写到了hdfs的输出⽂件⾥⾯去了Yarn on a Single Node/opt/modules/hadoop-2.5.0/etc/hadoop/yarn-site.xml 在hadoop的安装路径下<configuration><property><name>yarn.resourcemanager.hostname</name><value></value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>yarn 的配置已经完成在同⼀⽬录下slave⽂件上添加主机名或者主机ip,默认是localhostyarn-env.sh 和 mapred-env.sh把JAVA_HOME 更改下,防⽌出错export JAVA_HOME=/home/chris/software/jdk1.8.0_201将mapred-site.xml.template 重命名为mapred-site.xml,同时添加以下配置<configuration><property><name></name><value>yarn</name></property></configuration>先将/user/chris/mapreduce/wordcount/output/删除再次执⾏$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jarwordcount /user/chris/mapreduce/wordcount/input /user/chris/mapreduce/wordcount/output伪分布式执⾏完毕,mapreduce 执⾏在了yarn 上3,完全分布式基于伪分布式,配置好⼀台机器后,分发⾄其它机器step1: 配置ip 和 hostname 映射vi /etc/hosts192.168.178.110 hella-hadoop192.168.178.111 hella-hadoop02192.168.178.112 hella-hadoop03同时在window以下路径也得设置C:\Windows\System32\drivers\etc\hosts192.168.178.110 hella-hadoop192.168.178.111 hella-hadoop02192.168.178.112 hella-hadoop03具体可参考linux ip hostname 映射step2:部署(假设三台机器)不同机器配置不同的节点部署:hella-hadoop hella-hadoop02 hella-hadoop03HDFS:NameNodeDataNode DataNode DataNodeSecondaryNameNodeYARN:ResourceManagerNodeManager NodeManager NodeManager MapReduce:JobHistoryServer配置:* hdfshadoop-env.shcore.site.xmlhdfs-site.xmlslaves*yarnyarn-env.shyarn-site.xmlslaves*mapreducemapred-env.shmapred-site.xmlstep3:修改配置⽂件core.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://:8020</value></property><property><name>hadoop.tmp.dir</name><value>/opt/app/hadoop-2.5.0/data/tmp</value></property><property><name>fs.trash.interval</name><value>10080</value></property></configuration>hdfs-site.xml<configuration><property><name>node.secondary.http-address</name><value>:50090</value></property></configuration>slavesyarn-site.xml<configuration><property><name>yarn.resourcemanager.hostname</name><value></value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--NodeManager Resouce --><property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value></property><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>4</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log-aggregation-retain-seconds</name><value>640800</value></property></configuration>mapred-site.xml<configuration><property><name></name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>:19888</value></property></configurationstep4:集群的配置路径在各个机器上要⼀样,⽤户名⼀样step5: 分发hadoop 安装包⾄各个机器节点scp -p 源节点⽬标节点使⽤scp 命令需要配置ssh ⽆密钥登陆,博⽂如下:step6:启动并且test mapreduce可能会有问题No route to Host 的Error,查看hostname 以及 ip 配置,或者是防⽕墙有没有关闭防⽕墙关闭,打开,状态查询,请参考以下博⽂:4,完全分布式+ HAHA全称:HDFS High Availability Using the Quorum Journal Manager 即 HDFS⾼可⽤性通过配置分布式⽇志管理HDFS集群中存在单点故障(SPOF),对于只有⼀个NameNode 的集群,若是NameNode 出现故障,则整个集群⽆法使⽤,知道NameNode 重新启动。
hadoop核⼼组件概述及hadoop集群的搭建什么是hadoop? Hadoop 是 Apache 旗下的⼀个⽤ java 语⾔实现开源软件框架,是⼀个开发和运⾏处理⼤规模数据的软件平台。
允许使⽤简单的编程模型在⼤量计算机集群上对⼤型数据集进⾏分布式处理。
hadoop提供的功能:利⽤服务器集群,根据⽤户的⾃定义业务逻辑,对海量数据进⾏分布式处理。
狭义上来说hadoop 指 Apache 这款开源框架,它的核⼼组件有:1. hdfs(分布式⽂件系统)(负责⽂件读写)2. yarn(运算资源调度系统)(负责为MapReduce程序分配运算硬件资源)3. MapReduce(分布式运算编程框架)扩展:关于hdfs集群: hdfs集群有⼀个name node(名称节点),类似zookeeper的leader(领导者),namenode记录了⽤户上传的⼀些⽂件分别在哪些DataNode上,记录了⽂件的源信息(就是记录了⽂件的名称和实际对应的物理地址),name node有⼀个公共端⼝默认是9000,这个端⼝是针对客户端访问的时候的,其他的⼩弟(跟随者)叫data node,namenode和datanode会通过rpc进⾏远程通讯。
Yarn集群: yarn集群⾥的⼩弟叫做node manager,MapReduce程序发给node manager来启动,MapReduce读数据的时候去找hdfs(datanode)去读。
(注:hdfs集群和yarn集群最好放在同⼀台机器⾥),yarn集群的⽼⼤主节点resource manager负责资源调度,应(最好)单独放在⼀台机器。
⼴义上来说,hadoop通常指更⼴泛的概念--------hadoop⽣态圈。
当下的 Hadoop 已经成长为⼀个庞⼤的体系,随着⽣态系统的成长,新出现的项⽬越来越多,其中不乏⼀些⾮ Apache 主管的项⽬,这些项⽬对 HADOOP 是很好的补充或者更⾼层的抽象。
Hadoop测试题一.填空题,1分(41空),2分(42空)共125分1.(每空1分) datanode 负责HDFS数据存储。
2.(每空1分)HDFS中的block默认保存 3 份。
3.(每空1分)ResourceManager 程序通常与NameNode 在一个节点启动。
4.(每空1分)hadoop运行的模式有:单机模式、伪分布模式、完全分布式。
5.(每空1分)Hadoop集群搭建中常用的4个配置文件为:core-site.xml 、hdfs-site.xml、mapred-site.xml 、yarn-site.xml 。
6.(每空2分)HDFS将要存储的大文件进行分割,分割后存放在既定的存储块中,并通过预先设定的优化处理,模式对存储的数据进行预处理,从而解决了大文件储存与计算的需求。
7.(每空2分)一个HDFS集群包括两大部分,即namenode 与datanode 。
一般来说,一个集群中会有一个namenode 和多个datanode 共同工作。
8.(每空2分) namenode 是集群的主服务器,主要是用于对HDFS中所有的文件及内容数据进行维护,并不断读取记录集群中datanode 主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储。
9.(每空2分) datanode 在HDFS集群中担任任务具体执行角色,是集群的工作节点。
文件被分成若干个相同大小的数据块,分别存储在若干个datanode 上,datanode 会定期向集群内namenode 发送自己的运行状态与存储内容,并根据namnode 发送的指令进行工作。
10.(每空2分) namenode 负责接受客户端发送过来的信息,然后将文件存储位置信息发送给client ,由client 直接与datanode 进行联系,从而进行部分文件的运算与操作。
11.(每空1分) block 是HDFS的基本存储单元,默认大小是128M 。
Hadoop面试题目及答案(附目录)选择题1.下面哪个程序负责HDFS 数据存储。
a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker答案C datanode2. HDfS 中的block 默认保存几份?a)3 份b)2 份c)1 份d)不确定答案A 默认3 份3.下列哪个程序通常与NameNode 在一个节点启动?a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker答案D分析:hadoop 的集群是基于master/slave 模式,namenode 和jobtracker 属于master,datanode 和tasktracker 属于slave,master 只有一个,而slave 有多个SecondaryNameNode 内存需求和NameNode 在一个数量级上,所以通常secondaryNameNode(运行在单独的物理机器上)和NameNode 运行在不同的机器上。
JobTracker 和TaskTrackerJobTracker 对应于NameNode,TaskTracker 对应于DataNode,DataNode 和NameNode 是针对数据存放来而言的,JobTracker 和TaskTracker 是对于MapReduce 执行而言的。
mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:jobclient,JobTracker 与TaskTracker。
1、JobClient 会在用户端通过JobClient 类将应用已经配置参数打包成jar 文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker 创建每一个Task(即MapTask 和ReduceTask)并将它们分发到各个TaskTracker 服务中去执行。
Hadoop知识点总结Hadoop知识点总结1.什么是hadoop?hadoop是⼀个开源软件框架,⽤于存储⼤量数据,并发处理/查询在具有多个商⽤硬件(即低成本硬件)节点的集群上的那些数据。
总之Hadoop包括⼀下内容:HDFS(Hadoop分布式⽂件系统):允许以⼀种分布式和冗余的⽅式存储⼤量数据。
例如:1GB(即1024MB)⽂本⽂件可以拆分为16*128MB⽂件,并存储在Hadoop集群中的8个不同节点上。
每个分裂可以复制三次,以实现容错,以便如果⼀个节点出现错误的话,也有备份。
HDFS适⽤于顺序的"⼀次写⼊,多次读取"的类型访问。
MapReduce:⼀个计算框架。
它以分布式和并⾏的⽅式处理⼤量的数据,当你对所有年龄>18的⽤户在上述1GB⽂件上执⾏查询时,将会有"8个映射"函数并⾏运⾏,以在其128MB拆分⽂件中提取年龄>18的⽤户,然后"reduce"函数将将会运⾏以将所有单独的输出组合成单个最终结果。
YARN(⼜⼀资源定位器):⽤于作业调度和集群资源管理的框架。
Hadoop⽣态系统,拥有15多种框架和⼯具,如Sqoop,Flume,Kafka,Pig,Hive,Spark,Impala等以便将数据摄⼊HDFS,在HDFS中转移数据(即变换、丰富、聚合等),并查询来⾃HDFS的数据⽤于商业智能和分析。
某些⼯具(如Pig和Hive)是MapReduce上的抽象层,⽽Spark和Impala等其他⼯具则是来⾃MapReduce的改进架构/设计,⽤于显著提⾼延迟以⽀持近实时和实时处理2.为什么组织从传统的数据仓库⼯具转移到基于Hadoop⽣态系统的智能数据中⼼?1.现有数据基础设施:主要使⽤存储在⾼端和昂贵硬件中的"structured data,结构化数据"主要处理为ETL批处理作业,⽤于将数据提取到RDBMS和数据仓库系统中进⾏数据挖掘,分析和报告,以进⾏关键业务决策主要处理以千兆字节到兆字节为单位的数据量2.基于Hadoop的更加智能的数据基础设施,其中:结构化(例如RDBMS),⾮结构化(例如images,PDF,docs)和半结构化(例如logs,XMLs)的数据可以以可扩展和容错的⽅式存储在⽐较便宜的商⽤机器中数据可以存储诸如Spark和Impala之类的⼯具以低延迟的能⼒查询可以存储以兆兆字节到千兆字节为单位的较⼤数据量3.基于Hadoop的数据中⼼的好处是什么?随着数据量和复杂性的增加,提⾼量整体服务⽔平协议。
Hadoop基础(习题卷3)第1部分:单项选择题,共54题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]大数据的简单算法与小数据的复杂算法相比()A)更有效B)相当C)不具备可比性D)无效答案:A解析:2.[单选题]下列选项中,不是CouchDB的复制中的特点是:A)使用优先列表B)复制过程是逐步进行C)允许分区复制D)支持智能文档模式答案:A解析:3.[单选题]从HDFS下载文件,正确的shell命令是()。
A)-getB)-appendToFileC)-putD)-copyFromLocal答案:A解析:4.[单选题]关于HDFS集群中的DataNode的描述不正确的是?A)存储客户端上传的数据的数据块B)一个DataNode上存储的所有数据块可以有相同的C)DataNode之间可以互相通信D)响应客户端的所有读写数据请求,为客户端的存储和读取数据提供支撑答案:B解析:5.[单选题]在Java中,一个线程如果调用了sleep()方法,能唤醒它的方法是A)notify()B)resume()C)run()D)以上都不是,时间到了会自动继续执行答案:D解析:6.[单选题]软件是大数据的_________。
A)核心解析:7.[单选题]_______模式,只适合于Hive简单试用及单元测试。
A)单用户模式B)多用户模式C)多用户远程模式D)单用户远程模式答案:A解析:8.[单选题]下列关于Hive描述错误的是()。
A)hive学习成本低,支持标准的SQL语法B)hive运行效率低,延迟高C)HQL的表达能力有限D)Hive支持迭代计算答案:D解析:9.[单选题]下面哪个选项不是我们需要Hadoop的主要原因()A)我们需要处理PB级别的数据B)为每个应用建立一个可靠的系统是很昂贵的C)几乎每天都有结点坏掉D)把一个任务分割成多个子任务的方式是不好的答案:D解析:10.[单选题]为了让集群中的机器能够正常通信,所有集群的IP必须设置成静态IP,防止机器重启之后而找不到机器的情况,那么IP地址配置需要修改那个文件()A)ifcfg-loB)network-functionsC)ifcfg-ens33D)network-functions-ipv6答案:C解析:11.[单选题]Spark生态系统组件Spark Streaming的应用场景是?A)基于历史数据的数据挖掘B)图结构数据的处理C)基于历史数据的交互式查询D)基于实时数据流的数据处理答案:D解析:12.[单选题]关于HDFS集群中的DataNode的描述不正确的是?A)DataNode之间都是独立的,相互之间不会有通信B)存储客户端上传的数据的数据块C)响应客户端的所有读写数据请求,为客户端的存储和读取数据提供支撑13.[单选题]Hadoop2.x版本中的数据块大小默认是多少? ()A)64MB)128MC)256MD)512M答案:B解析:14.[单选题]HDFS分布式文件系统的特点为____________。
Hadoop集群的部署分为三种,分别独立模式(Standalonemode)、伪分布式模式(Pseudo-Distributedmode)、完全分布式模式(Clustermode),具体介绍如下。
(1)独立模式:又称为单机模式,在该模式下,无需运行任何守护进程,所有的
程序都在单个JVM上执行。
独立模式下调试Hadoop集群的MapReduce程序非常
方便,所以一般情况下,该模式在学习或者发阶段调试使用。
(2)伪分布式模式:Hadoop程序的守护进程运行在一台节上,通常使用伪分布
式模式用来调试Hadoop分布式程序的代码,以及程序执行否正确,伪分布式模式完全分布式模式的一个特例。
(3)完全分布式模式:Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节担任不同的角色,在实际工作应用发中,通常使用该模式构建级Hadoop系统。
在Hadoop环境中,所有器节仅划分为两种角色,分别master(主节,1个)和slave(从节,多个)。
因此,伪分布模式集群模式的特例,只将主节和从节合二
为一罢了。
接下来,本书将以前面的三台虚拟机为例,阐述完全分布模式Hadoop集群的与配置方法,具体集群规划如图1所示。
图1Hadoop集群规划
从图1可以看出,当前规划的Hadoop集群包含一台master节和两台slave节。
这里,将前面的Hadoop01作为Master节,Hadoop02和Hadoop03作为Slave
节。
1。