专栏名称: About云
about云-为热爱云开发技术人员提供最全面的信息传播和服务平台
目录
相关文章推荐
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  昨天  
三峡小微  ·  畜禽粪污也能变宝? ·  21 小时前  
Python爱好者社区  ·  1885页的Python完全版电子书 ·  3 天前  
三峡小微  ·  新春走基层丨安徽六安:智慧赋能 ... ·  2 天前  
51好读  ›  专栏  ›  About云

监控hadoop生态系统企业应该用什么监控软件

About云  · 公众号  ·  · 2017-06-11 08:12

正文

问题导读

1.文中哪些监控软件有邮件通知功能?
2.监控粒度更细如何自定义实现?
3.哪些监控软件可以自定义?


企业转型大数据,随着发展,可能会遇到很多的问题。 该如何知道磁盘的使用情况;遇到问题,该如何及时的报警通知。该如何知道各个组件的运行情况,各自暂用内存、磁盘、网络使用等,都可能是我们想获取的。由于监控软件,粒度比较粗,想定制监控内容,该如何定制,获取某个进程的信息. 由于每个企业需求不一样,经常有些初学者想了解或则提问,我们到底该用哪个监控软件好。这里整合、统计一些监控软件的一些用途,大家可以选择适合自己企业的监控软件。


Ganglia 监控hadoop集群
Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。
所有这些数据收集会多次影响节点性能。网络中的 “抖动(Jitter)” 发生在大量小消息同时出现时。我们发现通过将节点时钟保持一致,就可以避免这个问题。

Ganglia 过去要求代理运行在每台主机上以从中收集信息,但是现在可以通过 Ganglia 的欺骗机制获得度量数据。

上面我们可以看到Ganglia 可以监控进程的内存、网络cpu,Ganglia 还有一个特点可以自定义。通过添加带内(in-band)插件。通过添加一些其他来源的带外(out-of-band)欺骗。
第一种方法一直是 Ganglia 的常见实践。第二种方法是最新开发的实践,并且与 Nagios 在功能上有所交叠。

Apache Ambari监控Hadoop
Ambari还是比较强大的,它使用Ganglia收集度量指标,用Nagios支持系统报警,当需要引起管理员的关注时(比如,节点停机或磁盘剩余空间不足等问题),系统将向其发送邮件。
Ambari还有以下特点1.简化集群安装
2.预先配置好关键的运维指标(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。
3.支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。
4.通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。
5.用户界面非常直观,用户可以轻松有效地查看信息并控制集群。

Ambari能够安装安全的(基于Kerberos)Hadoop集群,以此实现了对Hadoop 安全的支持,提供了基于角色的用户认证、授权和审计功能,并为用户管理集成了LDAP和Active Directory。

Zabbix监控Hadoop
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix可以获取namenode,jobtracker的相关信息,这也是很多人遇到的问题,比如我们想像hadoop一样,能够显示namenode,jobtracker等相关信息在我们自定义的网页中。这里是Zabbix可以使用hadoop-jobtracker.sh,但是这个脚本可能需要稍加修改。更多大家可以找找网上的资料。

Hue in hadoop
Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。

Hue在数据库方面,默认使用的是SQLite数据库来管理自身的数据,包括用户认证和授权,另外,可以自定义为MySQL数据库、Postgresql数据库、以及Oracle数据库。其自身的功能包含有:

  • 对HDFS的访问,通过浏览器来查阅HDFS的数据。

  • Hive编辑器:可以编写HQL和运行HQL脚本,以及查看运行结果等相关Hive功能。

  • 提供Solr搜索应用,并对应相应的可视化数据视图以及DashBoard。

  • 提供Impala的应用进行数据交互查询。

  • 最新的版本集成了Spark编辑器和DashBoard

  • 支持Pig编辑器,并能够运行编写的脚本任务。

  • Oozie调度器,可以通过DashBoard来提交和监控Workflow、Coordinator以及Bundle。

  • 支持HBase对数据的查询修改以及可视化。

  • 支持对Metastore的浏览,可以访问Hive的元数据以及对应的HCatalog。

  • 另外,还有对Job的支持,Sqoop,ZooKeeper以及DB(MySQL,SQLite,Oracle等)的支持。

下面就通过集成部署,来预览相关功能。

Cloudera监控hadoop
cloudera这是很多人在用的,能够监控hadoop运行情况及健康状况。前期没有邮件通知,后来也加上了这个功能。只要启用即可。Cloudera有免费用也就是试用版,如果到期会自动转为免费版。对于小企业来讲,免费版功能应该可以满足的。

但是似乎粒度也是优点粗。想更详细还是自己定义。


自定义监控

自定义监控是很多人想实现的,方法也有很多种。比如通过shell,通过抓取。其实hadoop提供了相关接口--那就是Hadoop JMX 接口.将http://namenode:50070/dfshealth.jsp 替换为 http://namenode:50070/jmx 就可以看到Hadoop自带的JMX接口所返回的JSON格式的数据,信息非常全面。同时,可以在链接的后面,添加参数来获取指定名称的监控信息,例如访问 http://namenode:50070/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo 就可以只获取NameNodeInfo的信息,通过更改qry=后面的参数,可以指定想要获取的内容,qry参数的值即为json信息中name所对应的内容。







请到「今天看啥」查看全文