查询Hive处理的大量数据
Posted
技术标签:
【中文标题】查询Hive处理的大量数据【英文标题】:Querying large amount of data processed by Hive 【发布时间】:2014-10-28 14:26:01 【问题描述】:假设我在 HDFS 中有大约 10-20GB 的数据作为 Hive 表。这是在多个 Map-Reduce 作业和 JOIN 两个单独的数据集之后获得的。我需要使这个对用户可查询。我有什么选择?
-
使用Sqoop 将数据从HDFS 传输到像Postgresql 这样的RDS。但我想避免在数据传输上花费太多时间。我刚刚使用 Sqoop 在同一个 AWS 区域测试了 HDFS->RDS,800mb 的数据需要 4-8 分钟。因此,您可以想象约 60gb 的数据将非常难以管理。这将是我最后的手段。
根据用户请求直接从我的 Web 服务器查询 Hive。我从来没有像这样使用 Hive 的负责人,所以我对此表示怀疑。这让我很震惊,因为我刚刚发现您可以在 EMR 集群上进行一些端口转发后远程查询 hive 表。但是作为大(ish)数据的新手,我不太确定与此相关的风险。这样做是否司空见惯?
其他一些解决方案 - 人们通常如何做这种事情?似乎是一项很常见的任务。
为了完整起见,我的数据如下所示:
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;
我需要关联函数,这就是我选择 postgresql 而不是 mysql 的原因。
【问题讨论】:
【参考方案1】:你在Hive有关联函数:
corr(col1, col2)
返回组中一对数值列的 Pearson 相关系数。
【讨论】:
是的,我知道这一点,但我主要想知道这样使用 Hive 是否是好的做法......【参考方案2】:您可以简单地通过 odbc 连接到 hiveserver 端口并执行查询。 这是一个例子: http://www.cloudera.com/content/cloudera/en/downloads/connectors/hive/odbc/hive-odbc-v2-5-10.html
【讨论】:
我意识到这是可能的,但这是一种好的做法吗?我从来没有听说过 Hive 被这样使用。 当然。我认为这是使用 Hive 的主要方式。 Hive 应该暴露给用户和机器以从远程服务器执行 ETL 和分析等等。用户通常通过 Hue 或任何支持 ODBC 和 JDBC 的查询软件(如 DBVisualizer)来访问它。此外,使用 JDBC,您可以从 Java 访问它并创建在 hive 上实现 ETL 作业的软件。以上都是很常见的。 看看这个:cwiki.apache.org/confluence/display/Hive/…。说Hive is not designed for online transaction processing and does not offer real-time queries
。想法?
这意味着 hive 不支持事务(现在在 0.13 中它有点支持)并且只要您使用 map-reduce 这是正确的,您将不会获得实时查询,因为存在持续的开销。这并不意味着您不应该查询,只是它是为更具分析性和更强大的查询而构建的【参考方案3】:
Hive 用户体验 (hue) 有一个 Beeswax 查询编辑器,专门设计用于向熟悉 SQL 的最终用户展示 Hive。通过这种方式,他们可以潜在地对 Hive 中的数据运行临时查询,而无需将其移动到其他地方。您可以在此处查看 Beeswax 查询编辑器的示例:http://demo.gethue.com/beeswax/#query
这对你有用吗?
【讨论】:
【参考方案4】:我可以从上面发布的问题中了解到,您有一些数据(20GB)存储在 hdfs 中并使用 hive。现在您想要访问该数据以执行某种统计功能,例如相关性和其他功能。
您在 hive 中有执行关联的函数。 否则,您可以使用 RHive 直接将 R 连接到 hive,甚至可以使用数据源将 excel 连接到 hive。 另一种解决方案是安装带有配置单元编辑器的hue,您可以在其中直接查询配置单元。【讨论】:
以上是关于查询Hive处理的大量数据的主要内容,如果未能解决你的问题,请参考以下文章