mapreduce 程序从 hive 读取数据
Posted
技术标签:
【中文标题】mapreduce 程序从 hive 读取数据【英文标题】:mapreduce program to read data from hive 【发布时间】:2014-02-08 06:38:11 【问题描述】:我是 hadoop mapreduce 和 hive 的新手。 我想使用 Mapreduce 程序(在 java 中)从 Hive 读取数据并确定平均值。 我不确定如何在 mapreduce 中实现。请帮助我提供示例程序。 我正在使用 ibm biginsights 64 位来处理 hadoop 框架。
我无法参考下面的链接。获取页面找不到错误。https://cwiki.apache.org/Hive/tutorial.html#Tutorial-Custommap%252Freducescripts
【问题讨论】:
【参考方案1】:enter code here
你有没有理由不简单地使用hql和
select avg(my_col) from my_table?
如果您确实需要在 Java 中执行此操作,则可以使用 HiveClient 并通过 hive jdbc api 访问。
这是一个示例代码 sn-p(由 HiveClient 文档详细说明):
Connection con = null;
Statement stmt = null;
Resulset rs = null;
try
con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");
stmt = con.createStatement();
rs = stmt.executeQuery("select avg(my_col) as my_avg from my_table");
Double avg = rs.getDouble("my_avg");
// do something with it..
finally
// close rs, stmt, conn in reverse order
更多信息:https://cwiki.apache.org/confluence/display/Hive/HiveClient
注意:您不需要将此代码放入您的 map/reduce Hive 会自行创建 map/reduce 程序(以及并行化的相关好处)。
【讨论】:
以上是关于mapreduce 程序从 hive 读取数据的主要内容,如果未能解决你的问题,请参考以下文章
检测到 Sqoop 套接字超时:从大型机读取数据并插入 Hive 时读取超时