以此记录自己使用Mac学习hadoop的心酸过程。网上有很多零零散散的教程,遇到的问题各不相同,希望我也能为大家提供一点帮助。
一、集群环境配置
1.基本安排
在CentOS802配置NameNode,CentOS803配置ResourceManager,CentOS804配置SecondaryNameNode。
2.具体配置
在CentOS802上进行配置分发,主要的配置文件包括:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件,存放路径为
$HADOOP_HOME/etc/hadoop
(1)配置core-site.xml
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
配置内容如下:
<configuration>
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://CentOS802:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.3.1/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>ptong</value>
</property>
</configuration>
(2)配置hdfs-site.xml
vim hdfs-site.xml
配置内容如下:
<configuration>
<!-- nn web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>CentOS802:9870</value>
</property>
<!-- 2nn web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>CentOS804:9868</value>
</property>
</configuration>
(3)配置yarn-site.xml
vim yarn-site.xml
配置内容如下:
<configuration>
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>CentOS803</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://CentOS02:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
(4)配置mapred-site.xml
vim mapred-site.xml
配置内容如下:
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
</configuration>
4)在集群上分发配置好的Hadoop配置文件
xsync /opt/module/hadoop-3.3.1/etc/hadoop/
5)去803和804上查看文件分发情况
cat /opt/module/hadoop-3.3.1/etc/hadoop/core-site.xml
cat /opt/module/hadoop-3.3.1/etc/hadoop/core-site.xml
二、启动集群
1.配置workers
vim /opt/module/hadoop-3.3.1/etc/hadoop/workers
在该文件中增加如下内容:
CentOS802
CentOS803
CentOS804
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件
分发:
xsync /opt/module/hadoop-3.3.1/etc
2.启动集群
(1)如果集群是第一次启动,先格式化:
hdfs namenode -format
注意:如果不是第一次启动,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。
(2)启动HDFS
sbin/start-dfs.sh
(3)在CentOS803上启动YARN
sbin/start-yarn.sh
(4)Web端查看HDFS的NameNode
浏览器中输入:http://CentOS802:9870,查看HDFS上存储的数据信息
(5)Web端查看YARN的ResourceManager
浏览器中输入:http://CentOS803:8088,查看YARN上运行的Job信息
备注:我已经在前文做过ip映射,但这里仍然只能输入ip地址才能打开网站,尚未找到原因和解决办法。
3.启动、关闭集群
(1)整体启动/停止HDFS
start-dfs.sh/stop-dfs.sh
(2)整体启动/停止YARN
start-yarn.sh/stop-yarn.sh
(3)分别启动/停止HDFS组件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
(4)启动/停止YARN
yarn --daemon start/stop resourcemanager/nodemanager