这篇文章对Hadoop进行配置,修改配置文件,启动并测试集群。开去历史服务器以及日志聚集。
部署规划#
| hadoop102 | hadoop103 | hadoop104 | |
|---|---|---|---|
| HDFS | NameNode、DataNode | DataNode | SencondNameNode、DataNode |
| YARN | NodeManager | ResourceManager、NodeManager | NodeManager |
- NameNode和SecondNameNode不要安装在同一台服务器上
- ResourceManager也很消耗内存,不要和NameNode、SecondNameNode配置在同一台机器上
配置文件#
1、默认配置文件
默认配置文件可在对应的jar包中找到
| 配置文件 | 配置文件位置 |
|---|---|
| core-default.xml | hadoop-common-3.1.3.jar/core-default.xml |
| hdf-default.xml | hadoop-hdfs-3.1.3.jar/hdfs-default.xml |
| yarn-default.xml | hadoop-yarn-common-3.1.3.jar/yarn-default.xml |
| mapred-default.xml | hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml |
2、自定义配置文件
在$HADOOP_HOME/etc/hadoop中
文章使用的时/opt/module/hadoop-3.1.3/etc/hadoop
配置集群#
所有操作在swcode用户进行,非root
所有操作在swcode用户进行,非root
在hadoop102上配置#
1、核心配置文件:core-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
内容如下
fs.defaultFS hdfs://hadoop102:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.3/data hadoop.http.staticuser.user swcode
2、HDFS配置文件:hdfs-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
内容如下
dfs.namenode.http-address hadoop102:9870 dfs.namenode.secondary.http-address hadoop104:9868
3、YARN配置文件:yarn-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
内容如下
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_HOME,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
4、MapReduce配置文件:mapred-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
内容如下
mapreduce.framework.name yarn
分发配置文件#
xsync是自定义的sync脚本
xsync /opt/module/hadoop-3.1.3/etc/hadoop/
启动集群#
1、配置workers
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
新增一下内容,内容结尾不允许空格,文件中不允许出现空行
hadoop102 hadoop103 hadoop104
像下面这样
2、分发workers
xsync /opt/module/hadoop-3.1.3/etc/hadoop/workers
3、第一次启动初始化(hadoop102)
hdfs namenode -format
/opt/module/hadoop-3.1.3会多出两个文件夹:/data和/logs
4、启动HDFS(hadoop102)
start-dfs.sh
启动成功后,每台主机分别运行下面代码,检查一下
jps
根据规划的部署,应该和下面一样
- hadoop102:Jps、DataNode、NameNode
- hadoop103:DataNode、Jps
- hadoop104:SecondaryNameNode、Jps
查看Web页面:http://192.168.10.102:9870/
5、启动YARN
来到配置了ResourceManager的节点(hadoop103)
start-yarn.sh
对照部署规划,一样就说明成功了~
查看YARN资源调度页面:http:192.168.10.103:8088
测试集群#
1、上传文件到HDFS(hadoop102上)
# 创建目录 hadoop fs -mkdir /wcinput # 上传文件 hadoop fs -put /opt/module/hadoop-3.1.3/wcinput/words.txt /wcinput
words.txt是之前使用wordcount做的小案例
查看效果:Browsing HDFS
2、再次运行wordcount案例
# 来到 hadoop 安装目录 cd /opt/module/hadoop-1.3.1/ # 执行 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput
来到YARN资源调度页面:http:192.168.10.103:8088
可以看到一条资源调度记录
查看效果:Browsing HDFS
配置历史服务器#
1、配置mapred-site.xml(在hadoop102上配置)
vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
增加配置文件
mapreduce.jobhistory.address hadoop102:10020 mapreduce.jobhistory.webapp.address hadoop102:19888
2、分发配置
xsync /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
3、在hadoop102中启动历史服务器
mapred --daemon start historyserver
需要重启yarn,在hadoop103中重启yarn(本文的yarn配置在hadoop103中)
stop-yarn.sh start-yarn.sh
4、查看历史服务器是否启动
[swcode@hadoop102 ~]$ jps 123607 DataNode 123403 NameNode 127613 JobHistoryServer 127773 Jps 125615 NodeManager
配置日志聚集#
1、修改yarn-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
增加如下内容
yarn.log-aggregation-enable true yarn.log.server.url http://hadoop102:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800
2、分发配置
xsync /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
3、在hadoop102中停止历史服务器
mapred --daemon stop historyserver
4、在hadoop103中重启yarn
stop-yarn.sh start-yarn.sh
5、在hadoop102中停启动历史服务器
mapred --daemon start historyserver
4、在hadoop103中重启yarn



