查询Hive处理的大量数据

时间:2014-10-28 14:26:02

标签: database hadoop hive bigdata

假设我在HDFS中有大约10-20GB的数据作为Hive表。这是在几个Map-Reduce作业和两个不同数据集之后的JOIN之后获得的。我需要向用户提供这个Queryable。我有什么选择?

  1. 使用Sqoop将数据从HDFS传输到像Postgresql这样的RDS。但我想避免在数据传输上花费这么多时间。我刚刚使用Sqoop在同一个AWS区域测试了HDFS-> RDS,800mb的数据需要4-8分钟。所以你可以想象~60GB的数据是非常难以管理的。这将是我最后的选择。
  2. 根据用户请求直接从我的Web服务器查询Hive。我没有像这样使用Hive的头,所以我对此持怀疑态度。这让我感到震惊,因为我发现你可以在EMR集群上进行一些端口转发后远程查询hive表。但对于大(数据)数据的新手,我并不十分清楚与此相关的风险。这样做是否常见?
  3. 其他一些解决方案 - 人们通常如何做这类事情?看起来像是一项非常常见的任务。
  4. 为了完整起见,我的数据如下:

    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的原因。

4 个答案:

答案 0 :(得分:0)

您在Hive中有相关功能:

  

corr(col1,col2)

返回组中一对数字列的Pearson相关系数。

答案 1 :(得分:0)

您只需通过odbc连接到hiveserver端口并执行查询即可。 这是一个例子: http://www.cloudera.com/content/cloudera/en/downloads/connectors/hive/odbc/hive-odbc-v2-5-10.html

答案 2 :(得分:0)

Hive用户体验(hue)有一个Beeswax查询编辑器,专门用于将Hive暴露给熟悉SQL的最终用户。通过这种方式,他们可以针对驻留在Hive中的数据运行即席查询,而无需将其移动到其他位置。您可以在此处查看Beeswax查询编辑器的示例:http://demo.gethue.com/beeswax/#query

这对你有用吗?

答案 3 :(得分:0)

从上面发布的问题我能理解的是你有一些数据(20GB),你已经存储在hdfs和使用配置单元。现在,您希望访问该数据以执行某些统计功能,如关联和其他。

  • 您在hive中具有执行关联的功能。
  • 否则,您可以使用RHive直接将R连接到配置单元,甚至可以使用数据源将其连接到配置单元。
  • 另一个解决方案是安装hive,hive编辑器可以直接查询hive。