整体规划
|
| hadoop101 | hadoop102 | hadoop103 |
| HDFS
| NameNode DataNode |
DataNode | SecondaryNameNode DataNode |
| YARN |
NodeManager | ResourceManager NodeManager |
NodeManager |
正常而言,部署一个集群最少需要6个节点,三台布置NameNode,ResourceManager,SecondaryNameNode。剩下三台分别部署成对的NodeManager和DataNode。
这是因为:
- Hadoop中规定,NodeManager和DataNode必须成对出现。
- NameNode(NN)是目录,ResourceManager(RM)是总体资源管理,SecondaryNameNode(SNN)是定期对NN备份。这三者消耗的资源较多,所以通常需要独立分配在三个节点上。
部署
安装JDK和hadoop
解压JDK和Hadoop到特定文件夹,注意目文件夹不要设置root用户所属,这是因为,一档母文件夹设置为root,那么后面你在文件夹中读写就需要sudo,在文件夹创建的文件还是属于root,软件运行过程也是需要sudo权限……一系列问题,本来很多软件里面需要依靠用户来区分保护范围,如果你全都sudo,那显然不太好。总而言之,设置好母文件夹的权限很重要。
然后就是配置环境变量。
sudo vim /etc/profile.d/my_env.sh
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
hadoop
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
重启或更新一下,可以使用java和hadoop查看是否安装成功。
配置hadoop
主要涉及hadoop目录下etc/hadoop中配置文件的配置。
配置core-site.xml,指定NameNode目录。注意,此处hadoop102类似的地址需要在hosts文件中指定。
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<property>
<name>hadoop.data.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<property>
<name>hadoop.proxyuser.atguigu.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.atguigu.groups</name>
<value>*</value>
</property>
</configuration>
配置hdfs-site.xml,在这里指定SecondNameNode的节点。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.data.dir}/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.data.dir}/data</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file://${hadoop.data.dir}/namesecondary</value>
</property>
<property>
<name>dfs.client.datanode-restart.timeout</name>
<value>30</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop103:9868</value>
</property>
</configuration>
配置yarn-site.xml,yarn配置,指定ResourceManager的节点。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>
<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>
</configuration>
配置mapred-site.xml。MapReduce的配置,指定调度器为yarn。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置workers,告诉hadoop当前有多少个节点。
hadoop102
hadoop103
hadoop104
分发集群配置
利用上文提及的xsync,xcall分发配置,需要分发的配置有:
- 环境变量
- hadoop,jdk本体,包含配置文件
然后利用xcall sudo reboot重启所有机子。
启动
格式化
hdfs namenode -format
启动HDFS,在101节点启动。
start-dfs.sh
启动Yarn,在102节点启动。
start-yarn.sh
如果配置成功,运行不会报错,使用jps指令应该能看到:
101: NN, DN, NM
102: RM, DN, NM
103: SNN, DN, NM
我配置之后看不到DN,正常启动了。原因是没有格式化好,解决方法是删掉data和logs重新格式化。
配置历史服务器以及日记据集
这两主要作用是查看历史,以及聚集运行生成的日记文件。
停止hadoop。
stop-dfs.sh
stop-yarn.sh
部署历史服务器到101节点,mapred-site.xml :
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property
部署日记聚集到101, 修改yarn-site.xml
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop101:19888/jobhistory/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
分发配置,重新启动hadoop。
最后
以上就是风趣黑猫最近收集整理的关于Hadoop集群部署(二),小型集群部署的全部内容,更多相关Hadoop集群部署(二)内容请搜索靠谱客的其他文章。
发表评论 取消回复