文章目录
3.关闭NodeManager 、ResourceManager和HistoryServer
4.启动NodeManager 、ResourceManage、Timelineserver和HistoryServer
一、配置历史服务器
历史这两个字就说明了,就是为了查看程序的历史运行情况,所以需要配置历史服务器。
1.配置mapred-site.xml
vim mapred-site.xml
添加内容如下:
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>vagrant1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>vagrant1:19888</value>
</property>
2.分发配置到vagrant2和vagrant3
xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
3.在vagrant1启动历史服务器
mapred --daemon start historyserver
4.查看历史服务器是否启动
5.web端查看
二、配置日志的聚集
日志聚集:应用运行完成以后,将程序运行日志信息上传到HDFS系统上面。
日志聚集的好处:方便查看程序运行详情。
1.配置yarn-site.xml
vim yarn-site.xml
添加内容如下:
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://${yarn.timeline-service.webapp.address}/applicationhistory/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.timeline-service.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.timeline-service.hostname</name>
<value>${yarn.resourcemanager.hostname}</value>
</property>
<property>
<name>yarn.timeline-service.http-cross-origin.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.system-metrics-publisher.enabled</name>
<value>true</value>
</property>
2.分发配置到vagrant2和vagrant3
xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml
3.关闭NodeManager 、ResourceManager和HistoryServer
在vagrant2上执行: stop-yarn.sh
在vagrant1上执行: mapred --daemon stop historyserver
4.启动NodeManager 、ResourceManage、Timelineserver和HistoryServer
在vagrant2上执行:start-yarn.sh
在vagrant2上执行:yarn --daemon start timelineserver
在vagrant1上执行:mapred --daemon start historyserver
5.查看相应进程
6.删除在HDFS上已经存在的输出文件
hdfs dfs -rm -R /user/atao/output
7.执行wordcount程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/atao/input /user/atao/output
8.web端查看
三、集群时间同步
集群时间不同步,会有一系列的bug发生,为了避免这种情况的发生,就需要配置集群时间同步。
时间同步方式如下:
以vagrant1作为时间服务器,vagrant2和vagrant3与vagrant1的时间进行定时同步,设置一个时间进行同步,比如,每隔2分钟,同步一次。
以下操作都要在root用户下面操作
1.时间服务器配置(vagrant1)
(1)在所有节点(vagrant1,vagrant2,vagrant3)查看是否安装ntp
rpm -qa | grep ntp
(2)如果没有安装,在所有节点(vagrant1,vagrant2,vagrant3)安装ntp
yum install -y ntp
(3)在所有节点(vagrant1,vagrant2,vagrant3)关闭ntp服务和自启动
sudo systemctl stop ntpd
sudo systemctl disable ntpd
注意:下面的操作都是vagrant1这一台服务器上
(4)修改ntp配置文件
vim /etc/ntp.conf
修改添加内容如下:
修改1:授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
修改为(也就是去掉这一行前面的注释)
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
修改2:集群在局域网中,不使用其他互联网上的时间
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
修改为(就是在这几行前面加上注释)
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
添加3:当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(5)修改/etc/sysconfig/ntpd 文件
vim /etc/sysconfig/ntpd
添加内容如下:(为了让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
(6)重新启动ntpd服务
systemctl start ntpd
(7)设置ntpd服务开机启动
systemctl enable ntpd
2.其他机器配置(vagrant2,vagrant3)
(1)在其他机器上配置2分钟与时间服务器同步一次
crontab -e
编写定时任务如下:
*/2 * * * * /usr/sbin/ntpdate vagrant1
(2)修改任意机器时间
date -s "2018-1-15 12:11:10"
(3)2分钟后查看机器是否与时间服务器同步
date
总结
在本章主要讲了Hadoop的历史服务器的配置,日志的聚集,集群时间同步这几块,在Hadoop中实用性挺强的。