前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop部署配置及运行调试(上)

Hadoop部署配置及运行调试(上)

作者头像
数人之道
发布于 2022-01-07 08:56:34
发布于 2022-01-07 08:56:34
1.2K00
代码可运行
举报
文章被收录于专栏:数据技术数据技术
运行总次数:0
代码可运行

文章大纲:

01本地模式

本地模式是最简单的部署模式,所有模块都运行在一台机器的单个JVM进程中,使用的是本地文件系统,而不是HDFS. 本地模式主要是用于本地开发过程中的运行调。下载Hadoop安装后不用进行任何的配置,默认的就是本地模式。

一、部署配置

按照《第一篇:Hadoop环境搭建及安装》中3.1、3.2、3.3的步骤安装JDK及Hadoop即可,无需修改Hadoop中的任何配置文件,默认使用本地模式。

若不对Hadoop的 /etc 目录下的参数配置文件进行修改,系统会采用默认值,默认使用的值及参数含义描述可以在Apache Hadoop官网中检索查找:

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

在Configuration中可找到:

图1-1-1:Apache官网Hadoop配置信息

二、运行调试

1. 目录及文件准备

在运行程序前需要先创建存放数据的目录及数据文件。

(1) 创建数据文件目录,后面介绍的模式都会用到此目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir -p /opt/data

(2) 修改其所有者为hadoop用户:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chown -R hadoop:hadoop /opt/data

(3) 在此数据文件目录下创建输入数据文件wc.input:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /opt/data/wc.input
hadoop  hdfs   mapreduce
hadoop  hbase  hive
hadoop  storm  yarn
spark   sparkstreaming  sparksql
spark   hdfs   yarn
spark   hdfs   mapreduce
hadoop  spark
hadoop  spark

(4) 在data目录下再创建一个input目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /opt/data/input

(5) 将Hadoop的 /etc 目录下的xml文件拷贝到input目录下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /opt/modules/hadoop-2.10.1/etc/hadoop/*.xml /opt/data/input/

图1-2-1:拷贝xml文件到input目录

2. 运行Hadoop自带的程序

Hadoop官方自带的MapReduce Demo程序位于 /share/hadoop 目录下,下面举例在本地模式下运行两个最经典的程序。

(1) Grep官方案例

(a) 此案例的功能是将文件中符合规则的内容进行输出。

(b) 运行下面的hadoop命令,注意命令中结果输出用的output目录程序会自动创建,千万不要自行创建output目录,不然会报错:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop jar /opt/modules/hadoop-2.10.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar grep input output 'dfs[a-z.]+'

(c) 查看输出到本地output目录下的结果文件:

图1-2-2:Grep案例输出文件

可以看到,符合正则表达式 'dfs[a-z.]+' 的内容输出到了part-r-00000结果文件中;另外还有一个_SUCCESS文件,说明Job运行成功。

图1-2-3:Grep案例输出结果

(2) WordCount官方案例

(a) 此案例的功能是统计输入的文件中单词出现的次数。

(b) 运行下面的hadoop命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop jar /opt/modules/hadoop-2.10.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar wordcount /opt/data/wc.input output2

(c) 查看输出到本地output2目录下的结果文件:

图1-2-4:WordCount案例输出文件

可以看到,输入文件wc.input的单词统计结果记录输出到了part-r-00000结果文件中;另外还有一个_SUCCESS文件,说明Job运行成功。

图1-2-5:WordCount案例输出结果

02伪分布式模式

伪分布式模式是在一台机器的多个JVM进程中运行各个模块,虽然每个JVM进程都是独立分开运行的,而且使用的不是本地文件系统,而是HDFS,但他们都是运行在同一台机器上,不是真正的分布式,因此也叫伪分布式模式。该模式一般用于调试Hadoop分布式程序代码,检查程序是否正确执行。

一、部署配置

1. 安装JDK及Hadoop

按照《第一篇:Hadoop环境搭建及安装》中3.1、3.2、3.3的步骤安装JDK及Hadoop.

2. 配置JAVA_HOME参数

修改Hadoop的 /etc/hadoop 目录中以下配置文件的JAVA_HOME参数:hadoop-env.sh、mapred-env.sh、yarn-env.sh

(1) hadoop-env.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# The java implementation to use.
export JAVA_HOME="/opt/modules/jdk1.8.0_301"

(2) mapred-env.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME="/opt/modules/jdk1.8.0_301"

(3) yarn-env.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME="/opt/modules/jdk1.8.0_301"

3. HDFS设置、格式化、启动及使用管理

(1) 配置core-site.xml

缺省情况下,Hadoop的 /etc/hadoop 目录下的core-site.xml中的参数使用默认值(各参数默认值及描述可在官网检索:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml),这里我们需要修改此配置文件其中两个参数的值。

(a) fs.defaultFS

此参数用以指定HDFS中NameNode的地址。通过官网检索,可以看到其默认值为:file:///,即使用本地文件系统。若不作修改则无法使用HDFS;同样地,若修改了此参数则无法使用本地模式运行Hadoop程序进行文件读写。

添加以下内容修改此参数值,配置HDFS地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoop100:8020</value>
</property>

*注:hadoop1.x的默认端口9000,hadoop2.x的默认端口是8020.

(b) hadoop.tmp.dir

此参数用以指定Hadoop运行时产生的文件的存储目录,比如HDFS的NameNode数据都默认存放在这个目录下。通过官网检索,可以看到其默认值为:/tmp/hadoop-${user.name}.

若不作修改,NameNode会将HDFS的元数据存储在这个 /tmp 目录下,此时操作系统一旦重启,系统会清空 /tmp 目录下的文件,导致NameNode元数据丢失,无法关联上DataNodes对数据文件进行操作,是个非常严重的问题,因此需要修改此参数值。

创建临时目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /opt/data/tmp

添加以下内容修改此参数值,配置临时文件存储目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/data/tmp</value>
</property>

图2-1-1:配置core-site.xml文件

(2) 配置hdfs-site.xml

缺省情况下,Hadoop的 /etc/hadoop 目录下的hdfs-site.xml中的参数使用默认值(各参数默认值及描述可在官网检索:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml),这里我们需要修改此配置文件其中一个参数的值。

(a) dfs.replication

此参数用以指定HDFS存储时备份的副本数量。通过官网检索,可以看到其默认值为:3. 因为伪分布式模式下只有一个节点,所以这里需要修改参数为1。若不作修改,会在这一个节点下拷贝三份副本,没有必要,造成存储空间浪费。日后若使用完全分布式模式部署扩展到N个节点,则会自动按照此参数设置的值(例如为5)备份副本到任意(5个)节点上。

添加以下内容修改此参数值,配置HDFS备份副本数量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

图2-1-2:配置hdfs-site.xml文件

(3) 格式化并启动HDFS

在第一次启动HDFS前需要进行NameNode格式化,格式化是对HDFS中的DataNodes进行分块(一个块默认128M),再将分块后的初始文件元数据信息及块与块所在DataNode之间的地址映射关系存储在NameNode中。

(a) 格式化NameNode

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs namenode -format

格式化后,查看之前配置core-site.xml文件里hadoop.tmp.dir参数指定的文件存储目录下(这里设置的是 /opt/data/tmp)是否有dfs目录,如果有,说明格式化成功。

(b) 启动HDFS

  • 启动NameNode
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode
  • 启动DataNode
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode
  • 启动SecondaryNameNode
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/hadoop-daemon.sh start secondarynamenode
  • 使用jps命令查看启动是否已经成功

图2-1-3:查看HDFS是否成功启动

  • 在浏览器中输入地址:http://hadoop100:50070/(这里需要替换成你设置的节点hostname或IP,端口为50070), 通过Web页面查看HDFS的信息,检查是否正常工作,这里还可以界面化管理HDFS中的文件。

图2-1-4:HDFS信息及文件管理Web页面

(c) 格式化后的文件解析

下面我们进入NameNode格式化后的目录 /opt/data/tmp/dfs/name/current 看看里面的内容。

图2-1-5:NameNode格式化目录文件

  • fsimage是namespace镜像文件,其中包含了NameNode的元数据信息,这些信息会被Cache在内存中,也会被持久化存储在本地硬盘中。
  • fsimage*.md5是校验文件,用于校验fsimage的完整性。
  • seen_txid是hadoop的版本。
  • VERSION文件保存的信息:

图2-1-6:VERSION文件信息

  • namespaceID:NN的唯一ID, 一个NN管理一组blockpoolID.
  • clusterID:集群ID, NN和DN的集群ID应该一致,表明是一个集群。
  • cTime:标记了NN存储系统的创建时间。
  • storageType:存储目录的数据结构
  • blockpoolID:一个 block pool id 标识一个 block pool, 并且是跨集群的全局唯一ID. 格式化过程中,当一个新的namespace被创建的时候会创建并持久化一个唯一ID, NN将blockpoolID持久化到磁盘中,在后续的启动过程中,会再次加载并使用。每个DN的blockpoolID均一致。
  • layoutVersion:一个负整数,通常只有HDFS增加新特性时才会更新这个版本号。

(d) log日志查看

HDFS的格式化及启动等操作可以在Hadoop的logs路径下查看日志信息。

图2-1-7:查看日志信息

(e) 格式化注意事项

  • 不要经常对NameNode进行格式化,因为格式化NameNode会产生新的集群ID, 从而导致NameNode和DataNode的集群ID不一致,集群就会找不到以往的数据。

图2-1-8:NN与DN的集群ID需要一致

  • 如果一定要进行格式化(不是首次格式化的情况下),格式化前一定要先删除log日志及data文件夹的数据,再格式化NameNode.

图2-1-9:NameNode多次格式化问题

(4) 使用管理HDFS

我们可以通过hdfs的命令或者浏览器界面操作这两种方式来使用和管理HDFS中的文件。

(a) 使用hdfs命令

  • 在HDFS上创建目录
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs dfs -mkdir -p /user/hadoop/input
  • 上传本地文件到HDFS上
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs dfs -put ${HADOOP_HOME}/etc/hadoop/core-site.xml /user/hadoop/input
  • 读取HDFS上的文件内容
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs dfs -cat /user/hadoop/input/core-site.xml

图2-1-10:读取HDFS上的文件内容

  • 下载HDFS上的文件到本地
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs dfs -get /user/hadoop/input/core-site.xml /opt/data

图2-1-11:下载HDFS上的文件到本地

(b) 使用Web页面

打开HDFS的Web页面地址:http://hadoop100:50070/,点击Utilities-->Browse the file system进入文件管理界面进行操作。

图2-1-12:使用浏览器界面使用HDFS

4. YARN设置及启动

(1) 配置yarn-site.xml

缺省情况下,Hadoop的 /etc/hadoop 目录下的yarn-site.xml中的参数使用默认值(各参数默认值及描述可在官网检索:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml),这里我们需要修改此配置文件其中两个参数的值。

(a) yarn.nodemanager.aux-services

此参数用以指定Reducer获取数据的方式。这里设置为默认使用mapreduce_shuffle混洗算法。关于shuffle算法在《第二篇:Hadoop基础知识及部署模式》的第2.3章中有详细介绍,而且这个是MapReduce的重要知识点,之后还会深入研究学习。

添加以下内容修改此参数值,配置YARN的默认混洗方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

(b) yarn.resourcemanager.hostname

此参数用以指定YARN的ResourceManager运行在哪个节点上。由于伪分布式模式下只有一台机器,因此直接设置为本机的hostname即可。

添加以下内容修改此参数值,配置YARN的ResourceManager运行地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hadoop100</value>
</property>

图2-1-13:配置yarn-site.xml文件

(2) 配置mapred-site.xml

缺省情况下,Hadoop的 /etc/hadoop 目录下的mapred-site.xml中的参数使用默认值(各参数默认值及描述可在官网检索:https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml),这里我们需要修改此配置文件其中一个参数的值。

(a) mapreduce.framework.name

此参数用以指定MapReduce运行在哪种框架上。通过官网检索,可以看到其默认值为:local,即在本地运行。若不作修改则无法使用YARN框架运行MapReduce. 该参数有三个值可选:local, classic, yarn. 其中classic是专门为Hadoop1.x版本设置的。 重命名配置模板文件进行修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mv mapred-site.xml.template mapred-site.xml

添加以下内容修改此参数值,配置MapReduce运行的框架:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

图2-1-14:配置mapred-site.xml文件

(3) 启动YARN

在启动YARN集群之前必须确保HDFS的NameNode和DataNode已经启动,可使用jps命令进行查看。

(a) 启动ResourceManager

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/yarn-daemon.sh start resourcemanager

(b) 启动NodeManager

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/yarn-daemon.sh start nodemanager

(c) 查看YARN是否启动成功

  • 使用jps命令查看进程

图2-1-15:查看YARN是否成功启动

  • 在浏览器中输入地址:http://hadoop100:8088/(这里需要替换成你设置的节点hostname或IP,端口为8088), 通过Web页面查看YARN的资源调度信息,检查是否正常工作。由于目前没有运行任何程序,因此显示"No data available".

图2-1-16:YARN的资源调度管理Web页面

二、运行调试

我们这里使用本地模式下介绍过的WordCount官方案例来进行伪分布式模式部署下使用HDFS运行MapReduce程序的调试测试。还会介绍如何使用YARN的Web页面查看Job的运行情况,如何配置历史服务器和日志聚集用以查看运行Job的详细信息。

1. 使用HDFS及YARN运行调试程序

(1) 在HDFS上准备目录及文件

我们使用之前在HDFS上创建的 /user/hadoop/input 目录存放需要读取的输入文件,并把在本地模式下调试中创建的wc.input文件复制到此目录中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs dfs -put /opt/data/wc.input /user/hadoop/input

在HDFS的Web页面查看文件是否成功上传:

图2-2-1:通过HDFS的Web页面查看文件是否成功上传

(2) 运行WordCount官方案例

运行下面的hadoop命令,使用HDFS中的文件在YARN上执行程序,并查看程序的运行情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop jar /opt/modules/hadoop-2.10.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar wordcount /user/hadoop/input/wc.input /user/hadoop/output

图2-2-2:后台查看程序运行情况

(3) 在YARN页面中查看Job的运行情况

图2-2-3:YARN页面查看Job运行情况

(4) 查看输出到HDFS的output目录下的结果文件

可在HDFS的Web页面中查看输出结果文件:

图2-2-4:在HDFS的Web页面查看输出结果文件

2. 配置并启动历史服务

点击YARN页面Job运行记录中的History链接,可以发现是无法访问的,这是因为没有开启Hadoop的历史服务。

Hadoop开启历史服务后,可以在YARN的Web页面上查看执行Job的详细信息。可以通过历史服务器查看已经运行完的MapReduce作业记录,比如Map的使用数、Reduce的使用数、Counter计数器、Shuffle情况、配置信息、Map任务情况、Reduce任务情况等信息。

(1) 配置mapred-site.xml

在Hadoop的 /etc/hadoop 目录下的mapred-site.xml配置文件中增加修改其中两个参数的值。

(a) mapreduce.jobhistory.address

此参数用以指定Hadoop历史服务器端的地址。由于伪分布式模式下只有一台机器,因此直接设置为本机的hostname或IP地址即可,端口为10020.

添加以下内容修改此参数值,配置历史服务器端地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>hadoop100:10020</value>
</property>

(b) mapreduce.jobhistory.webapp.address

此参数用以指定Hadoop历史服务器Web端的地址。由于伪分布式模式下只有一台机器,因此直接设置为本机的hostname或IP地址即可,端口为19888.

添加以下内容修改此参数值,配置历史服务器Web端地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>hadoop100:19888</value>
</property>

图2-2-5:配置历史服务器地址

(2) 启动历史服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/mr-jobhistory-daemon.sh start historyserver

使用jps命令查看历史服务是否成功启动:

图2-2-6:查看历史服务是否成功启动

(3) 查看历史服务

打开YARN的Web页面:http://hadoop100:8088/,点击Job运行记录中的History链接进入历史服务,可看到以下页面,即可查看Job的各种详细信息:

图2-2-7:通过历史服务查看Job的详细信息

3. 配置并启动日志聚集

进入Job历史服务Overview页面,Map和Reduce个数的链接上,点击进入Map的详细信息页面,再点击task name的链接,查看某一个Map或者Reduce的详细日志logs是看不到的,会显示以下信息,这是因为没有开启日志聚集服务。

图2-2-8:无法查看日志logs信息

MapReduce是在各个机器上运行的,在运行过程中产生的日志会存储于各个机器节点上,为了能够统一查看各个机器的运行日志,将日志集中存放在HDFS上,这个过程就是日志聚集。其优势是可以方便地查看到程序的运行详情,便于开发调试。但在默认情况下,Hadoop是不启用日志聚集的。

(1) 配置yarn-site.xml

在Hadoop的 /etc/hadoop 目录下的yarn-site.xml配置文件中增加修改其中两个参数的值。

(a) yarn.log-aggregation-enable

此参数用以指定Hadoop是否启用日志聚集功能。通过官网检索,可以看到其默认值为:false, 即默认不开启日志聚集功能,若要启用则需要修改此参数为true.

添加以下内容修改此参数值,配置Hadoop启用日志聚集功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

(b) yarn.log-aggregation.retain-seconds

此参数用以指定日志聚集保留的时间。通过官网检索,可以看到其默认值为:-1, 即默认不开启此保留时间,若要启用则需要修改此参数为保留时长值(单位为秒),这里设置保留7天,即604800秒。

添加以下内容修改此参数值,配置日志聚集保留时间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

图2-2-9:配置日志聚集功能

(2) 重启历史服务及YARN进程

配置开启日志聚集功能后,需要重启历史服务及YARN的ResourceManager及NodeManager进程,使日志聚集功能生效。

  • 关闭历史服务
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/mr-jobhistory-daemon.sh stop historyserver
  • 停止NodeManager
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/yarn-daemon.sh stop nodemanager
  • 停止ResourceManager
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/yarn-daemon.sh stop resourcemanager
  • 使用jps命令查看是否停止成功

图2-2-10:查看历史服务及YARN是否停止成功

  • 启动ResourceManager
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/yarn-daemon.sh start resourcemanager
  • 启动NodeManager
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/yarn-daemon.sh start nodemanager
  • 启动历史服务
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/mr-jobhistory-daemon.sh start historyserver
  • 使用jps命令查看是否启动成功

图2-2-11:查看历史服务及YARN是否重启成功

  • 另外,重启YARN可以使用另一种更快捷的方法:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
${HADOOP_HOME}/sbin/stop-yarn.sh
${HADOOP_HOME}/sbin/start-yarn.sh
  • 注意:每次停止和启动都要使用jps命令查看是否成功!

(3) 查看日志聚集

  • 删除HDFS的 /user/hadoop 下的 output 目录:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs dfs -rm -r /user/hadoop/output
  • 重新运行WordCount案例程序:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop jar /opt/modules/hadoop-2.10.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar wordcount /user/hadoop/input/wc.input /user/hadoop/output
  • 打开YARN的Web页面:http://hadoop100:8088/,点击Job运行记录中的History链接进入历史服务,点击Map个数的链接,进入Map的详细信息页面,再点击task name的链接,进入后点击logs链接,即可看到日志信息:

图2-2-12:在YARN的Web页面查看日志信息

上一篇:Hadoop基础知识及部署模式

下一篇:Hadoop部署配置及运行调试(下),敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数人之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
45个 GIT 经典操作场景,专治不会合代码
git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户端工具,使得合并代码变的很方便。但找工作面试和一些需彰显个人实力的场景,仍然需要我们掌握足够多的git命令。
程序员小富
2022/03/04
1.9K0
45个 GIT 经典操作场景,专治不会合代码
Git 帮助手册
国外网友制作了一张 Git Cheat Sheet,总结很精炼,各位不妨收藏一下。
硬件开源小站
2023/04/07
4.4K1
Git 帮助手册
【Git】Git 完全指南:从入门到精通
Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、管理代码变更,并保障项目的稳定性与可持续发展。本篇文章从基础命令讲起,逐步深入,帮助你全面了解并掌握 Git,最终达到精通。
LuckiBit
2024/12/11
4.5K0
【Git】Git 完全指南:从入门到精通
测试开发必会12个Git高级命令
分支合并会被记录为一次合并提交,这种做法是很有意义的。比如说,可以通过这种方式来标识一个新特性被合并到了发布分支中。不过,当多个团队成员工作在一个项目中并使用常规的git pull来同步分支时,提交时间线就会被不必要的合并提交所污染。更好的做法则是使用git rebase将一个feature分支变基到master分支:
测试小兵
2019/11/20
9040
工作流一目了然,看小姐姐用动图展示10大Git命令
尽管 Git 是一款非常强大的工具,但如果我说 Git 用起来简直是噩梦,大多数人也会认同我的说法。我发现在使用 Git 时,在头脑里可视化地想象它会非常有用:当我执行一个特定命令时,这些分支会如何交互,又会怎样影响历史记录?为什么当我在 master 上执行硬重启,force push 到原分支以及 rimraf 我们的 .git 文件夹时,我的同事哭了?
机器之心
2020/04/20
1.2K0
我在团队的技术分享-Git日常操作我在团队的技术分享-Git日常操作
工作流程如下: 1、从远程仓库克隆代码到本地仓库 2、在本地仓库中checkout代码然后进行代码修改 3、在提交代码前先将代码提交到暂存区 4、提交到本地仓库。本地仓库中保存修改的各个历史版本 5、修改完成后,需要和团队共享代码时,将代码push到远程仓库
Light413
2021/12/08
7020
我在团队的技术分享-Git日常操作我在团队的技术分享-Git日常操作
Git 从入门到精通,这篇包教包会!
集中化的版本控制系统,诸如 CVS,Subversion 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
java思维导图
2020/03/03
2.7K0
如何优雅的使用 git pull ?
如果你不能很好的应用 Git,那么这里为你提供一个非常棒的 Git 在线练习工具 Git Online( 回复公众号「工具」),你可以更直观的看到你所使用的命令会产生什么效果
二哥聊运营工具
2021/12/17
1.5K0
如何优雅的使用 git pull ?
我在工作中是如何使用Git的
最近在网上有个真实发生的案例比较火,说的是一个新入职的员工,不会用 Git 拉代码,第二天被开除。由此,可见 Git 对我们工作的重要性,无论是前端后端,都是离不开 Git 的,下面就让我们一探究竟吧。
政采云前端团队
2021/07/19
1.9K0
常用的Git Tips
一、Configuration:配置 列举所有的别名与配置 git config --list Git 别名配置 git config --global alias. git config --global alias.st status 设置git为大小写敏感 git config --global core.ignorecase false 二、Help:常用的辅助查询命令 在git 命令行里查看everyday git git help everyday 显示git常用的帮助命令 git help -g 获取Git Bash的自动补全 ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc 设置自动更正 git config --global help.autocorrect 1 三、Remote:远端仓库配置 获取所有远端引用配置 git remote 或者 git remote show 修改某个远端的地址 git remote set-url origin URL Repo 查看当前仓库中的所有未打包的objects和磁盘占用 git count-objects --human-readable 从object数据库中删除所有不可达的object git gc --prune=now --aggressive 四、文件类操作 ,Cache:缓存,Track:文件追踪, 展示所有被追踪的文件 git ls-files -t 展示所有未被追踪的分支 git ls-files --others 展示所有被忽略的文件 git ls-files --others -i --exclude-standard git check-ignore* git status --ignored Manipulation:操作 停止追踪某个文件但是不删除它 git rm --cached <file_path 或者 git rm --cached -r <directory_path 强制删除未被追踪的文件或者目录 git clean -f git clean -f -d git clean -df 清空.gitignore git clean -X -f Changes:修改 Info:信息查看 查看上次提交之后的未暂存文件 git diff 查看准备用于提交的暂存了的修改的文件 git diff --cached 显示所有暂存与未暂存的文件 git diff HEAD 查看最新的文件版本与Stage中区别 git diff --staged dd:追踪某个修改,准备提交 Stage某个文件的部分修改而不是全部 git add -p Reset:修改重置 以HEAD中的最新的内容覆盖某个本地文件的修改 git checkout -- <file_name> Stash:贮存 Info:信息查看 展示所有保存的Stashes git stash list Manipulation:操作 Save:保存 保存当前追踪的文件修改状态而不提交,并使得工作空间恢复干净 git stash 或者 git stash save 保存所有文件修改,包括未追踪的文件 git stash save -u 或者 git stash save --include-untracked Apply:应用 应用任何的Stash而不从Stash列表中删除 git stash apply <stash@{n}> 应用并且删除Stash列表中的最后一个 git stash pop 或者 git stash apply stash@{0} && git stash drop stash@{0} 删除全部存储的Stashes git stash clear 或者 git stash drop <stash@{n}> 从某个Stash中应用单个文件 git checkout <stash@{n}> -- <file_path> 或者 git checkout stash@{0} -- <file_path> Commit:提交 检索某个提交的Hash值 git rev-list --reverse HEAD | head -1 Info:信息查看 List:Commit列表 查看自Fork Master以来的全部提交 git log --no-merges --stat --reverse master.. 展示当前分支中所有尚未合并到Master中的提交 git cherry -v master 或者 git cherry -v master <branch-to-be-merged> 可视化地查看整个Version树
竹清
2018/08/31
7170
Git | 5年程序员生涯,使用的最频繁的Git 命令总结
在整个功能开发完毕的时侯,会有非常多的 commit,用 rebase 可以让我们的commit记录很干净
咸鱼学Python
2020/03/26
6460
Git 常用命令总结,掌握这些,轻松驾驭版本管理
最近公司的代码管理工具要从SVN转到Git上,因此虽然之前用过Git,但是都是一些简单的推送提交,因此还是有必要进行一些系统的学习,这里做一下笔记,以备后询,且不定期更新。
ConardLi
2019/10/31
4870
Git 常用命令总结,掌握这些,轻松驾驭版本管理
日常开发过程中实际场景下使用git的一些简单总结
公司内部有代码仓库和 github 仓库邮箱不一致。例如已经全局配置了公司内的信息
ACK
2020/05/26
4770
图解常用的 Git 指令含义
当项目中包含多条功能分支时,有时就需要使用 git merge 命令,指定将某个分支的提交合并到当前分支。Git 中有两个合并策略:fast-forward 和 no-fast-forward。
苏南
2020/12/16
1.2K0
图解常用的 Git 指令含义
git学习总结03 — 分支管理
merge 分支合并有 fast-forward 和 no-fast-forward 两种模式。下图 dev 合入 master,默认触发快进模式(fast-forward),因为只需要修改指针即可实现合并;而普通模式(no-fast-forward)需要生成一个新的commit,因此即使 dev 分支删除,也能从 master 分支历史上看出分支合并信息。
CS逍遥剑仙
2020/05/30
1.5K0
动图学CS: 有用的 Git 命令(上)
尽管 Git 是一个非常强大的工具,但是我相信大部分同学有时候学起 Git 来,感觉很难搞~ 笔者总是习惯于在脑海中重现学习的知识,Git 也一样:当我们执行了切换分支命令,分支之间是如何交互的?又是如何影响历史提交的?当我在 master 分支上执行了强制 reset 又 force push 到了远端 ,又把 .git 文件夹删掉,我的同事为什么会哭??
savokiss
2020/05/08
1K0
动图学CS: 有用的 Git 命令(上)
Git 进阶使用1
Git 作为全球软件开发者的标配代码管理工具,是程序员离不开的日常伙伴,除了基本的几条命令外,git其实还有很多日常会用到的option,这里以我的个人经验做个总结
Kevinello
2022/10/09
7720
Git 学习笔记
最近公司的代码管理工具要从SVN转到Git上,因此虽然之前用过Git,但是都是一些简单的推送提交,因此还是有必要进行一些系统的学习,这里做一下笔记,以备后询,且不定期更新。
前端下午茶
2018/10/22
4850
Git 学习笔记
git的面试题_es面试题
新增文件的命令:git add file或者git add . 提交文件的命令:git commit –m或者git commit –a 查看工作区状况:git status –s 拉取合并远程分支的操作:git fetch/git merge或者git pull 查看提交记录命令:git reflog
全栈程序员站长
2022/08/03
8010
Git知识点整理
在版本库中标记为index的区域为暂存区,标记为master的是Git为我们自动创建的第一个分支,代表的是目录树。此时HEAD实际是指向master分支的一个“游标”,所以图示的命令中出现HEAD的地方可以用master来替换。图中的objects标识的区域为git的对象库,实际位于.git/objects目录下。
Abalone
2022/07/14
5420
Git知识点整理
推荐阅读
相关推荐
45个 GIT 经典操作场景,专治不会合代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档