![大数据采集与处理](https://wfqqreader-1252317822.image.myqcloud.com/cover/286/44819286/b_44819286.jpg)
2.3.3 伪分布式
Hadoop可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的 Java 进程来运行,节点既作为NameNode也作为DataNode;同时,读取的是HDFS中的文件。
1.解压Hadoop目录文件
复制Hadoop-3.2.2.tar.gz 到/opt/modules/pseudo目录下。
解压Hadoop-3.2.2.tar.gz,代码如图2-15所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_15.jpg?sign=1734453906-bNWQA0igUoCgGwWxFCxVGVbPrY2ODoUR-0-49569aa87a381316eefb5b15da2485f3)
图2-15 解压Hadoop目录文件
2.配置Hadoop环境变量
配置Hadoop环境变量,代码如图2-16所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_16.jpg?sign=1734453906-01aJnZJzF7ctjLr389CIPZshKENlw5qZ-0-121ef1ff335945e67737a72e449a1871)
图2-16 配置Hadoop环境变量
1)追加配置
追加配置代码如图2-17所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_17.jpg?sign=1734453906-DngdliNl4WXO8gVzUGE06G02SJ5xxuWd-0-37e4dc39019f96f9cc4a46edcc61e2dd)
图2-17 追加配置代码
2)执行:source /etc/profile 使配置生效,验证 HADOOP_HOME 参数
验证配置代码如图2-18所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_18.jpg?sign=1734453906-DJSK7m6W5hZnRYMZ4GCpGiJIQxR8QkME-0-8b7c94084e131c8bd0d3d67dfdccbf10)
图2-18 验证配置代码
3)配置 Hadoop-env.sh、mapred-env.sh、yarn-env.sh 文件的 JAVA_HOME参数
配置JAVA_HOME参数的代码如图2-19所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_19.jpg?sign=1734453906-xlRlUgErzgZYe6K7vMw26s8rRhVaXN5H-0-a9d797abc6e31b716016402c3b986c13)
图2-19 配置JAVA_HOME参数的代码
4)配置 core-site.xml文件
配置core-site.xml文件的代码如图2-20所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_20.jpg?sign=1734453906-shycTTp62VeOOMZT2EHJ4KsOQQSXbjWF-0-37b3234e4ff28ca312d8053772bc3531)
图2-20 配置core-site.xml文件的代码
[Hadoop@bigdata-senior01 ~]$ sudo vim ${HADOOP_HOME}/etc/Hadoop/core-site.xml
说明:
(1)fs.defaultFS 参数配置的是HDFS的地址。
配置HDFS地址的代码如图2-21所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_21.jpg?sign=1734453906-YjvHTCmbXni0fsI0j4ENYBDjxPL908pL-0-f17855df7a1c00b5e2643bbdba5fedbb)
图2-21 配置HDFS地址的代码
(2)Hadoop.tmp.dir配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存放这个目录下,查看*-default.xml等默认配置文件,就可以看到很多依赖${Hadoop.tmp.dir}的配置。
默认的Hadoop.tmp.dir是/tmp/Hadoop-${user.name}。此时有个问题:NameNode会将HDFS的元数据存储在这个/tmp目录下,如果操作系统重启了,则系统会清空/tmp目录下的内容,导致NameNode元数据丢失。因为这是一个非常严重的问题,所以我们应该修改这个路径。
①创建临时目录,代码如图2-22所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_22.jpg?sign=1734453906-miuuClgAOqBefR5E1Sjkh3jmfVdgqjxs-0-3926a50211995ef94089bb67124a263a)
图2-22 创建临时目录
②将临时目录的所有者修改为Hadoop,代码如图2-23所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_23.jpg?sign=1734453906-k17K49vTo3ygXVsR1q9C0NuGdGuXrq3N-0-01318668a02396ceeebe2e454e7065c2)
图2-23 修改临时目录的所有者
③修改Hadoop.tmp.dir,代码如图2-24所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_24.jpg?sign=1734453906-bNWWyyA8u2jnW6kv8AqOPQznHdns8BWp-0-e7756f64fe87a81a03f6aad95185f996)
图2-24 修改Hadoop.tmp.dir
3.配置、格式化、启动HDFS
1)配置hdfs-site.xml
配置hdfs-site.xml文件,代码如图2-25所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_25.jpg?sign=1734453906-nKX4ypFfpfuztlFsmpfK6IDGGS1iV4gr-0-60527ad1b47fff44cefc620bd715e54a)
图2-25 配置hdfs-site.xml文件
dfs.replication 配置的是 HDFS存储时的备份数量,因为这里的伪分布式环境只有一个节点,所以这里设置为1。
2)格式化HDFS
格式化HDFS的结果如图2-26所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_26.jpg?sign=1734453906-6t6AnVhRr7FqV8pSPwDgQTjQvMSJXlpR-0-b260a23c912774d02b52ba975a2a82ae)
图2-26 格式化HDFS的结果
格式化是对 HDFS (分布式文件系统)中的 DataNode 进行分块,统计所有分块后的初始元数据存储在 NameNode 中。
格式化后,查看 core-site.xml 里 Hadoop.tmp.dir(本例是 /opt/modules/pseudo/hadoop-3.2.2/data/tmp/ 目录)指定的目录下是否有了dfs目录,如果有,则说明格式化成功。
注意:
(1)格式化时,注意 Hadoop.tmp.dir 目录的权限问题,Hadoop 普通用户应该有读/写权限,可以将/opt/modules/pseudo/hadoop-3.2.2/data/tmp/ 的所有者改为 Hadoop。
[Hadoop@bigdata-senior01 Hadoop-3.2.2]$ sudo chown -R Hadoop:Hadoop /opt/data
(2)查看NameNode 格式化后的目录(如图2-27所示),格式化HDFS。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_27.jpg?sign=1734453906-BwHYT2fx1QhnoXa28GJPLgXs6ossHcoX-0-a5dd894b040006ac54d04d26b7eaf86a)
图2-27 查看NameNode格式化后的目录
说明:在真实大数据环境中,如果NameNode元数据占用的内存量达到了持久化条件,还会生成以下3个文件。
fsimage:NameNode元数据在内存满了后,存储元数据的文件。
fsimage*.md5:校验文件,用于校验fsimage的完整性。
seen_txid:Hadoop的版本。
VERSION文件里保存以下两个文件。
namespaceID:NameNode的唯一ID。
clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群。
查看VERSION文件的代码及结果如图2-28所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_28.jpg?sign=1734453906-LjAUgsLIZpoMZKGirrAhtsGUir5oKTQw-0-c39c17753f586a4b8798bb88640440de)
图2-28 查看VERSION文件的代码及结果
(3)启动NameNode,代码及结果如图2-29所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_29.jpg?sign=1734453906-RqHyT3YjEHLuxR3Ix3OVUH3dPhRSHQn9-0-5b96bcdc4c88ebe8d7e42711f4aadb10)
图2-29 启动NameNode
(4)启动DataNode,代码及结果如图2-30所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_30.jpg?sign=1734453906-CIyMjERNcCHJSYenmOTxOei4U1CF29Zq-0-0c7fc6d4e0c599cbb01cfbd5ed7eb095)
图2-30 启动DataNode
(5)启动SecondaryNameNode,代码及结果如图2-31所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_31.jpg?sign=1734453906-RwMnX63a24GlIgP2elPJ8ntoudW7f2tu-0-a43692f802598d37a518e141bc89b26f)
图2-31 启动SecondaryNameNode
(6)JPS命令查看是否成功启动,有结果则表明启动成功了。查看启动状态的代码及结果如图2-32所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_32.jpg?sign=1734453906-CzIvuPvKQxPSaLG7lk8eCDWQTcMIEH8U-0-4c32e1adf14a781e0fbcae66056d1e3d)
图2-32 查看启动状态的代码及结果
(7)在HDFS上创建目录、上传、下载文件。
在HDFS 上创建目录,代码如图2-33所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_33.jpg?sign=1734453906-x0lF7xncSntk9jDCskkkUNCAMvM3Qopu-0-5340b467296c80a5a8d58ce50ca81bb5)
图2-33 在HDFS上创建目录
上传本地文件到 HDFS上,代码如图2-34所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_34.jpg?sign=1734453906-JyjLgYSUOULZ5p5CIB27JdmH38ouwEpC-0-60a7aed8abe48915b1dd22e3c8b4d9f7)
图2-34 上传本地文件到HDFS上
读取HDFS上的文件内容,代码及结果如图2-35所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_35.jpg?sign=1734453906-ESxN8nlcg6Vl0AmePZqNbUs4ouz04KE0-0-3065684e31c3317f9a27fc493d8b60bf)
图2-35 读取HDFS上的文件内容
从HDFS下载文件到本地,代码及结果如图2-36所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_36.jpg?sign=1734453906-yOIP3MLkRiCthYPTp8V6Cw9URyazPVJp-0-3b1774c5f93e1b88e17c95ff040f1cd5)
图2-36 从HDFS下载文件到本地
4.配置和启动YARN
1)配置mapred-site.xml
编辑mapred-site.xml文件,代码如图2-37所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_37.jpg?sign=1734453906-VlNNNLr6NcSenX3SL9OfL48L7tTdJ9S6-0-b1caeec32425885b4eb7518f39b45319)
图2-37 编辑mapred-site.xml文件
添加配置参数如图2-38所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_38.jpg?sign=1734453906-WZOsbty8sNbEod9lnpfUyVls6tfVTIhH-0-5903e5370690de1df4738bfa0f4cfebf)
图2-38 添加配置参数
指定MapReduce运行在YARN框架上,代码如图2-39所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_39.jpg?sign=1734453906-Q2bkf3cFpiQEAPmO6EYOjpR3G7f9HrGC-0-26a57c06f2290d50d1d3b694c98beda7)
图2-39 指定MapRedure运行在YARN框架上
2)配置yarn-site.xml文件
配置yarn-site.xml文件如图2-40所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_40.jpg?sign=1734453906-G5O6kMV1hgj576J0TpPlPJ9Xnijmt69b-0-39f6e6a2826ec5940184ba7ba42bbfa1)
图2-40 配置yarn-site.xml文件
(1)yarn.nodemanager.aux-services 配置了YARN的默认混洗方式,选择为MapReduce 的默认混洗算法。
(2)yarn.resourcemanager.hostname 指定了 ResourceManager 运行在哪个节点上,配置ResourceManager运行参数的代码如图2-41所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_41.jpg?sign=1734453906-hYin1T03uzcx2EpNTm2e9uR4fpYBdlUC-0-d0eb444bc79bbe5411f221887aceb0cb)
图2-41 配置ResourceManager运行参数的代码
3)启动Resourcemanager,代码如图2-42所示
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_42.jpg?sign=1734453906-eHyTF9dPfvlWGFBJ7duuHnBEm7Dcpowq-0-61b780a22383edc588c481c3702547e1)
图2-42 启动ResourceManager
4)启动NodeManager,代码如图2-43所示
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_43.jpg?sign=1734453906-0V1rS26Y2pLZEiHHAxjNmNxkM9otsxT5-0-6648de9bec9bbfba11fb6f3ce9113cbf)
图2-43 启动NodeManager
5)查看是否成功启动,代码及结果如图2-44所示
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_44.jpg?sign=1734453906-fF2eo0cJ0R3QwqDm0VNGeuNxD1r0tL9L-0-93f0a13b64e6c49320322e4e110275a9)
图2-44 查看是否成功启动
从图2-44可以看到ResourceManager、NodeManager 已经成功启动了。
6)YARN的Web页面
YARN的Web客户端端口号是 8088,通过http://bigdata-senior01:8088可以查看。YARN的Web页面效果如图2-45所示。
5.运行MapReduce Job
在Hadoop的share目录中自带了一些 jar 包,里面有一些MapReduce 例子,位置在share/Hadoop/mapreduce/Hadoop-mapreduce-examples-3.2.2.jar中。可以运行这些例子体验刚搭建好的Hadoop平台。我们在这里运行最经典的 WordCount 例子。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_45.jpg?sign=1734453906-pW1QutYPKAbWjXqkSeVicQMBWndijmUk-0-0db5fe0e57b822eae8d3b5def2df1c63)
图2-45 YARN的Web页面效果
1)创建测试用的Input文件
(1)创建输入目录,代码如图2-46所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_46.jpg?sign=1734453906-Nf5UZW9W2vFVZPagzHmoDf86BN9J0jvR-0-5418d0a559b3f22658cb781a99341871)
图2-46 创建输入目录
(2)创建原始文件:在本地 /opt/data 目录中创建一个文件 wc.input,内容如图2-47所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_47.jpg?sign=1734453906-oS5YwKL2gyxEbLJryVd4c7MCPzvi0Bp5-0-9d4b0875cee4881eb2625f1a61d1d241)
图2-47 创建原始文件
(3)将wc.input文件上传到 HDFS 的/wordcountdemo/input目录中,代码及结果如图2-48所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_48.jpg?sign=1734453906-sfh5d9OlJchdUrnLkkW5hmcoJXxgbJFH-0-a84629899542cbdd1c6b3c84d737ef2f)
图2-48 上传文件
2)运行WordCount MapReduce Job,代码及结果如图2-49所示
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_49.jpg?sign=1734453906-xKvNfyMZrKgNRZpSStn356DcHiRkseqN-0-074b31e6cf75db0a5b30fb4d3d0e858e)
图2-49 运行WordCount MapReduce Job
3)查看输出结果目录,代码及结果如图2-50所示
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_50.jpg?sign=1734453906-Rg5TXWG7BqoBocEIRaXa05RyPEBiPus8-0-30126f2f84e7343792b26269abc55f21)
图2-50 查看输出结果目录
(1)output 目录中有两个文件。_SUCCESS 文件是空文件,有这个文件说明Job执行成功。
(2)part-r-00000文件是结果文件,其中-r-说明这个文件是 Reduce 阶段产生的结果,MapReduce 程序执行时,可以没有Reduce阶段,但肯定会有Map阶段,如果没有,则Reduce 阶段的“-r-”应是“-m-”。
(3)一个Reduce 会产生一个以part-r- 开头的文件。
(4)查看输出文件内容,代码及结果如图2-51所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_51.jpg?sign=1734453906-qOuzP3rrZ4wV4FXZwf1b4Gy8b5uGTs2F-0-54a8af875e7518d2a6f5fcf01809d9e1)
图2-51 查看输出文件内容
从图2-51可以看出结果是按照键值排好序的。
6.停止Hadoop
停止Hadoop的代码及结果如图2-52所示。
7.Hadoop 各功能模块的作用
1)HDFS模块
HDFS模块负责大数据的存储,通过将大文件分块后进行分布式存储,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题。HDFS模块是一个相对独立的模块,既可以为 YARN 提供服务,也可以为 HBase 等其他模块提供服务。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_52.jpg?sign=1734453906-SS6YBtkJUsIONn2tdaWshEUz8Woj2lGi-0-e152335332f50233bcd9b794a2c91459)
图2-52 停止Hadoop的代码及结果
2)YARN 模块
YARN模块是一个通用的资源协同和任务调度框架,是为了解决 Hadoop1.x 中MapReduce 里 NameNode 负载太大和其他问题而创建的一个框架。
YARN模块是一个通用框架,不仅可以运行 MapReduce,还可以运行Spark、Storm等其他计算框架。
3)MapReduce 模块
MapReduce 是一个计算框架,它给出了一种数据处理的方式,即通过 Map 阶段、Reduce阶段来分布式、流式地处理数据。它只适用于大数据的离线处理,对实时性要求很高的应用不适用。
8.开启历史服务
1)历史服务介绍
Hadoop开启历史服务,可以在Web页面上查看YARN上执行Job情况的详细信息,可以通过历史服务器查看已经运行完的MapReduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。
2)开启历史服务
开启历史服务的代码如图2-53所示,开启后,可以通过 Web 页面查看历史服务器。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_53.jpg?sign=1734453906-zgnapLSKZwrlI9HsVssO06XUQpn4lWl2-0-3ee1ac09d464a271733a2c087931b5fa)
图2-53 开启历史服务的代码
3)通过Web页面查看Job执行历史
(1)运行MapReduce任务,代码如图2-54所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_54.jpg?sign=1734453906-9nB1a1ZaamlmdhvCSOae3SVYwDtfsu3n-0-609d17ac763dbedeff2d32d3999e17ff)
图2-54 运行MapReduce任务
(2)Job执行中的状态如图2-55所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_55.jpg?sign=1734453906-kMb2mtIAxo9nYYFdbmryjCM5YHJdtfAl-0-ec786133f6e92156dde9033d76595135)
图2-55 Job执行中的状态
(3)查看Job历史,代码及结果如图2-56所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_56.jpg?sign=1734453906-W4M6k1I895eIPk4ktfnJrhvU6youkHaf-0-0327d532a22f4a7d74a260222f34da46)
图2-56 查看Job历史
历史服务器的Web页面端口默认为19888,可以查看Web页面。
在Job任务页面最下面,单击Map或Reduce链接,访问其页面的详细内容。这时,我们无法查看Map或Reducede 的详细日志,这是因为没有开启日志聚集服务。
9.开启日志聚集
1)日志聚集介绍
MapReduce是在各个机器上运行的,在运行过程中产生的日志存放在各个机器上。为了能够统一查看各个机器的运行日志,将日志集中存放在HDFS上,这个过程就是日志聚集。
2)开启日志聚集功能
(1)配置启用日志聚集功能。
Hadoop 默认不启用日志聚集功能。在 yarn-site.xml 文件里配置启用日志聚集功能,代码如图2-57所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_57.jpg?sign=1734453906-LHnMJGqGifLqbCv6WOHOnK2KA6FyanqI-0-65ba8794e95bb167567e738f4db23f18)
图2-57 启用日志聚集功能
yarn.log-aggregation-enable:是否启用日志聚集功能。
yarn.log-aggregation.retain-seconds:设置日志保留时间,单位是秒。
(2)修改配置文件参数如图2-58所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_58.jpg?sign=1734453906-VIl75B25X7MV0Th9YLTOXdgV7dgjDxyl-0-74eeb2c37883d15d794d599aaccb5b9d)
图2-58 修改配置文件参数
(3)重启YARN进程,代码如图2-59所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_59.jpg?sign=1734453906-XuoI8nCljpT6RE2fbGxAg11gNq6dyjXe-0-e601e21ac4e931dedbf6b1f3e389e598)
图2-59 重启YARN进程
(4)重启HistoryServer 进程,代码如图2-60所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_60.jpg?sign=1734453906-O2hUhtSmJEanEcY9WSxCDwQv6itLirfl-0-2d0a01126a5b1d21f877d48ddbb24fb3)
图2-60 重启HistoryServer进程
3)测试日志聚集
运行一个 demo MapReduce,使之产生日志,代码如图2-61所示。
![](https://epubservercos.yuewen.com/7D2AAF/23950017709669506/epubprivate/OEBPS/Images/txt002_61.jpg?sign=1734453906-l2tWJSUnT0n1ZalJ5ePJuxsEqRk1j8yt-0-b77ed5ec6dbb47c7d7c2f524aaf83846)
图2-61 测试日志聚集
查看日志:运行 Job 后,就可以在历史服务器 Web 页面查看各个 Map 和Reduce 的日志了。