Nifi PutHiveStreaming 将数据写入 HDFS 但无法在 Hive 中看到数据 table
Nifi PutHiveStreaming writing data to HDFS but not able to see data in Hive table
我正在使用 HDF Nifi 1.5 和 Hdp Hive 3.1。
在 Hive 中创建分区和分桶 table:
CREATE TABLE default.client_tbl ( client_key int, clt_name varchar(45), clt_description varchar(200), version int ) 由 ( clt_status varchar(8)) 由(client_key) 聚集成 3 个存储桶,存储为 ORC TBLPROPERTIES('transactional'='true');
- 使用 ExecuteSQL --> PutHiveStreaming
Nifi 日志显示写入 HDFS 路径的数据,但我无法在 Hive 中查看数据 table。
nifi-app.log请查附件。
如果您使用的是 HDP Hive 3.1,那么您需要 PutHive3Streaming 而不是 PutHiveStreaming。前者用于 Hive 3,后者用于 Hive 1.2.x.
话虽如此,Hive 3 组件从 NiFi 1.7.0+ 开始可用。此外,如果您使用的是 Apache NiFi 发行版,则默认情况下它不包含 Hive 3 NAR(由于其大小)。您必须自己构建它或使用为 HDF 构建的(用于对抗 HDP Hive 3),您可以获得 HDF 3.2 版本(NiFi 1.7.0)版本 here.
我正在使用 HDF Nifi 1.5 和 Hdp Hive 3.1。
在 Hive 中创建分区和分桶 table:
CREATE TABLE default.client_tbl ( client_key int, clt_name varchar(45), clt_description varchar(200), version int ) 由 ( clt_status varchar(8)) 由(client_key) 聚集成 3 个存储桶,存储为 ORC TBLPROPERTIES('transactional'='true');
- 使用 ExecuteSQL --> PutHiveStreaming
Nifi 日志显示写入 HDFS 路径的数据,但我无法在 Hive 中查看数据 table。
nifi-app.log请查附件。
如果您使用的是 HDP Hive 3.1,那么您需要 PutHive3Streaming 而不是 PutHiveStreaming。前者用于 Hive 3,后者用于 Hive 1.2.x.
话虽如此,Hive 3 组件从 NiFi 1.7.0+ 开始可用。此外,如果您使用的是 Apache NiFi 发行版,则默认情况下它不包含 Hive 3 NAR(由于其大小)。您必须自己构建它或使用为 HDF 构建的(用于对抗 HDP Hive 3),您可以获得 HDF 3.2 版本(NiFi 1.7.0)版本 here.