请原谅我的不便,但我没有在文档或互联网上找到答案。
我有一个平台:
- Hadoop 2.7.3
- 蜂巢 2.1.0
- Hbase 1.2.4
- 火花 1.6
我已经集成了 Flink 1.1.3 以在本地模式和 Yarn 模式下使用它。
我有兴趣使用带有 Hive 的 Flink(作为带有 Spark 的 hiveContext)来读取 scala-shell 中的数据,这可能吗?如何 ?
问候。
请原谅我的不便,但我没有在文档或互联网上找到答案。
我有一个平台:
我已经集成了 Flink 1.1.3 以在本地模式和 Yarn 模式下使用它。
我有兴趣使用带有 Hive 的 Flink(作为带有 Spark 的 hiveContext)来读取 scala-shell 中的数据,这可能吗?如何 ?
问候。
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 语法查询此表。
这是示例代码的链接。
希望这可以帮助。
从 Flink 1.9.0 开始,我们正式支持 Flink with Hive。https://ci.apache.org/projects/flink/flink-docs-master/dev/table/hive/
你还在研究这个选项吗?