栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop | 集群配置(三)完全分布式集群规划 | 配置详情

Hadoop | 集群配置(三)完全分布式集群规划 | 配置详情

文章目录

参考资料运行环境hadoop 1.x到2.x的升级Hadoop集群节点类型集群规划集群配置

core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkers添加全局变量分发配置文件

参考资料

视频链接

厦大实验室

运行环境

JDK8hadoop3.1.33个集群节点,分别为hadoop101、hadoop102、hadoop103 hadoop 1.x到2.x的升级


解决问题:

组件Hadoop1.x的问题Hadoop 2.x的改进
HDFS单一名称节点,存在单点失效问题设计了HDFS HA,提供名称节点热备机制
HDFS单一命名空间,无法实现资源隔离设计了 HDFS Federation,管理多个命名空间
MapReduce资源管理效率低设计了新的资源管理框架 YARN

2.x到3.x的升级暂时不做赘述,在功能组件上没有差别。

Hadoop集群节点类型

Hadoop框架中最核心的设计就是为海量数据提供存储的HDFS 和 对数据进行计算的 MapReduce。

MapReduce的作业主要包括:(1)从磁盘或从网络读取数据,即IO密集工作;(2)计算数据,即CPU密集工作。

Hadoop集群的整体性能,取决于CPU、内存、网络以及存储之间的性能平衡。

Hadoop集群中基本的节点及其作用如下:

节点名称作用描述
NameNode负责协调集群中的数据存储
DataNode存储被拆分的数据块
SecondaryNameNode帮助NameNode收集文件系统运行的状态信息

除了以上三个节点外,还有负责资源调度的两个节点,不过不同的Hadoop版本,节点也不一样,这里指1.x和后面的不同

在1.x版本中

节点名称作用描述
JobTracker协调数据计算任务
TaskTracker负责执行由 JobTracker指派的任务

而到了2.x、3.x版本

节点名称作用描述
ResourceManager负责整个系统的资源管理和分配
ApplicationMaster负责系统中所有应用程序的管理工作
NodeManager单个节点的资源管理,处理来自两个前者的命令

YARN架构思路

(图片转自PPT 大数据技术原理与应用(第3版)引用 第8章 第18页)

集群规划

以下表格来自视频参考资料:

hadoop101hadoop102hadoop103
HDFSNameNode、DataNodeDataNodeSecondaryNameNode
YARNNodeManagerResourceManager 、NodeManagerNodeManager

注意点:

NamdeNode 和 SecondaryNameNode 尽量不安装在同一台服务器ResourceManager 比较耗内存,尽量不和 NameNode、SecondaryNameNode配置在同一台机器。 集群配置


配置文件说明:

Hadoop 配置文件分为两类:

默认配置文件自定义配置文件

只有用户向修改某一默认配置值时,才需要修改自定义配置文件,更改相应的属性值,这也是为什么网络上关于Hadoop集群配置的内容有些不太一样的原因,因为它本身就有一些默认值。
(1)默认配置文件,以3.1.3版本为例

文件名位置
core-default.xmlhadoop-common-3.1.3.jar/core-default.xml
hdfs-default.xmlhadoop-hdfs-3.1.3.jar/hdfs-default.xml
yarn-default.xmlhadoop-yarn-common-3.1.3.jar/yarn-defualt.xml
mapred-default.xmlhadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml

这些jar包在hadoop目录下的/share/hadoop中可以找到,为方便以后学习以及配置集群,笔者将它们下载到了Gitee
Gitee: 链接
点击超链接查看源代码

core-default.xmlhdfs-default.xmlmapred-default.xmlyarn-default.xml

注:以下的配置文件都在 Hadoop目录下的etc/hadoop中

core-site.xml

在这个配置文件中,主要配置 NameNode的地址、hadoop存储的目录、HDFS网页登陆使用的静态用户。

官方默认配置(描述的部分省略):
core-default.xml


	
	  fs.defaultFS
	  file:///
	  ...
	

    
	  hadoop.tmp.dir
	  /tmp/hadoop-${user.name}
	  
	
	
	
	
	  hadoop.http.staticuser.user
	  dr.who
	  ...
	


参考官方的默认配置,自定义后的配置如下:
core-site.xml





    
    
        fs.defaultFS
        hdfs://hadoop101:8020
    

    
    
        hadoop.tmp.dir
        /opt/module/hadoop/tmp
    

    
    
        hadoop.http.staticuser.user
        uni
    

hdfs-site.xml

官方的默认配置

hdfs-default.xml



	
	  dfs.namenode.name.dir
	  file://${hadoop.tmp.dir}/dfs/name
	  ...
	

	
	  dfs.datanode.data.dir
	  file://${hadoop.tmp.dir}/dfs/data
	  ...
	
	
	
	  dfs.namenode.http-address
	  0.0.0.0:9870
	  ...
	
	
	
	  dfs.namenode.secondary.http-address
	  0.0.0.0:9868
	  ...
	

自定义的配置
hdfs-site.xml





	
    
            dfs.namenode.name.dir
            file:/opt/module/hadoop/namenode_dir
    
	
    
            dfs.datanode.data.dir
            file:/opt/module/hadoop/datanode_dir
    

	
	
        dfs.namenode.http-address
        hadoop101:9870
    
	
    
        dfs.namenode.secondary.http-address
        hadoop103:9868
    

yarn-site.xml

官方配置:yarn-default.xml



	
		...
		yarn.nodemanager.aux-services
		
		
	

	  
  
	
		...
		yarn.resourcemanager.hostname
		0.0.0.0
	    

	
		...
		yarn.nodemanager.env-whitelist
		JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ
	
  
	
		...
		yarn.resourcemanager.webapp.address
		${yarn.resourcemanager.hostname}:8088
	


自定义配置:yarn-site.xml





    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

    
    
        yarn.resourcemanager.hostname
        hadoop102
    

    
    
        yarn.nodemanager.env-whitelist
        JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    
	
	
	    mapreduce.jobhistory.address
	    hadoop101:10020
	
	
	
	
	    mapreduce.jobhistory.webapp.address
	    hadoop101:19888
	

	
	
		yarn.resourcemanager.webapp.address
		hadoop102:8088
	

修改 yarn.nodemanager.env-whitelist 的配置目的是添加一个 HADOOP_MAPRED_HOME的变量,防止因为版本原因出现BUG

以上都是最基本的配置,为了很好的优化,现在进行一个补充。

日志聚集:应用运行完成后,将程序运行日志信息上传到HDFS系统上

日志聚集功能好处:可以方便的查看程序运行详情
在 ./etc/hadoop/yarn-site.xml里的configuration标签内添加后的内容如下:


  
    
        yarn.log-aggregation-enable
        true
    

    
    
        yarn.log.server.url
        http://hadoop101:19888/jobhistory/logs
    

    
    
        yarn.log-aggregation.retain-seconds
        1209600
    



mapred-site.xml

官方配置:mapred-default.xml


	
	  mapreduce.framework.name
	  local
	  ...
	
	
	
		mapreduce.jobhistory.address
		0.0.0.0:10020
		...
	

	
 		 mapreduce.jobhistory.webapp.address
 		 0.0.0.0:19888
 		 ...
	


自定义配置:mapred-site.xml





	
    
        mapreduce.framework.name
        yarn
    
    
        mapreduce.jobhistory.address
        hadoop102:10020
    
    
        mapreduce.jobhistory.webapp.address
        hadoop102:19888
    

根据之前的查阅资料,hadoop1.x版本还依然是使用自身当做资源调度的,所以配置里是默认的local,而从2.x开始引入了yarn的概念,使用yarn作为资源调度效率会高得多,这里指定为yarn即可。

workers

同样是在./etc/hadoop下,添加内容为,所有集群节点的主机名,每个主机名占一行(后面不能有多余的空格):

hadoop101
hadoop102
hadoop103
添加全局变量

由于hadoop版本问题,需要在start-dfs.sh和stop-dfs.sh里加入一些变量的声明:

HDFS_DATANODE_SECURE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_NAMENODE_USER=root
分发配置文件

以上所有的配置在单个节点里操作就行,然后再使用分发脚本

xsync ./etc/hadoop

分发脚本可参考:Hadoop | 集群配置(一)使用Shell脚本解决完全分布式集群节点之间的文件传输问题 | scp命令 | rsync命令

至此,Hadoop完全分布式集群环境已配置完毕。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/706435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号