0

请原谅我的不便,但我没有在文档或互联网上找到答案。

我有一个平台:

  • Hadoop 2.7.3
  • 蜂巢 2.1.0
  • Hbase 1.2.4
  • 火花 1.6

我已经集成了 Flink 1.1.3 以在本地模式和 Yarn 模式下使用它。

我有兴趣使用带有 Hive 的 Flink(作为带有 Spark 的 hiveContext)来读取 scala-shell 中的数据,这可能吗?如何 ?

问候。

4

2 回答 2

2

Flink 不支持直接连接到 Hive,因为它在带有 SQL 上下文的 Spark 中受支持。但是有一种简单的方法可以使用Flink Table API在 Flink 中分析 Hive 表中的数据

您需要做的是首先获取您希望使用 Flink 分析的 Hive 表的确切 HDFS 位置,例如

hdfs://app/hive/warehouse/mydb/mytable

然后你读取数据

DataSet<Record> csvInput = env
            .readCsvFile("hdfs://app/hive/warehouse/mydb/mytable/data.csv")
            .pojoType(MyClass.class, "col1", "col2", "col3");

然后你需要从 DataSet 创建一个表,然后将它注册到 TableEnvironment

Table mytable = tableEnv.fromDataSet(csvInput);
tableEnv.registerTable("mytable", mytable );

现在您已准备好使用 Table API 语法查询此表。

这是示例代码的链接。

希望这可以帮助。

于 2017-02-02T08:31:54.690 回答
0

从 Flink 1.9.0 开始,我们正式支持 Flink with Hive。https://ci.apache.org/projects/flink/flink-docs-master/dev/table/hive/

你还在研究这个选项吗?

于 2019-12-11T03:29:20.970 回答