第十章 Hadoop的搭建以及相关知识点总结

本文介绍了Hadoop集群的硬件配置,如多核CPU、大量硬盘和千兆以太网,解释了为何不使用RAID而选择JBOD。详细阐述了namenode的角色,强调了高可用性的重要性,并提供了集群构建、安装和配置的步骤,包括环境变量设置、日志管理和内存分配。此外,还提到了监控HDFS和YARN的相关端口以及配置文件的关键属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集群的硬件:一般使用多核CPU和多磁盘,充分利用磁盘强大功能。
运行在hadoop的datanode和YARN节点管理器的典型机器
处理器:两个六核/八核的3GHz CPU
内存:6~512GB RAM
存储器:1224x14TB SATA 硬盘
网络:千兆以太网
为何不使用RAID?
RAID: namenode保护元数据的存储器,即磁盘阵列,hdfs节点间的复制技术已经代替RAID 的功能。
RAID的条带化技术用于提升性能,速度比hdfs中的JBOD慢,JBOD在所有磁盘间循环调度HDFS块。
RAID的弊端:读写速度受限于磁盘阵列中响应最慢的盘片的速度。如果某一盘片发生故障会导致整个磁盘阵列不可用。
JBOD的磁盘操作是独立的,平均读写的速度高于响应最慢的盘片的速度。配置的磁盘发生故障,HDFS可以忽略该磁盘,继续工作。
namenode的作用:在内存中保存整个命名空间的所有文件元数据和块元数据(内存需要很大)。维护所有文件数据块的引用。
高可用:在分开的机器上运行master,主master发生故障,在不同硬件上的备机会接替主机,hdfs中的secondarynamenode检查点功能由备机完成,所以不需要同时运行备机和主机的secondarynamenode。
namenode使用网络位置来确定在哪里放置块的复本,mapreduce调度器会根据网络位置来查找最近的复本,作为map任务的输入。
集群的构建和安装:Hadoop在unix和windows操作系统都可以运行,下载安装包,本地目录解压,hadoop用户的home目录可能挂载在NFS上,Hadoop系统最好不要安装此目录,NFS(网络文件系统,允许网络中计算机通过Tcp/ip进行资源共享)
% export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin
Hadoop控制脚本(不是守护进程)依赖于SSH执行对集群的操作(还有其他方法:分布式shell),SSH安装成功后,创建公钥、私钥,存放在NFS之中,集群共享密钥。
配置Hadoop:分布式模式在集群运行,必须进行配置,格式化HDFS文件系统意义在于创建镜像文件,新的HDFS安装需要进行格式化,格式化进程将创建一个空的文件系统(fsimage),创建存储目录和初始版本的namenode持久数据结构。namenode管理所有文件系统的元数据,datanode可以加入和离开集群,格式化进程涉及不到datanode。创建文件系统无需指定大小,是由datanode数目决定的,可以随时增加。
Hadoop脚本可以控制整个集群中进程的启动和停止,为使用脚本,要告诉集群中有哪些机器,slaves包括机器主机名或者IP地址,文件slaves列举了可以运行datanode和节点管理器的机器。不需要将此文件分发给工作节点,只有运行在namenode和资源管理器上的控制脚本使用它。
内存堆大小:Hadoop为各个进程分配1GB的内存,内存值(1)由hadoop-env.sh文件中HADOOP-HEAPSIZE参数控制,(2)由设置环境变量为单个守护进程修改堆的大小,例如在yarn-env.sh文件中设置YARN_RESOURCEMANAGER_HEAPSIZE,可覆盖资源管理器的堆大小。
一个namenode(名称节点)需要多少内存:内存取决于数据块数,文件名称的长度,文件系统中的目录数。可以值增加namenode的内存分配量而不改变其他守护进程的内存分配量,设置hadoop-env.sh文件中的HADOOP_NAMENODE_OPTS属性中的JVM设定内存大小。由于secondarynamenode和namenode的内存需求量差不多,更改namenode的内存同样的方法修改secondarynamenode的内存。
系统日志文件:Hadoop生成的系统日志文件存放在$HADOOP_HOME/logs目录中,可通过HADOOP_LOG_DIR进行修改,守护进程会产生两种日志文件,(1)以.log结尾,通过log4j(日常滚动文件追加方式)来循环管理日志文件,记录应用程序的日志信息,故障检测检查此文件,系统不自动删除过期的日志文件,用户定期删除。(2)以.out结尾,记录标准输出和标准错误日志,含少量记录。系统保留最新的5个日志文件。日志文件会附加1-5的后缀,5表示最旧的文件。
日志文件:包含运行守护进程的用户名称、守护进程名称、本地主机名等信息。修改日志文件中的用户名称,在hadooop-env.sh文件中HADOOP_IDENT_STRING进行修改。
借助SSh协议,用户在主节点使用控制脚本可以在工作节点运行指令,好处在于减少连接超时,使用connecttimeout可以避免控制脚本长时间等待宕机节点的响应。
8088:显示集群的运行状况,包括运行的应用信息,集群基本配置信息。
Hdfs-site.xml中 fs.defaultFS属性指定了HDFS的namenode和默认文件系统的URI,HDFS必须是服务器配置的默认文件系统。
属性项dfs.namenode.name.dir指定一系列目录来供NameNode存储永久性系统元数据(编辑日志和文件系统映像),随即备份在指定目录,,此属性可以将namenode元数据写到一两个本地磁盘和一个远程磁盘,发生故障也可以恢复并重新构建namenode。(secondarynamenode不维护namenode的最新备份)。
dfs.datanode.data.dir属性可以设定datanode存储数据块的目录列表,是使datanode在各个目录中写数据。为了提高性能,最好为各个本地磁盘指定一个存储目录,数据块跨磁盘分布,对不同数据块的读操作并发执行,提高读取性能。充分发挥性能,需要使用noatime挂载磁盘,信息不断刷新。最后还需要指定secondarynamenode存储文件系统的检查点的目录,检查点映像文件会分别存储在各个目录里,支持文件存储多份。
Dfs.namenode.checkpoint.dir:secondarynamenode存放检查点的目录列表,在所列每个目录中都存放一份检查点文件的副本。
HDFS的存储目录放在Hadoop的临时目录下,通过hadoop.tmp.dir配置,目的在于清楚系统临时文件,数据也不会丢失。
运行YARN,指定一台器作为资源管理器,属性yarn.resourcemanager.hostname设置为主机名或IP。在执行mapreduce作业产生的中间数据和工作文件写到临时本地文件,数据量过大,保证存储空间(yarn.nodemanager.local-dirs)设置够大。此属性使用逗号分隔的目录名称列表,最好把这些目录分散到所有本地磁盘,提升磁盘操作效率。
YARN本地存储会使用与datanode数据块存储相同的磁盘和分区(但是不同目录)。
yarn和mapreduce的内存设置:在YARN中,节点管理器从一个内存池中分配内存,内存的总需求量取决于一个特定节点的任务数。Mapreduce的内存控制由客户端作业配置进行设置。YARN是集群层面的设置,客户端不能修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值