hadoop的指标类型和日志
Hadoop概念
Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理 。
Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理 。
Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度 。
Hadoop 还是可伸缩的,能够处理 PB 级数据 。
此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用 。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点 :
1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖 。
2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中 。
3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快 。
4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配 。
5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低 。
Hadoop 指标类型
Hadoopde 守护进程的指标根据它们所属的上下文可以分为不同的组,如下所述:
JVM指标:这些指标由集群中运行的JVM产生包括JVM堆大小和垃圾回收相关指标,例如当前的堆内存(MemHeapUsed)的使用情况和总GC计数(GcCount)。
RPC指标:rpc上下文中的指标包括主机名和端口等,还包括诸如发生字节数(SentBytes)、当前打卡连接数(NumOpenConnections)和认证失败次数等指标。
DFS指标:dfs上下文中包括与NameNode、HDFS文件系统、DataNodes和JournalNodes相关指标,DFS指标可以告诉集群中是否存在大量的文件创建和删除操作。
Hadoop的日志消息
可以通过浏览各个日志文件或通过Hadoop内置的web界面访问Spark和其他作业的hadoop日志消息。大多数时候,通过web界面访问日志更好,因为可以节省时间,并快速找到发生性能问题或者作业失败的原因:
Hadoop生成两种主要类型的日志:
它为守护程序(如NameNode和DataNode)生成日志。守护进程日志主要由管理员使用,因为它们有助与排除DataNode和NameNode等关键Hadoop服务的意外故障。
Hadoop还为集群中的运行的每个应用程序生成日志,hadoop应用程序日志可以用于开发人员了解作业失败和性能下降的原因。
可以通过多种方式查看hadoop的日志
Hadoop web UI 特别是ResourceManager webUi可以免除访问日志存储位置和查看日志文件的麻烦,还可以通过JobHistory web UI 查看日志
直接从日志文件检查日志信息
对于某些应用程序日志,如果开启了日志聚合功能则将他们聚合到HDFS存储。
通过yarn命令检查:
yarn application命令可以管理一下任务:
列出集群中运行的应用程序
杀死正在运行的的应用程序
获取正在运行的应用程序的状态。
查看Yarn应用程序
yarn application -list 可以检索所有作业的列表,不考虑它们的状态。作业可以具有以下状态:All、NEW、NEW_SAVING、SUMBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED和KILLED。指定-appStates选项即可
yarn application -list -appStates running
检查应用程序的状态
yarn application -status
kill正在执行的的作业
yarn application -kill
检查节点状态
yarn node -all -list 列出集群的所有节点及其状态
获取作业日志
yarn logs 名利的语法:
yarn logs -applicationId
只能获取已经结束的运行的作业的日志。
Hadoop存储日志的位置
1、hdfs:这是hadoop创建用于存储作业执行文件(如包含运行作业hadoop参数的job.xml)的暂存目录的位置。
2、NodeManager本地目录:这是在本地文件系统上创建的目录,hadoop在其中存储由NodeManager服务生产的Shell脚本,以便执行ApplicationMaster容器。可以使用yarn-site.xml文件中的yarn.nodemanager.local.dir参数指定NodeManger本地目录位置。
此参数可以提供NodeManager存储其本地文件的目录列表。在这些目录下实际应用程序的本地文件目录${yarn.nodemanager.local-dir}/usercache/user/....。每个NodeManager在NodeManager本地目录下的本地应用程序缓存中
3、NodeManger日志目录:这是linux上本地目录,NodeManager在此存储用户运行的应用程序的实际日志文件。在此节点的NodeManager上执行作业的所有容器及其应用程序日志存储在此目录中。使用yarn.nodemanager.log-dirs参数指定NodeManager日志目录的位置。
不需要担心nm-local-dirs目录会填满appcache子目录下的作业文件,这些文件在作业完成时会被自动删除。但是某些作业确实包含大文件,配置属性yarn.nodemanager.delete.debug-delay-sec指定在应用程序后就保留本地日志目录的时间,一点配置时间到期,NodeManager的deletionservicehi删除应用程序本地文件目录结构。
Hadoop存储日志聚合
启用日志聚合之后,nodemanager会将所有容器日志连接到一个文件中并将它保存在HDFS中,可以使用yarn.nodemanager.remote-app-log-dir参数配置hadoop 在hdfs的哪里存储聚合日志。一般配置在/tmp/hadoop/logs/
三种方式获取应用程序日志
1、从hdfs中获取
2、通过hadoop 从web UI看,在未结束的应用的中点击applicationmaster,点击页签下面的logs
3、作业完成之后从JobHistoryServer UI查看