? 作者 :“大数据小禅”
? 简介 :本篇文章是关于Hadoop3.x集群搭建详细过程的介绍,附带截图与消费者生产者测试
? 欢迎小伙伴们 点赞?、收藏⭐、留言? 持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情。
1.Hadoop3.1.x版本集群规划
Hadoop由Apache基金会开源,是一个分布式的储存与计算平台。目前Hadoop已经更新到了3.x以上的版本,相比于Hadoop2.x,Hadoop3增加了更多便于开发的新特性。
如何选择Hadoop的版本?
框架版本的选择一般需要考虑到其他大数据组件的版本之间的项目依赖,建议选择是最新版本的前半年所发布的版本。因为最新版本的Hadoop很可能会遇到一些坑,所以使用一些经过考验的版本较合适。这里采用的版本是Hadoop3.1.3。根据你的集群情况,在进行集群的搭建之间建议先规划好集群,方便后续的扩展与调试。
可以参考下面的集群规划表:
2.集群前置环境
搭建集群之前需要准备好三台机器,这里我们选用本地的虚拟机环境,当然选择相应的云主机也是一样的,这里主要看个人情况进行选择。前置环境主要是机器之间的免密,静态IP的固定与主机名字的修改。具体的配置可以参照之前发布的一篇搭建Hadoop2的文章。
3.配置核心文件
跟之前配置Hadoop2的时候不同,这次的搭建还配置了历史服务器与日志的聚集。应用运行完成以后,将程序运行日志信息上传到HDFS系统上。日志聚集可以方便的查看到程序运行详情,方便开发调试。配置历史服务器可以方便查看程序的历史运行情况,需要配置一下历史服务器。
配置文件的路径为hadoop-3.1.3/etc/hadoop,主要对以下的文件进行修改,添加相关的配置。
core-site.xml
<!-- 指定NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://node1:8020</value></property><!-- 指定hadoop数据的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/app/hadoop-3.1.3/data</value></property><!-- 配置HDFS网页登录使用的静态用户为root,这里注意,可以修改成你的hadoop用户 --> <property> <name>hadoop.http.staticuser.user</name> <value>hadoop</value></property>
hdfs-site.xml
<!-- nn web端访问地址--> <property> <name>dfs.namenode.http-address</name> <value>node1:9870</value> </property> <!-- 2nn web端访问地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>node3:9868</value> </property> <!-- 副本数量,根据测试需求来定,默认是3个 --> <property> <name>dfs.replication</name> <value>1</value> </property>
yarn-site.xml
<!-- 指定MR走shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>node2</value> </property> <!-- 环境变量的继承 3.1需要配置,是BUG来的 --> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> <!-- yarn容器允许分配的最大最小内存 --> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>4096</value> </property> <!-- yarn容器允许管理的物理内存大小 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> <!-- 关闭yarn对虚拟内存的限制检查 --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property><!-- 开启日志聚集功能 --><property> <name>yarn.log-aggregation-enable</name> <value>true</value></property><!-- 设置日志聚集服务器地址 --><property> <name>yarn.log.server.url</name> <value>http://node1:19888/jobhistory/logs</value></property>
mapred-site.xml
<!-- 指定MapReduce程序运行在Yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property><property> <name>mapreduce.jobhistory.address</name> <value>node1:10020</value></property><!-- 历史服务器web端地址 --><property> <name>mapreduce.jobhistory.webapp.address</name> <value>node1:19888</value>
workers
node1node2node3<!-- 最后不要有空格 -->
4.集群的启动
修改完成配置文件之后,需要将hadoop的安装包分配到其他集群,这里参考Hadoop2的集群搭建文章。在启动之前需要在主节点,这里是node1进行格式化命令hdfs namenode -format。
之后在node1运行 sbin/start-dfs.sh,这里有一点要注意的是sbin/start-yarn.sh需要在配置了ResourceManager的节点进行启动,也就是node2里面启动。启动完成后可以看到对应的进程。
5.总结
总的来说,Hadoop3的访问端口号与配置会与Hadoop2有些许不同,感兴趣的小伙伴也可以试着搭建一下各个版本。后续将会把大数据中的常用组件进行集群的搭建总结,避免一些同学在环境的安装在耗费太多的时间。
原文:https://juejin.cn/post/7103774980709711879