Flink 1.1.3与Hive 2.1.0交互

时间:2017-01-16 18:46:40

标签: apache-flink apache-hive

请原谅我带来的不便,但我没有在Doc或Internet上找到答案。

我有一个平台:

  • Hadoop 2.7.3
  • Hive 2.1.0
  • Hbase 1.2.4
  • Spark 1.6

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

我有兴趣使用Flink with Hive(作为带有Spark的hiveContext)来读取scala-shell中的数据,是否可能?怎么样?

问候。

2 个答案:

答案 0 :(得分:2)

Flink不支持与Hive的直接连接,因为Spark with SQL context支持它。但是有一种使用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语法查询此表。

以下是示例代码的link

希望这会有所帮助。

答案 1 :(得分:0)

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

您还在寻找此选项吗?