为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
1. 配置mapred-site.xml
vi mapred-site.xml
在该文件里面增加如下配置。
<!--历史服务器端地址 -->
mapreduce.jobhistory.address</name>
hadoop101:10020</value>
</property>
<!--历史服务器web端地址-->
mapreduce.jobhistory.webapp.address</name>
hadoop101:19888</value>
</property>
2. 分发配置
xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
3. 在hadoop101启动历史服务器
mapred --daemon start historyserver
4. 查看历史服务器是否启动
jps
5. 查看JobHistory
http://hadoop101:19888/jobhistory
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
开启日志聚集功能具体步骤如下:
1. 配置yarn-site.xml
vim yarn-site.xml
在该文件里面增加如下配置。
yarn.log-aggregation-enable</name>
true</value>
</property>
yarn.log.server.url</name>
http://hadoop101:19888/jobhistory/logs</value>
</property>
yarn.log-aggregation.retain-seconds</name>
604800</value>
</property>
2. 分发配置
xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml
3. 关闭NodeManager 、ResourceManager和HistoryServer
在102上执行: stop-yarn.sh
在101上执行: mapred --daemon stop historyserver
4. 启动NodeManager 、ResourceManager和HistoryServer
在102上执行:start-yarn.sh
在101上执行:mapred --daemon start historyserver
5. 删除HDFS上已经存在的输出文件
hdfs dfs -rm -R /user/caron/output
6. 执行WordCount程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/caron/input/wc.input /user/caron/output
7. 查看日志
http://hadoop101:19888/jobhistory
1. 时间服务器配置(必须root用户)
(1)在所有节点关闭ntp服务和自启动
sudo systemctl stop ntpd
sudo systemctl disable ntpd
(2)修改ntp配置文件
vim /etc/ntp.conf
修改内容如下
a)修改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
b)修改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
c)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(3)修改/etc/sysconfig/ntpd 文件
vim /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
Tips:
系统时间:
一般说来就是我们执行date命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。
硬件时间:
主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取 这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间定系统时间的过程可能存在时区换算,这要视具体的系统及相关设置而 定)
(4)重新启动ntpd服务
systemctl start ntpd
(5)设置ntpd服务开机启动
systemctl enable ntpd
2. 其他机器配置(必须root用户)
(1)在其他机器配置10分钟与时间服务器同步一次
crontab -e
编写定时任务如下:
*/10 * * * * /usr/sbin/ntpdate hadoop101
(2)修改任意机器时间
date -s “2017-9-11 11:11:11”
(3)十分钟后查看机器是否与时间服务器同步
date
说明:测试的时候可以将10分钟调整为1分钟,节省时间。只需要第一个节点开启ntpd,其它节点不需要开启