Hive SQL 监控系统 - Hive Falcon
BiancaCongr
8年前
<h2><strong>1.概述</strong></h2> <p>在开发工作当中,提交 Hadoop 任务,任务的运行详情,这是我们所关心的,当业务并不复杂的时候,我们可以使用 Hadoop 提供的命令工具去管理 YARN 中的任务。在编写 Hive SQL 的时候,需要在 Hive 终端,编写 SQL 语句,来观察 MapReduce 的运行情况,长此以往,感觉非常的不便。另外随着业务的复杂化,任务的数量增加,此时我们在使用这套流程,已预感到力不从心,这时候 Hive 的监控系统此刻便尤为显得重要,我们需要观察 Hive SQL 的 MapReduce 运行详情以及在 YARN 中的相关状态。</p> <p>因此,我们经过调研,从互联网公司的一些需求出发,从各位 DEVS 的使用经验和反馈出发,结合业界的一些大的开源的 Hadoop SQL 消息监控,用监控的一些思考出发,设计开发了现在这样的监控系统:Hive Falcon。</p> <p>Hive Falcon 用于监控 Hadoop 集群中被提交的任务,以及其运行的状态详情。其中 Yarn 中任务详情包含任务 ID,提交者,任务类型,完成状态等信息。另外,还可以编写 Hive SQL,并运 SQL,查看 SQL 运行详情。也可以查看 Hive 仓库中所存在的表及其表结构等信息。下载地址,如下所示:</p> <ul> <li>[ <a href="/misc/goto?guid=4959719593136900191" rel="nofollow,noindex">Hive Falcon 下载地址</a> ]</li> </ul> <h2><strong>2.内容</strong></h2> <p>Hive Falcon 涉及以下内容:</p> <ul> <li>Dashboard</li> <li>Query</li> <li>Tables</li> <li>Tasks</li> <li>Clients & Nodes</li> </ul> <h2><strong>2.1 Dashboard</strong></h2> <p>我们通过在浏览器中输入 http://host:port/hf,访问 Hive Falcon 的 Dashboard 页面。该页面包含以下内容:</p> <ul> <li>Hive Clients</li> <li>Hive Tables</li> <li>Hadoop DataNodes</li> <li>YARN Tasks</li> <li>Hive Clients Graph</li> </ul> <p>如下图所示:</p> <p><img src="https://simg.open-open.com/show/8626a89581013a3fc5ecc2edb3aee3d1.png"></p> <h2><strong>2.2 Query</strong></h2> <p>Query 模块下,提供一个运行 Hive SQL 的界面,该界面可以用来查看观察 SQL 运行的 MapReduce 详情。包含 SQL 编辑区,日志输出,以及结果展示。如下图所示:</p> <p><img src="https://simg.open-open.com/show/db122f57b396fdacf52a26ea3415ed2f.png"></p> <p>提示:在 SQL 编辑区可以通过 Alt+/ 快捷键,快速调出 SQL 关键字。</p> <h2><strong>2.3 Tables</strong></h2> <p>Tables 展示 Hive 中所有的表信息,包含以下内容:</p> <ul> <li> <p>表名</p> </li> <li> <p>表类型(如:内部表,外部表等)</p> </li> <li> <p>所属者</p> </li> <li> <p>存放路径</p> </li> <li> <p>创建时间</p> </li> </ul> <p>如下图所示:</p> <p><img src="https://simg.open-open.com/show/89888329c058c529ac3bfd24e8f33614.png"></p> <p>每一个表名都附带一个超链接,可以通过该超链接查看该表的表结构,如下图所示:</p> <p><img src="https://simg.open-open.com/show/36f37cf7c81d8f389dcab5bebfea1afb.png"></p> <h2><strong>2.4 Tasks</strong></h2> <p>Tasks 模块下所涉及的内容是 YARN 上的任务详情,包含的内容如下所示:</p> <ul> <li> <p>All(所有任务)</p> </li> <li> <p>Running(正在运行的任务)</p> </li> <li> <p>Finished(已完成的任务)</p> </li> <li> <p>Failed(以失败的任务)</p> </li> <li> <p>Killed(已失败的任务)</p> </li> </ul> <p>如下图所示:</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/420d04d79a24d0056120fd21983cec2c.png"></p> <h2><strong>2.5 Clients & Nodes</strong></h2> <p>该模块展示 Hive Client 详情,以及 Hadoop DataNode 的详情,如下图所示:</p> <p><img src="https://simg.open-open.com/show/c636afcbe184e64610ab8a889d253e75.png"></p> <h2><strong>2.6 脚本命令</strong></h2> <table> <tbody> <tr> <td>命令</td> <td>描述</td> </tr> <tr> <td>hf.sh start</td> <td>启动 Hive Falcon</td> </tr> <tr> <td>hf.sh status</td> <td>查看 Hive Falcon</td> </tr> <tr> <td>hf.sh stop</td> <td>停止 Hive Falcon</td> </tr> <tr> <td>hf.sh restart</td> <td>重启 Hive Falcon</td> </tr> <tr> <td>hf.sh stats</td> <td>查看 Hive Falcon 在 Linux 系统中所占用的句柄数量</td> </tr> </tbody> </table> <h2><strong>3.数据采集</strong></h2> <p>Hive Falcon 系统的数据来源,设计以下内容:</p> <ul> <li> <p>YARN 中的任务</p> </li> <li> <p>Hive 的 Session 会话</p> </li> <li> <p>Hive 的元数据表</p> </li> </ul> <p>如下图所示:</p> <p><img src="https://simg.open-open.com/show/5abb3706b299083b81a447b452e910f5.png"></p> <h2><strong>4.总结</strong></h2> <p>Hive Falcon 的安装使用比较简单,下载安装,安装文档的描述进行安装配置即可,安装部署文档地址,如下所示:</p> <ul> <li> <p><a href="/misc/goto?guid=4959719593227935812" rel="nofollow,noindex">Hive Falcon 使用文档</a></p> </li> </ul> <p> </p> <p> </p> <p>来自:http://www.cnblogs.com/smartloli/p/5928919.html</p> <p> </p>