Hadoop,hive->;获取针对群集运行的sql的列表

Hadoop,hive->;获取针对群集运行的sql的列表,hadoop,hive,mapr,Hadoop,Hive,Mapr,因此,我们有一群人访问我们的集群,希望监视通过hive/odbc运行的每个SQL语句。job history server网页将为我提供部分SQL,但不是全部SQL。是否有方法检索正在运行的命令的完整SQL?可以通过web GUI或命令行。我希望监视效率低下的查询,并向开发人员发出警告 Cluster是10节点的MapR Cluster,在纱线模式下运行MapR 5.0我找到了解决方案。将SSH连接到运行hiveserver2的计算机中,并执行下面的命令。替换为您感兴趣的用户(或者*如果您想要全

因此,我们有一群人访问我们的集群,希望监视通过hive/odbc运行的每个SQL语句。job history server网页将为我提供部分SQL,但不是全部SQL。是否有方法检索正在运行的命令的完整SQL?可以通过web GUI或命令行。我希望监视效率低下的查询,并向开发人员发出警告


Cluster是10节点的MapR Cluster,在纱线模式下运行MapR 5.0

我找到了解决方案。将SSH连接到运行hiveserver2的计算机中,并执行下面的命令。替换为您感兴趣的用户(或者*如果您想要全部替换),并将hive-0.13替换为您正在使用的hive版本

cat/opt/mapr/hive/hive-0.13/logs//hive.log | grep“启动命令”

编辑:在我写这篇文章的那一年里,它似乎已改为:

cat/opt/mapr/hive/hive-2.1/logs//hive.log | grep“正在执行命令”

编辑拍摄2。上面没有处理多行sql,只显示了第一行。对于许多查询,它只是显示“SELECT”而已。下面的示例解决了这个问题。我有一个很好的sed解决方案,但由于某种原因,它不能与
tail-f
一起工作,所以它就是Perl。Perl不常见,但它实际上比sed解决方案更具可读性


cat/opt/mapr/hive/hive-2.3/logs///hive.log | perl-ne's/\r\n//g;|grep“Executing command”

Hue提供了存储直接通过huethaks运行的配置单元查询的功能,但我希望跟踪通过ODBCODBC/JDBC远程运行的查询?客户不会持有这种观点吗?为什么hadoop工具会跟踪它呢?请求进入hadoop,hive处理sql并将其转换为作业。因此,它将具有SQL,并且应该能够记录它。为什么跟踪它?任何好的数据库,我们都应该能够获得针对它执行的sql语句日志,这样我们就可以看到正在运行的内容。我的意思是,您当然可以使用Apache Ranger对您的系统执行审计,但1)我不知道MapR 2)谁说Hive是“好的数据库”?:)有人知道有什么工具可以在上面添加GUI和其他功能吗?