查询Hive处理的大量数据
假设我有大约10-20GB的HDFS数据作为Hive表。这是在几个Map-Reduce作业之后获得的,并通过两个单独的数据集进行联接。我需要让这个Queryable给用户。我有什么选择?查询Hive处理的大量数据
- 使用Sqoop将数据从HDFS传输到像Postgresql这样的RDS。但我想避免在数据传输上花费太多时间。我只是使用Sqoop在同一AWS区域测试HDFS-> RDS,而800mb的数据需要4-8分钟。所以你可以想象〜60GB的数据会非常难以管理。这将是我最后的手段。
- 根据用户请求直接从Web服务器查询Hive。我从来没有像这样使用Hive的头,所以我对此持怀疑态度。这让我感到震惊,因为我发现你可以在EMR集群上进行一些端口转发之后远程查询配置单元表。但是对于大数据我是不太清楚与此相关的风险。这样做常见吗?
- 其他一些解决方案 - 人们通常如何做这种事情?看起来像一个很常见的任务。
只是为了完整性的缘故,我的数据是这样的:
id time cat1 cat2 cat3 metrics[200]
A123 1234212133 12 ABC 24 4,55,231,34,556,123....(~200)
.
.
.
(时间是划时代)
我的查询是这样的:
select cat1, corr(metrics[2],metrics[3]),corr(metrics[2],metrics[4]),corr(metrics[2],metrics[5]),corr(metrics[2],metrics[6]) from tablename group by cat1;
我需要的相关函数,这就是为什么我选择了cho在MySQL上使用postgresql。
您可以通过odbc简单地连接到hiveserver端口并执行查询。 下面是一个例子: http://www.cloudera.com/content/cloudera/en/downloads/connectors/hive/odbc/hive-odbc-v2-5-10.html
我意识到这是可能的,但它是好的做法?我从来没有听说过像这样使用Hive。 – user1265125 2014-10-28 19:29:52
当然。我认为这是Hive使用的主要方式。 Hive应该暴露给用户和机器,以便从远程服务器执行ETL和分析等等。用户通常通过Hue或任何支持ODBC和JDBC的查询软件(如DBVisualizer)来访问它。此外,使用JDBC可以从Java访问它并创建在配置单元上实现ETL作业的软件。以上所有都很常见。 – dimamah 2014-10-29 06:40:13
看看这个:https://cwiki.apache.org/confluence/display/Hive/Tutorial#Tutorial-WhatHiveIsNOT。 Hive并非专为在线交易处理而设计,并且不提供实时查询。思考? – user1265125 2014-10-29 08:19:13
蜂房用户体验(色调)具有专门用于暴露蜂房结束谁是舒服SQL用户的目的设计的蜂蜡查询编辑器。通过这种方式,他们可以针对驻留在Hive中的数据运行即席查询,而无需将其移至别处。你可以在这里看到一个蜂蜡查询编辑器的例子:http://demo.gethue.com/beeswax/#query
这会适合你吗?
我可以从上面发布的问题了解到,你有一些数据(20GB),你已经存储在hdfs中并使用配置单元。现在你想访问这些数据来执行一些统计功能,比如相关性和其他功能。
- 您在配置单元中执行相关性的函数。
- 否则,您可以直接使用RHive将R连接到配置单元,甚至可以使用数据源配置为使用数据源。
- 另一种解决方案是安装hue,它可以与配置单元编辑器一起提供,您可以直接查询配置单元。
是的我意识到这一点,但我主要想知道是否使用像这样的Hive是好的做法或不... – user1265125 2014-10-28 19:30:36