分享

hadoop、spark有哪些好的运行结果分析工具?

gwgyk 发表于 2015-7-17 16:47:14 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 27093
最近在做hadoop和spark的各种负载测试,需要对hadoop和spark的运行以后的数据进行统计分析,
比如总的运行时间、map阶段运行、reduce阶段运行时间、各种吞吐量等等。
现在hadoop2的webUI无法看到map和educe阶段运行时间,信息也太简单了,
大家有用过什么好一些的hadoop和spark的运行结果分析工具吗?

已有(4)人评论

跳转到指定楼层
s060403072 发表于 2015-7-17 17:24:59

集群监控、管理基本就这么几个工具

集群管理
一、Nagios
简介:Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
官网:http://www.nagios.org/

二、Ganglia
简介:Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

官网:http://ganglia.sourceforge.net/

三、Apache Ambari
简介:Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。

Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等的集中管理。也是5个顶级hadoop管理工具之一。



Ambari主要取得了以下成绩:
通过一步一步的安装向导简化了集群供应。
预先配置好关键的运维指标(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。
支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。
通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。
用户界面非常直观,用户可以轻松有效地查看信息并控制集群。
Ambari使用Ganglia收集度量指标,用Nagios支持系统报警,当需要引起管理员的关注时(比如,节点停机或磁盘剩余空间不足等问题),系统将向其发送邮件。
此外,Ambari能够安装安全的(基于Kerberos)Hadoop集群,以此实现了对Hadoop 安全的支持,提供了基于角色的用户认证、授权和审计功能,并为用户管理集成了LDAP和Active Directory。
官网:http://ambari.apache.org/
回复

使用道具 举报

flightonair 发表于 2015-7-17 19:17:00
受教了,先收藏,等有空了都试用下,体验下各自的好处,找款适合自己的
回复

使用道具 举报

arsenduan 发表于 2015-7-17 22:11:57
监控Spark应用有很多种方法。
Web接口
每一个SparkContext启动一个web UI用来展示应用相关的一些非常有用的信息,默认在4040端口。这些信息包括:
  • 任务和调度状态的列表
  • RDD大小和内存使用的统计信息
  • 正在运行的executor的信息
  • 环境信息
你可以在浏览器中打开http://<driver-node>:4040网址来访问这些信息。如果在同一台机器上有多个SparkContext正在运行,那么他们的端口从4040开始依次增加(4041,4042等)。
Spark在单机模式下也提供了web UI
注意,在所有这些web接口可以通过点击“表头”来对这些表格进行排序。这使得鉴别运行速度慢的任务、判别数据倾斜等非从容易。

Metrics
Spark基于Coda Hale Metrics库提供一个可配置的统计系统。这允许用户向不同的终端发送统计信息,包括HTTP、JMX和CSV文件。统计系统可以通过配置文件来进行配置,Spark默认将配置文件保存在$SPARK_HOME/conf/mertics.conf。用户可以通过Java property spark.metrics.conf来修改配置文件的保存路径。Spark根据组件的不同将统计信息分为多个实例。可以配置每一个实例向多个方向发送统计信息。目前支持下面几种实例:
  • master:Spark管理进程
  • applications:位于master的组件,统计发送各种应用的信息
  • worker:Spark工作进程
  • executor:执行器
  • driver:Spark驱动程序
每一个实例可以向多个渠道发送统计信息。渠道包含在包org.apache.spark.metrics.sink:
  • ConsoleSink:将统计信息发送到控制台
  • CSVSink:每隔一段时间将统计信息写入到CSV文件
  • GangliaSink:将统计信息发送到Ganglia或者多播组
  • JmxSink:将统计信息注册到JMX控制台
  • MetricsServlet:在Spark UI中添加servlet用来以JSON的方式提供统计信息
统计信息配置文件的语法有一个示例文件——$SPARK_HOME/conf/metrics.conf.template.


高级的仪器
有几个外部工具可用来衡量Spark作业的性能:
  • 集群范围的监控工具,比如 Ganglia,可以洞察整个集群的利用率和资源瓶颈。例如,Ganglia仪表盘可以迅速揭示出某个特定载荷是磁盘相关,网络相关,还是CPU相关的。
  • OS性能分析工具,比如 dstat, iostat,和 iotop, 可以提供各个节点的细粒度的分析。
  • JVM工具,比如 jstack提供了堆栈跟踪,jmap提供了创建堆转储,jstat提供了时间序列统计报告,还有jconsole提供了各种JVM属性的视觉显示,它们对JVM内部构件的舒适运作都是非常有用的。












回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条